여러 속성 소스를 사용하여 인증을 위한 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 )와 대체 데이터 소스의 구성은 서로 다릅니다.
프로시저
- ‘통합 ’ > ‘ID 에이전트’를 선택합니다.
- ‘에이전트 구성 만들기’를 선택합니다.
- 목적에서 ‘인증’을 선택하십시오.
- ‘ LDAP ’ 타일을 선택하세요.
- ‘다음’을 선택하세요.
- 연결 설정 구성다음 정보를 제공하여 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 서버에서 연결을 닫기 전 유휴 시간.
- 요청을 처리하는 최대 시간.
- 다음을 클릭하십시오.
- 사용자 특성을 제공하십시오.
- 속성
- 이 속성은 성공적인 비밀번호 검증 작업에서 리턴된, 쉼표로 구분된 LDAP 사용자 속성 목록입니다. 기본 ` LDAP ` 속성의 경우, ` LDAP ` 속성 이름을 사용하십시오. 대체 데이터 소스의 경우, 사용자 속성 이름 앞에 해당 속성을 반환할 것으로 예상되는 ‘ JavaScript ’ 플러그인의 이름을 접두사로 붙여 pluginName-Attribute.. 형식으로 지정하십시오. 예를 들어, 다음을 설정한다고 가정합니다.
OcPlug-그러면 해당 OcPlug 함수에서 반환되는 모든 속성에는 접두사로 를 붙여야 합니다. 예를 들어, OcPlugin-mobile 이 코드는 ‘ JavaScript ’ 플러그인에 OcPlug ‘mobile’ 값을 가져오도록 지시합니다."pluginName": "OcPlug",속성은 쉼표로 구분해야 합니다. 예를 들면 다음과 같습니다.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 ` 플러그인으로 전달되며 플러그인 구현에서 수동으로 처리해야 합니다. - ‘다음’을 선택하세요.
- ID 공급 자의 속성을 Cloud Directory 속성에 Verify 매핑합니다.ID 에이전트를 생성한 후에는 해당 에이전트 타일의 편집 기능을
사용하여 매핑을 변경하거나 업데이트할 수 있습니다. - ‘다음’을 선택하세요.
- ‘구성 완료’에서 다음 정보를 입력하십시오.
- 에이전트에 대한 인식 가능한 고유한 이름
- 설명
- ID 공급자의 표시 이름
- ID 제공 자를 위한 영역
- 선택 사항: ‘고급 설정 보기’를 선택하여 구성 속성을 추가하거나 암호화에 사용할 인증서를 선택합니다.참고: 고급 설정은 주로 ‘ LDAP ’에서 사용하도록 설계되었으나, 수동 처리를 위해 ‘ JavaScript ’ 플러그인으로도 전달되어 사용할 수 있습니다.
- ‘저장 후 계속’을 클릭하세요.
- ‘다음 단계’에서 다음 단계를 수행하십시오.
- ‘API 자격 증명 보기’를 선택한 다음, ‘클립보드에 복사’ 아이콘을 사용하여 클라이언트 ID와 클라이언트 시크릿을 복사하여 저장하세요.참고: 적절한 권한을 가진 사용자만 클라이언트 시크릿을 볼 수 있습니다. 자세한 내용은 ‘권한에 대한 보안 업데이트’를 참조하십시오.
- 아직 다운로드하지 않았다면, IBM 컨테이너 리포지토리(ICR)에서 브리지 에이전트를 다운로드하십시오. Docker 의 ‘Verify Bridge 설치 및 구성’을 참조하십시오.
- 에이전트 구성에 API 인증 정보를 추가하십시오.
- ‘API 자격 증명 보기’를 선택한 다음, ‘클립보드에 복사’ 아이콘을 사용하여 클라이언트 ID와 클라이언트 시크릿을 복사하여 저장하세요.
- ‘마침’을 클릭하세요.이 구성이 Identity 에이전트에 추가되며, 인증 > ID 공급자에서 해당 ID 공급자가 표시됩니다.
- JavaScript 플러그인 구성.bridge 실행 파일은 자체 위치를 기준으로 다음 디렉터리를 검색합니다.
- ./jsconfig/ - 구성 파일의 위치.
- ./jsplugins/ - JavaScript 플러그인의 위치.
이 디렉터리를 Docker 컨테이너에서 사용할 수 있도록 하려면 호스트 파일 시스템에서 바인드 마운트를 수행하면 됩니다.
이 예제는 ` Oracle ` 데이터베이스 플러그인의 구성 설정을 보여줍니다.volumes: - ./jsconfig:/go/src/jsconfig:ro - ./jsplugins:/go/src/jsplugins:ro
다음 예제는 ‘ 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" } }
연결 문자열 예시.이 표에는 구성 플러그인의 속성이 나열되어 있습니다.
특성 정의 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 에 연결하려면, 섹션에서 uris 를 ldaps:// 지정하고 유효한 를 지정해야 합니다.
"uris": [ "ldaps://localhost:8636" ],LDAP 플러그인에서 MTLS를 수행하려면 바인드 마운트를 사용하여 컨테이너의 디렉터리에 /cert/ 클라이언트 인증서와 클라이언트 인증서 개인 키를 배치할 수 있습니다.- ./cert/:/cert:ro<clientCertLabel>_key.pem인증서 이름이 및 형식인지<clientCertLabel>_cert.pem확인하십시오. 여기서 clientCertLabel 는 clientCertLabelLDAP 플러그인의 플러그인 구성에 지정된 입니다.