CLI를 사용하여 조직별 LDAP 사용자 레지스트리 작성
Consumer Catalog CLI를 사용하여 Consumer Catalog 에 대한 사용자 인증을 제공하기 위해 조직별 LDAP 사용자 레지스트리를 구성할 수 있습니다. LDAP 사용자 레지스트리로 API를 보안할 수도 있습니다.
시작하기 전에
API Manager에서 LDAP 사용자 레지스트리를 리소스로 구성하려면, LDAP 디렉터리가 생성되어 있어야 하며 해당 API Connect 생태계에서 사용할 수 있어야 합니다.
LDAP 레지스트리는 API를 보호하거나, 컨슈머 카탈로그 사용자를 인증하기 위해 카탈로그를 보호하는 데 사용할 수 있습니다.
Active Directory사용하는 경우, LDAP 구성에서 "directory_type": "ad" 속성을 사용하여 이를 명시해야 합니다.LDAP 사용자 레지스트리를 구성하려면 다음 역할 중 하나가 필요합니다.
- 관리자
- 소유자
- 토폴로지 관리자
- 사용자 정의 역할Settings: Manage권한
이 태스크에 대한 정보
- 또한 API Manager UI를 사용하여 조직별 LDAP 사용자 등록 정보를 생성할 수 있습니다. 자세한 내용은 API Manager에서 ‘ LDAP ’ 사용자 레지스트리 생성을 참조하십시오.
- 또한 REST API Connect API를 사용하여 LDAP 사용자 등록 정보를 생성하고 관리할 수 있습니다. 자세한 내용은 REST API Connect API 문서를 참조하십시오.
- LDAP 를 사용하는 경우 그룹 DataPower® API Gateway인증은 지원되지 않습니다.
- 개발자 툴킷 CLI를 사용하여 외부 LDAP 그룹을 사용자 API Connect 역할에 매핑함으로써 사용자 권한 설정을 보다 세밀하게 제어할 수 있습니다. 다음 지시사항에서는 LDAP 사용자 레지스트리 자원에서
external_group_mapping_enabled구성을 설정하는 방법을 설명합니다. 사용자 API Connect 역할에 대한 외부 역할 매핑 설정 방법에 대한 자세한 내용은 ‘Cloud Manager 사용자 역할에서 LDAP 그룹 매핑 구성’을 참조하십시오.
먼저 구성 파일에 레지스트리 세부사항을 정의해서 LDAP 사용자 레지스트리를 작성합니다. 그런 다음 developer toolkit CLI 명령을 사용하여 레지스트리를 작성하고 구성 파일을 매개변수로 전달합니다. 레지스트리를 소비자 카탈로그에서 사용할 수 있게 하려면, 해당 카탈로그에서 레지스트리를 활성화해야 합니다. LDAP 레지스트리로 API를 보안하려면 보안 정의를 구성해야 합니다. 다음 지시사항을 사용하여 쓰기 가능 또는 읽기 전용 LDAP 사용자 레지스트리를 작성할 수 있습니다.
LDAP 를 통한 인증에 대한 자세한 내용은 LDAP authentication을 참조하십시오.
관리 서버 CLI에 로그인
apic login --server mgmt_endpoint_url --username user_id --password password --realm provider/identity_provider--realm 매개변수에 사용하기
위해 ID 제공자를 판별할 수 있습니다(이 명령을 사용하기 위해 로그인될 필요 없음).apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm예를 들면 다음과 같습니다.apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm
total_results: 2
results:
- title: API Manager User Registry
realm: provider/default-idp-2
- title: Corporate LDAP user registry
realm: provider/corporate-ldaptitle 값은 사용할 ID 제공자를 판별할 수 있게 해야 합니다. 그리고 표시한
realm 값에서 직접 해당하는 --realm 매개변수를 복사할
수 있습니다. 설치 API Connect 후 관리자가 생성한 모든 ID 제공자의 이름은 생성 시점에 결정됩니다. 제공자 조직의 멤버로서 로그인을 위한 기본 API Manager 로컬 사용자 레지스트리는 default-idp-2입니다.로그인 명령에 대한 전체 세부사항은 관리 서버에 로그인을 참조하십시오.
LDAP 구성 정의
ldap_config_file.yaml 파일에
LDAP 사용자 레지스트리의 구성을 정의합니다. LDAP 서버의 인증 방식에 따라 YAML 파일의 실제 내용은 달라지며, 이에 대한 설명은 다음 표에 나와 있습니다.name: registry_name
title: "display_title"
integration_url: LDAP_integration_url
user_managed: true_or_false
user_registry_managed: false
directory_type: ad
external_group_mapping_enabled: true_or_false
case_sensitive: true_or_false
email_required: true_or_false
email_unique_if_exist: true_or_false
identity_providers:
- name: provider_name
title: provider_title
endpoint:
endpoint: "ldap_server_url_and_port"
configuration:
authentication_method: authentication_method
authenticated_bind: "true_or_false"
admin_dn: "admin_dn"
admin_password: admin_password
search_dn_base: "search_dn_base"
search_dn_scope: search_dn_scope
search_dn_filter_prefix: prefix
search_dn_filter_suffix: suffix
attribute_mapping:
dn: "distinguished_name"
cn: "common_name"
sn: "last_name"
mail: "email_address"
userPassword: "password"각 인증 메소드에 공통인 레지스트리 특성은 다음 표에
설명되어 있습니다.| 특성 | 설명 |
|---|---|
name |
레지스트리 이름입니다. 이 이름은 CLI 명령에서 사용됩니다. |
title |
그래픽 사용자 인터페이스에 표시할 설명 이름입니다. |
integration_url |
LDAP 통합 URL 을 구성에 API Connect 포함시켜 주세요. 다음 CLI 명령을 사용하여 LDAP 통합 URL을 판별할 수 있습니다. |
user_managed |
사용자 레지스트리가 쓰기 가능한지 판별합니다. 쓰기 가능한 LDAP에 대해서는
true로 설정되어야 합니다. 레지스트리를 쓰기 가능 상태로 설정하지 않으려면 이 false 설정을 로 변경할 수 있습니다. 자세한 내용은 이 항목의 마지막 부분에 있는 “ LDAP 레지스트리를 쓰기 가능 모드와 읽기 전용 모드 간에 전환하기” 섹션을 참조하십시오. LDAP 의 쓰기 가능한 사용자 레지스트리는 Cloud Manager 및 API Manager 사용자의 인증에 사용할 수 없다는 점에 유의하십시오. |
user_registry_managed |
LDAP에 대해 false로 설정되어야 합니다. API Connect 가 사용자 레지스트리를 관리하는지 여부를 판별합니다. LUR 레지스트리만 API Connect에서 관리됩니다. |
directory |
디렉토리 유형에 대해 다음 값 중 하나를 지정하십시오.
|
external_group_mapping_enabled |
사용자 레지스트리가 LDAP 그룹 맵핑을 지원하는지 여부를 판별합니다. 유효값은 다음과 같습니다.
false입니다. |
case_sensitive |
사용자 레지스트리가 대소문자를 구분하는지 판별합니다. 유효값은 다음과 같습니다.
참고: 한 명 이상의 사용자가 레지스트리에 온보딩된 후에는 이 설정을 변경할 수 없습니다. |
email_required |
사용자 온보딩 프로세스의 일부로 이메일 주소가 필요한지 여부를 판별합니다. 유효값은 다음과 같습니다.
true로 설정되면 소스 ID 제공자가 온보딩 중에 인증 프로세스의 일부로 이메일 주소를 제공해야 합니다.참고: Cloud Manager 또는 API Manager 에 가입할 때는 기본적으로 이메일 주소가 필요하지 않지만, Consumer Catalog 에 가입할 때는 이메일 주소가 필요합니다. |
email_unique_if_exist |
이메일 주소가 사용자 레지스트리 내에서 고유해야 하는지 여부를 판별합니다. 유효값은 다음과 같습니다.
참고: 소비자 카탈로그 에 있는 모든 계정(동일 사이트 내의 서로 다른 사용자 레지스트리에 속한 계정도 포함)은 고유한 이메일 주소를 가져야 하며, 여기에는 사이트 관리자 계정도 포함됩니다. |
identity_providers |
LDAP 서버의 세부사항을 포함하는 배열입니다. 여기서,
|
endpoint |
url과 포트로 구성되는 LDAP 서버의 엔드포인트입니다. 예를 들어, 다음과 같습니다. |
tls_profile |
선택적으로 LDAP 서버가 요구하는 TLS 클라이언트 프로파일을 설정하십시오. |
protocol_version |
선택적으로 사용 중인 LDAP 프로토콜의 버전 번호를 설정하십시오. 유효값은 다음과 같습니다.
3입니다. |
compose_dn- 사용자 이름에서 사용자 LDAP 식별 이름(DN)을 작성할 수 있는 경우 이 형식을 설정하십시오. 예를 들어,uid=<username>,ou=People,dc=company,dc=com는 사용자 이름으로 구성할 수 있는 DN 형식입니다. 작성(DN)이 올바른 옵션인지 확신할 수 없는 경우에는 LDAP 관리자에게 문의하십시오. LDAP 레지스트리를 사용하여 API를 보안하는 경우compose_dn은 DataPower API Gateway에서 지원되지 않습니다.compose_upn- LDAP 디렉토리에서 사용자 프린시펄 이름과의 바인딩을 지원하는 경우 이 형식을 설정하십시오(예:john@acme.com). Microsoft Active Directory가 작성 UPN 인증을 지원하는 LDAP 디렉토리의 예제입니다. LDAP 디렉토리가 UPN 바인드를 지원하는지 여부를 잘 모르는 경우 LDAP 관리자에게 문의하십시오.참고: 관리 바인드 DN및 관리 바인드 비밀번호는 이 인증 방법과 함께 사용되지 않습니다.search_dn- 사용자 이름에서 사용자 LDAP 식별 이름을 구성할 수 없는 경우 이 형식을 선택하십시오(예: 사용자의 기본 DN이 다를 경우). 이 형식에서는 LDAP 디렉토리에서 사용자를 검색하기 위해 관리자 DN 및 비밀번호를 요구할 수 있습니다. LDAP 디렉토리가 익명 바인드를 허용하는 경우 관리 DN 및 비밀번호를 생략할 수 있습니다. LDAP 디렉토리가 익명 바인드를 허용하는지 여부를 잘 모르는 경우 LDAP 관리자에게 문의하십시오.
compose_dn의 경우 다음 구성 특성을 설정하십시오.| 특성 | 설명 |
|---|---|
authentication_method |
compose_dn |
authenticated_bind |
바인드 메소드입니다. 유효값은 다음과 같습니다.
"false"를 선택하십시오. 특정 권한이 필요한 경우 "true"를 선택하십시오. |
admin_dn |
authenticated_bind가 "true"로 설정된 경우
LDAP 디렉토리에서 검색을 수행할 권한이 있는 사용자의 식별 이름(DN)을 입력하십시오. 예를 들어,
|
admin_password |
authenticated_bind가 "true"로 설정된 경우
admin_dn의 사용자 비밀번호를 입력하십시오. |
search_dn_base |
선택적으로 기본 DN을 설정하십시오. 예를 들어, 다음과 같습니다. |
bind_prefix |
접두부를 DN으로 설정하십시오. 예를 들어, 다음과 같습니다. |
bind_suffix |
접미부를 DN으로 설정하십시오. 예를 들어, 다음과 같습니다. |
attribute_mapping |
가 로 설정된 true user_managed 경우, 소스 LDAP 속성 이름과 대상 API Connect 값 간의 매핑을 제공하십시오. 이 매핑은 다음과 같이 지정된 이름-값 쌍으로 구성됩니다:여기서,
username, first_name, last_name, email및 password입니다.다음 추출에서는 속성 맵핑 예제를 표시합니다. |
compose_upn의 경우 다음 구성 특성을 설정하십시오.| 특성 | 설명 |
|---|---|
authentication_method |
compose_upn |
authenticated_bind |
바인드 메소드입니다. 유효값은 다음과 같습니다.
"false"를 선택하십시오. 특정 권한이 필요한 경우 "true"를 선택하십시오. |
admin_dn |
authenticated_bind가 "true"로 설정된 경우
LDAP 디렉토리에서 검색을 수행할 권한이 있는 사용자의 식별 이름(DN)을 입력하십시오. 예를 들면 다음과 같습니다.
|
admin_password |
authenticated_bind가 "true"로 설정된 경우
admin_dn의 사용자 비밀번호를 입력하십시오. |
bind_suffix |
사용자 프린시펄 이름의 도메인 부분을 입력합니다. 예를 들어, |
attribute_mapping |
가 로 설정된 true user_managed 경우, 소스 LDAP 속성 이름과 대상 API Connect 값 간의 매핑을 제공하십시오. 이 매핑은 다음과 같이 지정된 이름-값 쌍으로 구성됩니다:여기서,
username, first_name, last_name, email및 password입니다.다음 추출에서는 속성 맵핑 예제를 표시합니다. |
search_dn의 경우 다음 구성 특성을 설정하십시오.| 특성 | 설명 |
|---|---|
authentication_method |
search_dn |
authenticated_bind |
바인드 메소드입니다. 유효값은 다음과 같습니다.
"false"를 선택하십시오. 특정 권한이 필요한 경우 "true"를 선택하십시오. |
admin_dn |
authenticated_bind가 "true"로 설정된 경우
LDAP 디렉토리에서 검색을 수행할 권한이 있는 사용자의 식별 이름(DN)을 입력하십시오. 예를 들면 다음과 같습니다.
|
admin_password |
authenticated_bind가 "true"로 설정된 경우
admin_dn의 사용자 비밀번호를 입력하십시오. |
search_dn_base |
선택적으로 기본 DN을 설정하십시오. 예를 들어, 다음과 같습니다. |
search_dn_scope |
선택적으로 검색 DN 범위를 설정하십시오. 범위는 검사되는 디렉토리 정보 트리의 파트를
판별합니다. 가능한 값은 다음과 같습니다.
|
search_dn_filter_prefix |
접두부를 DN으로 설정하십시오. 예를 들어, 다음과 같습니다. |
search_dn_filter_suffix |
접미부를 DN으로 설정하십시오. 예를 들어, 다음과 같습니다. |
attribute_mapping |
가 로 설정된 true user_managed 경우, 소스 LDAP 속성 이름과 대상 API Connect 값 간의 매핑을 제공하십시오. 이 매핑은 다음과 같이 지정된 이름-값 쌍으로 구성됩니다:여기서,
username, first_name, last_name, email및 password입니다.다음 추출에서는 속성 맵핑 예제를 표시합니다. |
파일을 ldap_config_file.yaml 저장해 두시면 다음 섹션의 명령을 user-registries:create 통해 해당 파일에 접근할 수 있습니다. 예제 구성 파일은 예제 절을 참조하십시오.
LDAP 사용자 레지스트리 작성
apic user-registries:create --server mgmt_endpoint_url --org organization_name ldap_config_file.yaml상황:- mgmt_endpoint_url은 플랫폼 API 엔드포인트 URL입니다.
- organization_name은 제공자 조직의
name특성 값입니다. - ldap_config_file은 LDAP 사용자 레지스트리의 구성을 정의하는 YAML 파일의 이름입니다.
registry_name registry_urlregistry_name은
구성 YAML 파일의 name 특성에서
파생됩니다. registry_url은 레지스트리 자원에 액세스할 수 있는
URL입니다.LDAP 사용자 레지스트리가 생성되었습니다. Consumer Catalog에서 이 레지스트리를 사용할 수 있도록 설정하는 방법은 다음 섹션을 참조하십시오.
카탈로그에 LDAP 레지스트리 구성
쓰기 가능 및 읽기 전용 간에 LDAP 레지스트리 전환
user_managed 특성을
업데이트하여 쓰기 가능 및 읽기 전용 사이에서 전환할 수 있습니다. 다음 단계를 완료하십시오.- 다음 명령을 실행하여 업데이트하려는 LDAP 사용자 레지스트리의
이름 또는 ID를 판별하십시오(또는 레지스트리 작성에서
요약을 사용할 수 있음).
명령은 이 조직의 모든 사용자 레지스트리 목록을 리턴합니다(이름 및 바로 뒤에 레지스트리 URL이 표시됨). 레지스트리 ID는 URL의 끝에 있습니다. 예:apic user-registries:list --server mgmt_endpoint_url --org organization_namehttps://company.com/api/user-registries/x-x-x-x-x/registry_id. - 다음 명령어를 입력하세요(끝에 있는 하이픈 기호는 이 명령어가 명령줄에서 입력을 받는다는 의미입니다):
여기서,apic user-registries:update --server mgmt_endpoint_url --org organization_name registry_name_or_id -registry_name_or_id는 업데이트하려는 LDAP 사용자 레지스트리의 이름 또는 ID입니다(이전 단계에서 판별된). 이 명령에서는 다음과 같은 항목을 리턴합니다.Reading USER_REGISTRY_FILE arg from stdin - 다음 데이터를 입력한 후 줄 바꾸기를
입력하십시오.
여기서user_managed: true_or_falsetrue는 레지스트리를 쓰기 가능하게 하고, 는 레지스트리를false읽기 전용으로 만듭니다. - 입력을 중지하려면
CTRL D를 누르세요.
attribute_mapping 구성도 설정해야 합니다.LDAP 사용자 레지스트리를 사용하여 API 보안
- API의 보안 정의에서 기본 인증에 사용하려면 기본 인증 보안 정의 작성을 참조하십시오.
- 네이티브 OAuth 공급자에 대한 사용자 보안 구성에서 인증에 사용하려면, ‘네이티브 OAuth 공급자에 대한 사용자 보안 구성’을 참조하십시오.
및 apic
configured-catalog-user-registriesapic user-registries 명령어에 대한 자세한 내용은 툴킷 CLI 참조 문서를 참조하십시오.
예
name: sdn-ldap
title: "SDN LDAP User Registry"
integration_url: https://mycompany.com/api/cloud/integrations/user-registry/xxx-xxx-xxx
user_managed: true
user_registry_managed: false
directory_type: standard
case_sensitive: false
identity_providers:
- name: ldap
title: "SDN LDAP Identity Provider"
endpoint:
endpoint: "ldap://mycompany.com:389"
configuration:
authentication_method: search_dn
authenticated_bind: "true"
admin_dn: "cn=admin,dc=company,dc=com"
admin_password: xxxx
search_dn_base: "dc=company,dc=com"
search_dn_scope: sub
search_dn_filter_prefix: (uid=
search_dn_filter_suffix: )
attribute_mapping:
dn: "uid=[username],ou=users,dc=company,dc=com"
cn: "[first_name] [last_name]"
sn: "[last_name]"
mail: "[email]"
userPassword: "[password]"