Konfigurieren eines Identitätsagenten für die Authentifizierung unter Verwendung mehrerer Attributquellen

Verwenden Sie dieses Verfahren, um einen Identitätsagenten mit Attributen aus Quellen wie LDAP, PostgreSQL,, Db2 und Oracle Database zu konfigurieren.

Informationen zu dieser Task

Eine Kombination aus einer oder mehreren lokalen Datenquellen kann als einzelner Identitätsanbieter für IBM® Verify… verwendet werden. Mit dieser Konfiguration kann Ihr Identitätsagent Benutzerattribute aus einer oder mehreren Datenquellen authentifizieren und abrufen.

Die von dieser Konfiguration unterstützten Datenquellen sind:
  • LDAP
  • IBM Db2
  • PostgreSQL
  • Oracle Database
Terminologie
Authentifizierungsquelle
Die Datenquelle, anhand derer Sie die Authentifizierung durchführen möchten.
JavaScript-Konfiguration
Eine lokale Konfigurationsdatei, die die Konfigurationsdetails der Datenquelle festlegt.
JavaScript Plugin
Dein Code für die Interaktion mit dem sekundären LDAP.
Primär- LDAP
LDAP -Unterstützung ist bereits integriert, sodass für die primäre LDAP kein „ JavaScript “-Plugin erforderlich ist.
Alternative Datenquellen
Eine oder mehrere zusätzliche Datenquellen, die zusätzlich zu oder anstelle der Primär LDAP verwendet werden sollen.
Hinweis: Es können maximal 10 Datenquellen in beliebiger Reihenfolge verwendet werden, allerdings unterscheiden sich die Konfigurationen für die primäre LDAP und die alternativen Datenquellen.

