Configurando um agente de identidade para autenticação usando várias fontes de atributos
Siga este procedimento para configurar um agente de identidade com atributos provenientes de fontes como LDAP, PostgreSQL,, Db2 e Oracle Database.
Sobre esta tarefa
É possível utilizar uma combinação de uma ou mais fontes de dados locais como um único provedor de identidade para IBM® Verify. Essa configuração permite que seu agente de identidade autentique usuários e obtenha seus atributos a partir de uma ou mais fontes de dados.
- LDAP
- IBM Db2
- PostgreSQL
- Oracle Database
- Fonte de Autenticação
- A fonte de dados na qual você pretende realizar a autenticação.
- JavaScript configuração
- Um arquivo de configuração local que especifica os detalhes de configuração da fonte de dados.
- JavaScript plug-in
- Seu código para lidar com a interação com o endereço LDAP (não principal).
- LDAP principal
- Com suporte integrado ao ` LDAP `, não é necessário nenhum plug-in ` JavaScript ` para o ` LDAP ` principal.
- Fontes alternativas de dados
- Uma ou mais fontes de dados adicionais a serem utilizadas em conjunto com ou em substituição à fonte de dados principal LDAP.
Procedimento
- Selecione Integrações > Agentes de identidade.
- Selecione “Criar configuração de agente ”.
- Selecione “Autenticação” como finalidade.
- Selecione o bloco “ LDAP ”.
- Selecione “Avançar ”.
- Configure as definições de conexãoForneça as informações a seguir para definir as propriedades da conexão LDAP.Observação: O servidor de autenticação principal ( LDAP ) é opcional e não precisa ser a fonte de autenticação. Se você não quiser usar um endereço de e-mail principal ( LDAP ), insira valores fictícios nesta seção. Se você optar por não usar um servidor de pesquisa primário ( LDAP ), deverá especificar o código a seguir em uma de suas configurações de servidor de pesquisa secundário ( JavaScript ).
"authenticationSource":{ "isAuthenticationSource": false, "disablePrimaryLDAPLookup": false },- URI do host LDAP externo
- Esse atributo se trata das informações de conexão do servidor LDAP local. Para uma configuração de failover de LDAP, é possível incluir vários URIs do servidor LDAP, selecionando INCLUIR URI.
- Base
- Esse atributo é a base de procura de contêiner LDAP para usuários.
- DN de ligação LDAP
- Esse atributo é o usuário de conexão do servidor LDAP.
- Senha de ligação LDAP
- Esse atributo é a senha de conexão do servidor ldap.
- Certificado de autoridade de certificação LDAP
- Esse atributo opcional é o certificado SSL que é usado se o agente no local requer uma conexão TLS com o servidor LDAP.
- Visualizar configurações adicionais
- É possível definir as configurações a seguir.
- Ative se o LDAP requer TLS.
- O número máximo de conexões LDAP simultâneas para o servidor LDAP.
- Por quanto tempo uma autenticação de senha bem-sucedida fica armazenada em cache.
- Quanto tempo a conexão é mantida.
- O tempo inativo antes que o servidor LDAP encerre uma conexão.
- O tempo máximo para processar uma solicitação.
- Clique em Avançar.
- Forneça as propriedades do usuário.
- Atributos
- Esse atributo é uma lista de atributos de usuário LDAP separados por vírgula que são retornados
de uma operação de verificação de senha bem-sucedida. Para atributos de primária LDAP, use o nome de atributo LDAP. Para fontes de dados alternativas, anteponha ao nome dos atributos do usuário o nome do plug-in JavaScript que deverá retornar os atributos no formato pluginName-Attribute.. Por exemplo, se você configurar
nesse caso, quaisquer atributos retornados pelo OcPlug devem ser precedidos pelo prefixo OcPlug-. Por exemplo, OcPlugin-mobile instrui o plug-in OcPlug JavaScript a recuperar o valor do celular."pluginName": "OcPlug",Os atributos devem ser separados por vírgulas. Por exemplo,givenName, sh, displayName, manager, mail, mobile, memberOf, uid, OcPlug-OCD_SPEC_ID, db2PLUG- XTENDEDATTR, ldap-seeAlsoNota: O exemplo mostra como definir os atributos do plug-in. Os atributos sem prefixo, como givenName, sn, displayName, manager, mail, mobile memberOf,, e uid , são obtidos do arquivo principal LDAP. seeAlsoOCD_SPEC_IDOcPlug retorna o atributo, o db2Plug retorna o atributo XTENDEDATTR e o plug-in “ldap” retorna o atributo. - Atributos binários
- Esse atributo é uma lista de atributos de usuário LDAP binários separados por vírgula que são retornados de uma operação de verificação de senha bem-sucedida.
- Atributo de nome do usuário
- Esse atributo é o atributo de nomenclatura, tal como user id,
que é usado para consultar um usuário para verificação de senha.Observação: os atributos de identificação do nome de usuário diferenciam maiúsculas de minúsculas. O atributo samAccountName padrão se aplica às versões anteriores do Windows Active Directory. No Active Directory 2016 e versões posteriores, o atributo é sAMAAccountName.
- Classe de Objeto
- Esse atributo é uma lista de classes de objeto separadas por vírgula que o usuário LDAP pode ter. As classes de objeto são usadas com o atributo username para consultar um usuário para verificação de senha.
Nota: Os atributos binários, os atributos de nome de usuário e as classes de objeto destinam-se ao mecanismo de pesquisa principal ( LDAP ), mas são todos repassados aos plug-ins de pesquisa secundária ( JavaScript ) e devem ser tratados manualmente pela implementação do plug-in. - Selecione “Avançar ”.
- Mapeie os atributos do provedor de identidade para os Verify atributos do Cloud Directory.Depois de criar o agente de identidade, você pode alterar ou atualizar os mapeamentos usando a função
de edição no bloco do agente. - Selecione “Avançar ”.
- Em “Finalizar configuração”, forneça as seguintes informações.
- Um nome exclusivo e reconhecível para o agente
- Uma descrição
- Um nome de exibição para o provedor de identidade
- Um domínio para o provedor de identidade
- Opcional: Selecione “Exibir configurações avançadas” para adicionar atributos de configuração ou selecionar um certificado para criptografia.Observação: as configurações avançadas destinam-se ao uso pelo LDAP principal, mas são repassadas e disponibilizadas aos plug-ins JavaScript para processamento manual.
- Clique em “Salvar” e continue.
- Na seção "Próximos passos ", siga as etapas a seguir.
- Selecione “Ver credenciais da API” e use o ícone “Copiar para a área de transferência” para copiar e salvar o ID do cliente e o segredo do cliente.Observação: Somente usuários com as permissões adequadas podem visualizar o segredo do cliente. Para obter mais informações, consulte Atualizações de segurança para direitos.
- Caso ainda não tenha feito o download, baixe o agente bridge do Repositório de Contêineres do IBM (ICR). Consulte “Instalando e configurando o Verify Bridge” em Docker.
- Inclua as credenciais de API na configuração do agente.
- Selecione “Ver credenciais da API” e use o ícone “Copiar para a área de transferência” para copiar e salvar o ID do cliente e o segredo do cliente.
- Clique em Concluir.A configuração é adicionada aos agentes de identidade e o provedor de identidade é listado em Autenticação > Provedores de identidade.
- Configurando os plug-ins d JavaScript.O executável bridge pesquisa os seguintes diretórios relativos à sua própria localização.
- ./jsconfig/ - A localização dos arquivos de configuração.
- ./jsplugins/ - A localização dos plug-ins do JavaScript.
Para disponibilizar esses diretórios para um contêiner Docker, você pode realizar uma montagem de ligação a partir do sistema de arquivos do host.
Este exemplo mostra a configuração do plug-in para um plug-in de banco de dados do Oracle.volumes: - ./jsconfig:/go/src/jsconfig:ro - ./jsplugins:/go/src/jsplugins:ro
O exemplo a seguir mostra uma configuração para um plug-in do LDAP.{ "pluginName": "OcPlug", "pluginType": "oracledb", "executionOrder": 1, "hardFail": true, "authenticationSource": { "isAuthenticationSource": true, "disablePrimaryLDAPLookup": false }, "bindingConfig": { "connectionString": "oracle://system:oraclepass@host.docker.internal:1521/XE?CONNECTION TIMEOUT=5", "maxPoolSize": 50, "minPoolSize": 10, "agedTimeout": 60, "maxIdleTime": 10 }, "custom": { "table": "users" } }{ "pluginName": "plugin1", "pluginType": "ldap", "executionOrder": 1, "hardFail": false, "authenticationSource": { "isAuthenticationSource": true, "disablePrimaryLDAPLookup": false }, "bindingConfig": { "bindDn": "cn=admin,dc=ibm,dc=com", "bindPassword": "pass", "uris": [ "ldaps://localhost:8636", "ldap://localhost:8389" ], "maxPoolSize": 50, "agedTimeout": 60, "connectTimeout": 5, "filter": "(|(|(objectclass=ePerson)(objectclass=person))(objectclass=User))", "userObjectClasses": "top,Person,organizationalPerson,inetOrgPerson", "selector": "objectClass,cn,sn,givenName,userPassword,streetAddress,seeAlso,mobile", "userIdentifier": "uid", "baseDn": "dc=ibm,dc=com", "tlsConfig": { "caCert": "-----BEGIN CERTIFICATE-----\nMIIDbzCCAlegAwIBAgIULjAe6hySQZ8C8d1LnWKHlpirro4wDQYJKoZIhvcNAQEL\nBQAwRzELMAkGA1UEBhMC…", "insecureSkipVerify": false, "tlsMinVersion": 0, "clientCertLabel": "extauthn.client" } }, "custom": { "table": "users" } }
Exemplos de cadeias de conexão.A tabela lista as propriedades do plug-in de configuração.
Propriedade Definição pluginName O nome do plug-in. A ponte procura ./jsplugins/<pluginName>.js esse arquivo, em relação ao executável da ponte. pluginType - BDOracle
- postgres
- Db2
- ldap
Ordem de execução A ordem em que o plug-in é executado. Do menor para o maior. hardFail falseQuando ocorre um erro ao recuperar os atributos, o Bridge ignora esse plug-in. Caso contrário, é retornado um erro e a autenticação falha isAuthenticationSource Defina como true se a autenticação ocorrer neste plug-in. Observação: definir esta propriedade como true faz com que o plug-in entre automaticamente em estado de falha grave.disablePrimaryLDAPLookup Desativa o mecanismo de pesquisa principal ( LDAP ). connectionString A string de conexão adequada para o seu banco de dados. É aplicável a - Db2
- PostgreSQL
- Oracle Database.
Deixe em branco para o endereço LDAP.
Somente LDAP filtrar LDAP filtros. bindDn O DN de ligação. bindPassword A senha de ligação. URIs LDAP URIs. É possível especificar várias opções para cenários de failover. Especifique o protocolo ldaps para o TLS. userObjectClasses Seletores de objetos de usuário. seletor Seletores. Os atributos de usuário desejados devem aparecer aqui. userIdentifier Identificador utilizado quando é realizada uma pesquisa padrão. baseDn O ponto da hierarquia de diretórios onde a pesquisa começa. caCert O certificado de CA utilizado para validar o certificado apresentado pelo servidor LDAP. insecureSkipVerify Ignorar as verificações de certificados d TLS. tlsMinVersion Versão mínima do TLS
- 769 – v1.0
- 770 – v.1.1
- 771 – v1.2 (padrão)
- 772 – v1.3
clientCertLabel Para MTLS. É o nome do certificado e da chave que é usado para assinar o tráfego enviado ao servidor LDAP.
O agente procura o certificado em
/cert/<clientCertLabel>_cert.pem /cert/<clientCertLabel>_key.pem
customizado Os valores personalizados que podem ser passados por meio da configuração ao plug-in para processamento manual. - Db2
HOSTNAME=host.docker.internal;PORT=50000;UID=db2inst1;PWD=db2_password;DATABASE=usersdb"- PostgreSQL
host=host.docker.internal port=8788 dbname=postgres user=postgres password=postgrespassword connect_timeout=5- LDAP TLS
- caCert.Para usar o TLS para se conectar ao LDAP por meio de um plug-in do JavaScript, certifique-se de especificar o ldaps:// na seção uris e definir um válido.
"uris": [ "ldaps://localhost:8636" ],Para executar o MTLS a partir de um plug-in do LDAP, você pode colocar o certificado do cliente e a chave privada do certificado do cliente no /cert/ diretório do seu contêiner usando montagens de ligação.
Certifique-se de que os nomes dos certificados estejam no formato- ./cert/:/cert:ro<clientCertLabel>_cert.peme<clientCertLabel>_key.pem, onde clientCertLabel é o clientCertLabel especificado na configuração do plug-in para os plug-ins do LDAP.