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.

As fontes de dados compatíveis com esta configuração são:
  • LDAP
  • IBM Db2
  • PostgreSQL
  • Oracle Database
Terminologia
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.
Observação: É possível utilizar até 10 fontes de dados em qualquer ordem, mas a configuração do LDAP principal e das fontes de dados alternativas difere.

Procedimento

  1. Selecione Integrações > Agentes de identidade.
  2. Selecione “Criar configuração de agente ”.
  3. Selecione “Autenticação” como finalidade.
  4. Selecione o bloco “ LDAP ”.
  5. Selecione “Avançar ”.
  6. Configure as definições de conexão
    Forneç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.
  7. Clique em Avançar.
  8. 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
    "pluginName": "OcPlug",
    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.
    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-seeAlso
    Nota: 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.
  9. Selecione “Avançar ”.
  10. 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 ícone de lápis de edição no bloco do agente.
  11. Selecione “Avançar ”.
  12. 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
  13. 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.
  14. Clique em “Salvar” e continue.
  15. Na seção "Próximos passos ", siga as etapas a seguir.
    1. 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.
    2. 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.
    3. Inclua as credenciais de API na configuração do agente.
  16. Clique em Concluir.
    A configuração é adicionada aos agentes de identidade e o provedor de identidade é listado em Autenticação > Provedores de identidade.
  17. 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.

    volumes:
                    - ./jsconfig:/go/src/jsconfig:ro
                    - ./jsplugins:/go/src/jsplugins:ro
    
    Este exemplo mostra a configuração do plug-in para um plug-in de banco de dados do Oracle.
    {
        "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"
        }
      }
    
    O exemplo a seguir mostra uma configuração para um plug-in do LDAP.
    {
        "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"
        }
      }
    

    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.
    Exemplos de cadeias de conexão.
    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.
    - ./cert/:/cert:ro
    Certifique-se de que os nomes dos certificados estejam no formato <clientCertLabel>_cert.pem e <clientCertLabel>_key.pem, onde clientCertLabel é o clientCertLabel especificado na configuração do plug-in para os plug-ins do LDAP.