Vorgehensweise

  1. Wählen Sie „Integrationen “ > „Identitätsagenten “.
  2. Wählen Sie „Agentenkonfiguration erstellen “.
  3. Wählen Sie „Authentifizierung“ als Zweck aus.
  4. Wählen Sie die Kachel „ LDAP “ aus.
  5. Wählen Sie „Weiter “.
  6. Verbindungseinstellungen konfigurieren
    Geben Sie die folgenden Informationen an, um die Eigenschaften der LDAP-Verbindung zu definieren.
    Hinweis: Der primäre LDAP ist optional und muss nicht als Authentifizierungsquelle dienen. Wenn Sie keine Primär- LDAP verwenden möchten, geben Sie für diesen Abschnitt Dummy-Werte ein. Wenn Sie sich dafür entscheiden, keinen primären LDAP zu verwenden, müssen Sie den folgenden Code in einer Ihrer JavaScript -Konfigurationen angeben.
    "authenticationSource":{
    "isAuthenticationSource": false,
          "disablePrimaryLDAPLookup": false
        },
    
    URI des externen LDAP-Hosts
    Dieses Attribut gibt die Informationen für die On-Premises-LDAP-Serververbindung an. Für eine LDAP-Failover-Cluster-Konfiguration können Sie mehrere LDAP-Server-URIs hinzufügen, indem Sie URI hinzufügen auswählen.
    Basis
    Dieses Attribut gibt die LDAP-Container-Suchbasis für Benutzer an.
    LDAP-Bindungs-DN
    Dieses Attribut gibt den Benutzer der LDAP-Serververbindung an.
    LDAP-Bindungskennwort
    Dieses Attribut gibt das Kennwort der LDAP-Serververbindung an.
    LDAP-CA-Zertifikat
    Dieses optionale Attribut gibt das SSL-Zertifikat an, das verwendet wird, wenn der On-Premises-Agent eine TLS-Verbindung zum LDAP-Server erfordert.
    Zusätzliche Einstellungen anzeigen
    Sie können die folgenden Einstellungen definieren.
    • Angabe, ob LDAP TLS erfordert
    • Maximale Anzahl simultaner LDAP-Verbindungen für den LDAP-Server
    • Wie lange eine erfolgreiche Passwortauthentifizierung zwischengespeichert wird.
    • Angabe, wie lange die Verbindung aufrechterhalten wird
    • Inaktivitätsdauer, bevor eine Verbindung vom LDAP-Server geschlossen wird
    • Maximale Zeit zur Verarbeitung einer Anforderung
  7. Klicken Sie auf Weiter.
  8. Geben Sie die Benutzereigenschaften an.
    Attribute
    Dieses Attribut gibt eine Liste der durch Kommas getrennten LDAP-Benutzerattribute an, die von einer erfolgreichen Kennwortprüfoperation zurückgegeben werden. Verwenden Sie für Primär LDAP sattribute den Attributnamen „ LDAP “. Bei alternativen Datenquellen muss dem Namen der Benutzerattribute der Name des Plug-ins „ JavaScript “ vorangestellt werden, von dem erwartet wird, dass es die Attribute im Format „ pluginName-Attribute “ zurückgibt. Angenommen, Sie legen Folgendes fest:
    "pluginName": "OcPlug",
    OcPlug-Dann müssen alle Attribute, die von der OcPlug Funktion zurückgegeben werden, mit einem Präfix versehen werden. Beispielsweise weist dies das Plug-in OcPlug „ JavaScript “ OcPlugin-mobile an, den Wert „mobile“ abzurufen.
    Attribute müssen durch Kommas getrennt sein. Beispiel:
    givenName, sh, displayName, manager, mail, mobile,
    memberOf, uid, OcPlug-OCD_SPEC_ID, db2PLUG-
    XTENDEDATTR, ldap-seeAlso
    Hinweis: Das Beispiel zeigt, wie man Plug-in-Attribute festlegt. Attribute ohne Präfix wie givenName, sn, displayName, manager, mail, mobile, memberOf, und uid stammen aus der Hauptdatei „ LDAP “. seeAlsoOCD_SPEC_IDOcPlug gibt das Attribut zurück, „ db2Plug “ gibt das Attribut XTENDEDATTR zurück und das Plug-in „ldap“ gibt das Attribut zurück.
    Binäre Attribute
    Dieses Attribut gibt eine Liste der durch Kommas getrennten binären LDAP-Benutzerattribute an, die von einer erfolgreichen Kennwortprüfoperation zurückgegeben werden.
    Benutzernamensattribut
    Dieses Attribut ist das Benennungsattribut, wie beispielsweise user id, das für die Suche nach einem Benutzer für die Kennwortüberprüfung verwendet wird.
    Hinweis: Bei den Attributen zur Benutzerkennung wird zwischen Groß- und Kleinschreibung unterschieden. Das Standardattribut samAccountName gilt für frühere Versionen von Windows Active Directory. sAMAAccountNameBei „ Active Directory “ ab Version 2016 lautet das Attribut.
    Objektklasse
    Dieses Attribut gibt eine Liste der durch Kommas getrennten Objektklassen an, über die ein LDAP-Benutzer verfügen kann. Die Objektklassen werden mit dem Attribut username verwendet, um nach einem Benutzer für die Kennwortüberprüfung zu suchen.
    Hinweis: Binäre Attribute, Benutzernamen-Attribute und Objektklassen sind für den Haupt- LDAP vorgesehen, werden jedoch alle an die Plug-ins von JavaScript weitergeleitet und müssen in der Plug-in-Implementierung manuell verarbeitet werden.
  9. Wählen Sie „Weiter “.
  10. Ordnen Sie die Attribute des Ident itätsanbieters den Attributen des Verify Cloud-Verzeichnisses zu.
    Nachdem Sie den Identitäts-Agenten erstellt haben, können Sie die Zuordnungen über die Bearbeitungsfunktion Stiftsymbol auf der Kachel des Agenten ändern oder aktualisieren.
  11. Wählen Sie „Weiter “.
  12. Geben Sie unter „Konfiguration abschließen “ die folgenden Informationen ein.
    • Einen eindeutigen und aussagekräftigen Namen für den Agenten
    • Eine Beschreibung
    • Ein Anzeigename für den Identitätsanbieter
    • Ein Bereich für den Identitätsanbieter
  13. Optional: Wählen Sie „Erweiterte Einstellungen anzeigen“, um Konfigurationsattribute hinzuzufügen oder ein Zertifikat für die Verschlüsselung auszuwählen.
    Hinweis: Die erweiterten Einstellungen sind für den Haupt- LDAP vorgesehen, werden jedoch an die Plug-ins von „ JavaScript “ weitergeleitet und stehen dort für die manuelle Bearbeitung zur Verfügung.
  14. Klicken Sie auf „Speichern“ und fahren Sie fort.
  15. Führen Sie unter „Nächste Schritte “ die folgenden Schritte aus.
    1. Wählen Sie „API-Anmeldedaten anzeigen“ und kopieren Sie die Client-ID und den geheimen Client-Schlüssel mithilfe des Symbols „In die Zwischenablage kopieren“, um sie zu speichern.
      Hinweis: Nur Benutzer mit den entsprechenden Berechtigungen können das Client-Geheimnis einsehen. Weitere Informationen finden Sie unter „Sicherheitsupdates für Berechtigungen “.
    2. Falls noch nicht geschehen, laden Sie den Bridge-Agenten aus dem „ IBM Container Repository“ (ICR) herunter. Siehe „Installation und Konfiguration der Verify Bridge“ unter Docker.
    3. Fügen Sie der Agentenkonfiguration Ihre API-Berechtigungsnachweise hinzu.
  16. Klicken Sie auf „Fertig stellen “.
    Die Konfiguration wird zu den Identitätsagenten hinzugefügt, und der Identitätsanbieter wird unter „Authentifizierung > Identitätsanbieter“ aufgeführt.
  17. JavaScript -Plug-ins konfigurieren.
    Die Bridge-Ausführungsdatei durchsucht die folgenden Verzeichnisse relativ zu ihrem eigenen Speicherort.
    • ./jsconfig/ - Der Speicherort der Konfigurationsdateien.
    • ./jsplugins/ - Der Speicherort der Plug-ins von „ JavaScript “.

    Um diese Verzeichnisse für einen Docker-Container verfügbar zu machen, können Sie eine Bind-Mount-Verbindung vom Host-Dateisystem aus herstellen.

    volumes:
                    - ./jsconfig:/go/src/jsconfig:ro
                    - ./jsplugins:/go/src/jsplugins:ro
    
    Dieses Beispiel zeigt die Plug-in-Konfiguration für ein Datenbank-Plug-in von „ 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"
        }
      }
    
    Das folgende Beispiel zeigt eine Konfiguration für ein „ LDAP “-Plugin.
    {
        "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"
        }
      }
    

    In der Tabelle sind die Eigenschaften des Konfigurations-Plug-ins aufgeführt.

    Eigenschaft Definition
    pluginName Der Name des Plug-ins. Die Bridge sucht ./jsplugins/<pluginName>.js nach dieser Datei, relativ zur ausführbaren Datei der Bridge.
    pluginType
    • OracleDB
    • postgres
    • Db2
    • LDAP
    Vollstreckungsbescheid Die Reihenfolge, in der das Plug-in ausgeführt wird. Vom niedrigsten zum höchsten.
    hardFail falseWenn beim Abrufen von Attributen ein Fehler auftritt, überspringt Bridge dieses Plug-in. Andernfalls wird ein Fehler zurückgegeben und die Authentifizierung schlägt fehl
    isAuthenticationSource Setzen Sie diese Option auf true , wenn die Authentifizierung über dieses Plug-in erfolgt.
    Hinweis: Wenn diese Eigenschaft auf true gesetzt wird, führt dies automatisch zu einem Totalausfall des Plug-ins.
    disablePrimaryLDAPLookup Deaktiviert den primären „ LDAP “.
    connectionString Die richtige Verbindungszeichenfolge für Ihre Datenbank. Es gilt für
    • Db2
    • PostgreSQL
    • Oracle Database.

    Für „ LDAP “ bitte leer lassen.

    Nur LDAP
    filter LDAP Filter.
    bindDn Die Bind-DN.
    bindPassword Das Passwort für die Bindung.
    URIs LDAP URIs. Sie können mehrere Optionen für Failover-Szenarien festlegen. Geben Sie das Protokoll ldaps für „ TLS “ an.
    userObjectClasses Objektauswahl für Benutzer.
    Selektor Selektoren. Die gewünschten Benutzerattribute müssen hier angezeigt werden.
    userIdentifier Bezeichner, der bei einer Standardabfrage verwendet wird.
    baseDn Der Ort in der Verzeichnishierarchie, an dem die Suche beginnt.
    caCert Das CA-Zertifikat, das zur Validierung des vom Server „ LDAP “ vorgelegten Zertifikats verwendet wird.
    insecureSkipVerify Die Überprüfung von Zertifikaten durch „ TLS “ überspringen.
    tlsMinVersion

    Mindestversion von TLS

    • 769 – v1.0
    • 770 – v.1.1
    • 771 – v1.2 (Standard)
    • 772 – v1.3
    clientCertLabel

    Für MTLS. Es handelt sich um die Bezeichnung des Zertifikats und des Schlüssels, die zur Signierung des Datenverkehrs verwendet werden, der an den Server „ LDAP “ gesendet wird.

    Der Agent sucht nach „cert“ unter

    /cert/<clientCertLabel>_cert.pem /cert/<clientCertLabel>_key.pem

    angepasst Die benutzerdefinierten Werte, die über die Konfiguration an das Plug-in zur manuellen Bearbeitung übergeben werden können.
    Beispiele für Verbindungszeichenfolgen.
    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.Um über „ TLS “ eine Verbindung zu „ LDAP “ über ein „ JavaScript “-Plugin herzustellen, müssen Sie im uris Abschnitt die ldaps:// Option angeben und eine gültige angeben.
    "uris": [
            "ldaps://localhost:8636"
          ],
    
    Um MTLS über ein „ LDAP “-Plugin auszuführen, können Sie das Client-Zertifikat und den privaten Schlüssel des Client-Zertifikats mithilfe von Bind-Mounts im /cert/ Verzeichnis Ihres Containers ablegen.
    - ./cert/:/cert:ro
    <clientCertLabel>_key.pemStellen Sie sicher, dass die Zertifikatsnamen das Format <clientCertLabel>_cert.pem und haben, wobei clientCertLabel für die clientCertLabel steht, die in der Plug-in-Konfiguration für „ LDAP “-Plug-ins angegeben ist.