PowerFlex 4.X - Como aplicar o filtro de pesquisa de grupo LDAP no console de administração do Keycloak do PFxM
Summary: Este artigo explica como criar um filtro de pesquisa de grupo LDAP no console de administração do PFxM Keycloak.
Symptoms
Cause
Nota: Por padrão, o Keycloak autenticará qualquer usuário com uma conta ativa no domínio do AD. Se um usuário não fizer parte dos grupos no filtro, ele não será autorizado e não terá acesso à interface do usuário do PFxM.
Resolution
- Obtenha o segredo/senha do usuário Keycloak executando o seguinte comando a partir de qualquer nó MVM do PFxM.
kubectl get secret -n powerflex keycloak-admin-credentials -o jsonpath="{.data.password}" | base64 --decode; echo
2. Vá para o console da interface do usuário do administrador do Keycloak usando a seguinte URL.
https://pfmp.company.org/auth
3. Clique em 'Console de Administração' e faça login com o keycloak de nome de usuário e o segredo listado na saída do comando na etapa 1
, 4. Mude do realm "master" para "Powerflex" no menu suspenso
5. Clique em "User federation" e, em seguida, clique no provedor LDAP configurado.
6. Clique na guia 'Mappers' e, em seguida, clique em 'LdapGroupMapping'
7. Role para baixo e procure o objeto 'LDAP Filter'. Adicione os grupos específicos em que você está interessado usando a sintaxe abaixo (isso cria um filtro 'OU'). O valor (etc) na sintaxe é um espaço reservado para adicionar grupos adicionais, se necessário. Cada grupo que você adicionar precisa () em torno do valor "cn=".
(|(cn=group_name_1)(cn=group_name_2)(cn=group_name_3)(etc))
Por exemplo,
(|(cn=Monitoring_Group)(cn=Admin_Group)(cn=Deployment_Group))
8. Clique em "Salvar".
9. Sincronize o PFxM com o provedor LDAP executando os seguintes comandos de qualquer nó MVM do PFxM.
Defina variáveis do sistema para IP de SSO, token de gerenciador de plataforma, IP de entrada e ID de
LDAPNOTA: Para o comando PM_TOKEN variable, substitua o seguinte valor "Scaleio123!" com a senha de administrador que você usa para fazer login na interface do usuário do PFxM.
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 Execute o seguinte comando para iniciar uma sincronização do PFxM com o provedor de 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'
Nota: O comando acima não deve retornar nada para a tela se for bem-sucedido. Aguarde até 15 minutos e tente adicionar usuário ou grupo na interface do usuário do PFxM.