여러 속성 소스를 사용하여 인증을 위한 ID 에이전트 구성

LDAP, PostgreSQL,, Db2 및 Oracle Database 와 같은 소스의 속성을 사용하여 ID 에이전트를 구성하려면 이 절차를 따르십시오.

이 태스크에 대한 정보

IBM® Verify하나 이상의 온프레미스 데이터 소스를 결합하여.의 단일 ID 공급자로 사용할 수 있습니다. 이 구성을 통해 ID 에이전트가 하나 이상의 데이터 소스에서 사용자 속성을 인증하고 가져올 수 있습니다.

이 구성에서 지원하는 데이터 소스는 다음과 같습니다:
  • LDAP
  • IBM Db2
  • PostgreSQL
  • Oracle Database
용어
인증 소스
인증을 수행할 대상 데이터 소스.
JavaScript 구성
데이터 소스의 구성 세부 정보를 지정하는 온프레미스 구성 파일입니다.
JavaScript 플러그인
비기본 LDAP 과의 상호작용을 처리하는 코드입니다.
LDAP 홈페이지
LDAP 처리가 내장되어 있으므로, 기본 LDAP 에는 JavaScript 플러그인이 필요하지 않습니다.
대체 데이터 소스
주 데이터 소스인 LDAP 와 함께 사용하거나 이를 대신하여 사용할 하나 이상의 추가 데이터 소스.
참고: 데이터 소스는 최대 10개까지 순서에 관계없이 사용할 수 있지만, 기본 데이터 소스( LDAP )와 대체 데이터 소스의 구성은 서로 다릅니다.

