PowerFlex 4.X - PFxM Keycloak管理コンソールでLDAPグループ検索フィルターを適用する方法
Summary: この記事では、PFxM Keycloak管理コンソールでLDAPグループ検索フィルターを作成する方法について説明します。
Symptoms
Cause
手記: Keycloakは、デフォルトでADドメインにアクティブなアカウントを持つユーザーを認証します。ユーザーがフィルター内のグループに属していない場合、そのユーザーは認証されず、PFxM UIにアクセスできません。
Resolution
- 任意のPFxM MVMノードから次のコマンドを実行して、Keycloakユーザーのシークレット/パスワードを取得します。
kubectl get secret -n powerflex keycloak-admin-credentials -o jsonpath="{.data.password}" | base64 --decode; echo
2. 次のURLを使用してKeycloak管理UIコンソールに移動します。
https://pfmp.company.org/auth
3. [管理コンソール]をクリックし、ユーザー名keycloakと、ステップ1のコマンドの出力にリストされているシークレットを使用してログインします
4.ドロップダウンで、レルムを「master」から「Powerflex」に変更します
5.[ユーザー フェデレーション] をクリックし、構成した LDAP プロバイダーをクリックします。
6.「Mappers」タブをクリックし、「LdapGroupMapping」をクリックします
7.下にスクロールして、[LDAP Filter]オブジェクトを探します。次の構文を使用して、関心のある特定のグループを追加します(これにより、「OR」フィルターが作成されます)。構文の(etc)値は、必要に応じてグループを追加するためのプレースホルダーです。追加する各グループには、「cn=」値の前後に()が必要です。
(|(cn=group_name_1)(cn=group_name_2)(cn=group_name_3)(etc))
例えば、
(|(cn=Monitoring_Group)(cn=Admin_Group)(cn=Deployment_Group))
8.「保存」をクリックします。
9.任意のPFxM MVMノードから次のコマンドを実行して、PFxMをLDAPプロバイダーと同期します
SSO IP、プラットフォーム マネージャー トークン、イングレスIP、LDAP IDのシステム変数を設定します
手記:PM_TOKEN変数コマンドの場合は、次の値 「Scaleio123!」 を置き換えます。を、PFxM UIへのログインに使用する 管理者 パスワードに置き換えます。
SSO_IP=`kubectl get svc -A | grep "sso " | awk '{print $4}'`
PM_TOKEN=`curl -k --location --request POST "https://${SSO_IP}:8080/rest/auth/login" --header 'Accept: application/json' --header 'Content-Type: application/json' --data '{"username": "admin","password": "Scaleio123!" }' | jq -r .access_token`
INGRESS_IP=$(kubectl get svc -A | grep -i rke2-ingress-nginx-controller | awk 'NR==1{print $5}')
LDAP_ID=$(curl -k https://${INGRESS_IP}/rest/v1/directory-services --header 'Accept: application/json' --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" | jq -r '.[0].id')
10 次のコマンドを実行して、PFxMからLDAPプロバイダーへの同期を開始します。
curl -k -X POST https://${INGRESS_IP}/rest/v1/directory-services/${LDAP_ID}/sync --header "Authorization: Bearer ${PM_TOKEN}" --header 'Accept: application/json' --header 'Content-Type: application/json'
メモ: 上記のコマンドが成功した場合、画面には何も返されません。最大15分待ってから、PFxM UIからユーザーまたはグループの追加を試みます。