프로시저

  1. ‘통합 ’ > ‘ID 에이전트’를 선택합니다.
  2. ‘에이전트 구성 만들기’를 선택합니다.
  3. 목적에서 ‘인증’을 선택하십시오.
  4. LDAP ’ 타일을 선택하세요.
  5. ‘다음’을 선택하세요.
  6. 연결 설정 구성
    다음 정보를 제공하여 LDAP 연결 특성을 정의합니다.
    참고: 기본 LDAP 는 선택 사항이며, 반드시 인증 소스로 설정할 필요는 없습니다. 기본 LDAP 를 사용하지 않으려면 이 섹션에 가짜 값을 입력하십시오. 기본 LDAP 를 사용하지 않기로 선택한 경우, JavaScript 구성 중 하나에 다음 코드를 명시해야 합니다.
    "authenticationSource":{
    "isAuthenticationSource": false,
          "disablePrimaryLDAPLookup": false
        },
    
    외부 LDAP 호스트 URI
    이 속성은 온프레미스 LDAP 서버 연결 정보입니다. 클러스터 LDAP 오류 복구 설정의 경우, URI 추가를 선택하여 다중 LDAP 서버 URI를 추가할 수 있습니다.
    기본
    이 속성은 사용자의 LDAP 컨테이너 검색 기반입니다.
    LDAP 바인드 DN
    이 속성은 LDAP 서버 연결 사용자입니다.
    LDAP 바인드 비밀번호
    이 속성은 LDAP 서버 연결 비밀번호입니다.
    LDAP 인증 기관 인증서
    이 선택적 속성은 온프레미스 에이전트에서 LDAP 서버에 대한 TLS 연결을 필요로 하는 경우 사용되는 SSL 인증서입니다.
    추가 설정 보기
    다음 설정을 정의할 수 있습니다.
    • LDAP에 TLS가 필요한지 여부를 설정합니다.
    • LDAP 서버에 대한 최대 동시 LDAP 연결 수.
    • 성공적인 비밀번호 인증 결과가 캐시에 얼마나 오래 저장되는지.
    • 연결 유지보수 기간.
    • LDAP 서버에서 연결을 닫기 전 유휴 시간.
    • 요청을 처리하는 최대 시간.
  7. 다음을 클릭하십시오.
  8. 사용자 특성을 제공하십시오.
    속성
    이 속성은 성공적인 비밀번호 검증 작업에서 리턴된, 쉼표로 구분된 LDAP 사용자 속성 목록입니다. 기본 ` LDAP ` 속성의 경우, ` LDAP ` 속성 이름을 사용하십시오. 대체 데이터 소스의 경우, 사용자 속성 이름 앞에 해당 속성을 반환할 것으로 예상되는 ‘ JavaScript ’ 플러그인의 이름을 접두사로 붙여 pluginName-Attribute.. 형식으로 지정하십시오. 예를 들어, 다음을 설정한다고 가정합니다.
    "pluginName": "OcPlug",
    OcPlug-그러면 해당 OcPlug 함수에서 반환되는 모든 속성에는 접두사로 를 붙여야 합니다. 예를 들어, OcPlugin-mobile 이 코드는 ‘ JavaScript ’ 플러그인에 OcPlug ‘mobile’ 값을 가져오도록 지시합니다.
    속성은 쉼표로 구분해야 합니다. 예를 들면 다음과 같습니다.
    givenName, sh, displayName, manager, mail, mobile,
    memberOf, uid, OcPlug-OCD_SPEC_ID, db2PLUG-
    XTENDEDATTR, ldap-seeAlso
    참고: 이 예제는 플러그인 속성을 지정하는 방법을 보여줍니다. givenName, sn displayName, manager,, mail, mobile, memberOf, 및 uid 와 같이 접두사가 없는 속성은 기본 LDAP 에서 가져옵니다. seeAlsoOCD_SPEC_IDOcPlug 속성을 반환하고, ` db2Plug `는 속성을 XTENDEDATTR 반환하며, “ldap” 플러그인은 속성을 반환합니다.
    2진 속성
    이 속성은 성공적인 비밀번호 검증 작업에서 리턴된, 쉼표로 구분된 2진 LDAP 사용자 속성 목록입니다.
    사용자 이름 속성
    이 속성은 비밀번호 검증을 위해 사용자를 검색하는 데 사용되는 user id와 같은 이름 지정 속성입니다.
    참고: 사용자 이름 식별자 속성은 대소문자를 구분합니다. 이 기본 속성은 samAccountName 이전 버전의 Windows Active Directory 에 적용됩니다. Active Directory 2016 및 이후 버전에서는 이 속성이 sAMAAccountName.
    오브젝트 클래스
    이 속성은 LDAP 사용자가 보유할 수 있는 쉼표로 구분된 오브젝트 클래스 목록입니다. 오브젝트 클래스는 비밀번호 검증를 위해 사용자를 검색하도록 username 속성과 함께 사용됩니다.
    참고: 이진 속성, 사용자 이름 속성 및 Object 클래스는 기본적으로 ` LDAP `를 대상으로 하지만, 모두 ` JavaScript ` 플러그인으로 전달되며 플러그인 구현에서 수동으로 처리해야 합니다.
  9. ‘다음’을 선택하세요.
  10. ID 공급 자의 속성을 Cloud Directory 속성에 Verify 매핑합니다.
    ID 에이전트를 생성한 후에는 해당 에이전트 타일의 편집 기능을 연필 아이콘 사용하여 매핑을 변경하거나 업데이트할 수 있습니다.
  11. ‘다음’을 선택하세요.
  12. ‘구성 완료’에서 다음 정보를 입력하십시오.
    • 에이전트에 대한 인식 가능한 고유한 이름
    • 설명
    • ID 공급자의 표시 이름
    • ID 제공 자를 위한 영역
  13. 선택 사항: ‘고급 설정 보기’를 선택하여 구성 속성을 추가하거나 암호화에 사용할 인증서를 선택합니다.
    참고: 고급 설정은 주로 ‘ LDAP ’에서 사용하도록 설계되었으나, 수동 처리를 위해 ‘ JavaScript ’ 플러그인으로도 전달되어 사용할 수 있습니다.
  14. ‘저장 후 계속’을 클릭하세요.
  15. ‘다음 단계’에서 다음 단계를 수행하십시오.
    1. ‘API 자격 증명 보기’를 선택한 다음, ‘클립보드에 복사’ 아이콘을 사용하여 클라이언트 ID와 클라이언트 시크릿을 복사하여 저장하세요.
      참고: 적절한 권한을 가진 사용자만 클라이언트 시크릿을 볼 수 있습니다. 자세한 내용은 ‘권한에 대한 보안 업데이트’를 참조하십시오.
    2. 아직 다운로드하지 않았다면, IBM 컨테이너 리포지토리(ICR)에서 브리지 에이전트를 다운로드하십시오. Docker 의 ‘Verify Bridge 설치 및 구성’을 참조하십시오.
    3. 에이전트 구성에 API 인증 정보를 추가하십시오.
  16. ‘마침’을 클릭하세요.
    이 구성이 Identity 에이전트에 추가되며, 인증 > ID 공급자에서 해당 ID 공급자가 표시됩니다.
  17. JavaScript 플러그인 구성.
    bridge 실행 파일은 자체 위치를 기준으로 다음 디렉터리를 검색합니다.
    • ./jsconfig/ - 구성 파일의 위치.
    • ./jsplugins/ - JavaScript 플러그인의 위치.

    이 디렉터리를 Docker 컨테이너에서 사용할 수 있도록 하려면 호스트 파일 시스템에서 바인드 마운트를 수행하면 됩니다.

    volumes:
                    - ./jsconfig:/go/src/jsconfig:ro
                    - ./jsplugins:/go/src/jsplugins:ro
    
    이 예제는 ` 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"
        }
      }
    
    다음 예제는 ‘ 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"
        }
      }
    

    이 표에는 구성 플러그인의 속성이 나열되어 있습니다.

    특성 정의
    pluginName 플러그인의 이름. 브릿지는 브릿지 실행 파일을 기준으로 이 파일을 찾습니다 ./jsplugins/<pluginName>.js .
    pluginType
    • OracleDB
    • postgres
    • Db2
    • LDAP
    집행 명령 플러그인이 실행되는 순서. 낮은 순서부터 높은 순서까지.
    hardFail false속성 가져오기 중에 오류가 발생하면 Bridge는 이 플러그인을 건너뜁니다. 그렇지 않으면 오류가 반환되고 인증에 실패합니다
    isAuthenticationSource 이 플러그인에서 인증이 이루어지는 경우 이 옵션을 true 선택하십시오.
    참고: 이 속성을 로 true 설정하면 플러그인이 자동으로 오류가 발생합니다.
    disablePrimaryLDAPLookup 기본 LDAP 를 비활성화합니다.
    connectionString 데이터베이스에 적합한 연결 문자열입니다. 다음에 적용됩니다
    • Db2
    • PostgreSQL
    • Oracle Database.

    LDAP 를 사용하려면 비워 두십시오.

    LDAP만 해당
    필터 LDAP 필터.
    bindDn 바인딩 DN.
    bindPassword 바인드 비밀번호.
    URI LDAP URI. 페일오버 시나리오에 대해 여러 개를 지정할 수 있습니다. ldapsTLS 에 사용할 프로토콜을 지정하십시오.
    userObjectClasses 사용자 객체 선택기.
    선택기 선택기. 원하는 사용자 속성이 여기에 표시되어야 합니다.
    userIdentifier 표준 조회를 수행할 때 사용되는 식별자.
    baseDn 검색이 시작되는 디렉터리 계층 구조 내의 위치.
    caCert LDAP 서버가 제시한 인증서를 검증하는 데 사용되는 CA 인증서.
    insecureSkipVerify TLS 인증서 확인을 건너뛰기.
    tlsMinVersion

    최소 TLS 버전

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

    MTLS의 경우. 이는 LDAP 서버로 전송되는 트래픽에 서명하는 데 사용되는 인증서 및 키의 레이블입니다.

    에이전트는 cert를 다음 위치에서 검색합니다

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

    사용자 정의 구성을 통해 플러그인으로 전달되어 수동으로 처리될 수 있는 사용자 정의 값들.
    연결 문자열 예시.
    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.TLS 를 사용하여 JavaScript 플러그인을 통해 LDAP 에 연결하려면, 섹션에서 urisldaps:// 지정하고 유효한 를 지정해야 합니다.
    "uris": [
            "ldaps://localhost:8636"
          ],
    
    LDAP 플러그인에서 MTLS를 수행하려면 바인드 마운트를 사용하여 컨테이너의 디렉터리에 /cert/ 클라이언트 인증서와 클라이언트 인증서 개인 키를 배치할 수 있습니다.
    - ./cert/:/cert:ro
    <clientCertLabel>_key.pem인증서 이름이 및 형식인지 <clientCertLabel>_cert.pem 확인하십시오. 여기서 clientCertLabelclientCertLabelLDAP 플러그인의 플러그인 구성에 지정된 입니다.