동적 클라이언트 등록
동적 클라이언트 등록을 통해 OIDC(OpenID Connect) 신뢰 당사자(RP)는 OpenID Connect 제공자(OP)에 자체적으로 등록할 수 있습니다.
시작하기 전에
동적 클라이언트 등록은 Connect 동적 클라이언트 OpenID 등록 1.0 사양을 기반으로 합니다.
테넌트 관리자 또는 테넌트에 대한 관리 액세스 권한이 있는 사용자가 새 OIDC 애플리케이션을 작성합니다. 이제 올바른 인타이틀먼트가 있는 API 클라이언트가 동적 클라이언트 등록 엔드포인트를 통해 OIDC 애플리케이션을 작성할 수도 있습니다. 작성된 애플리케이션은 사인온 메소드가 OpenID Connect로 설정된 "사용자 정의 애플리케이션" 입니다.
동적 클라이언트 등록 엔드포인트는 https://{{tenant}}/v1.0/endpoint/default/client_registration에 있습니다.
요구사항을 충족하는 경우 새 동적 클라이언트 등록 엔드포인트 사용을 고려하십시오. 자세한 정보는 새 OpenID Connect 제공자로 동적 클라이언트 등록을 참조하십시오.
이 태스크에 대한 정보
클라이언트를 동적으로 등록하려면 초기 액세스 토큰을 확보한 후 등록 API를 사용하여 새 OIDC 애플리케이션을 등록하십시오.
새 클라이언트를 등록하기 전에 동적 클라이언트 등록 설정을 확인하십시오.동적 클라이언트 등록 설정
동적 클라이언트 등록에 대한 기본값을 설정하도록 동적 클라이언트 등록 설정을 구성할 수 있습니다. OIDC동적 클라이언트 등록 설정 구성을 참조하십시오.
관련 설정은 다음 표에 설명되어 있습니다.
| 필드 | 설명 |
|---|---|
| 권한 부여 유형 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 사용할 권한 부여 유형입니다. 지원되는 권한 부여 유형은 '권한 코드', '내재적', '비밀번호', '디바이스 플로우', 'JWT 전달자' 및 '새로 고치기 토큰' 입니다. |
| ID 토큰 청구 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 ID 토큰 및 사용자 정보에 대한 기본 청구입니다. |
| 토큰 청구 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 자체 검사 및 JWT 액세스 토큰에 대한 기본 청구입니다. |
| 액세스 토큰 유형 | 생성될 액세스 토큰의 유형입니다. 올바른 값은 'default' 및 'JWT' 입니다. |
| ID 토큰 서명 알고리즘 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 ID 토큰을 서명하는 데 사용되는 알고리즘입니다. |
| 사용자 승인 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 사용자 승인을 요청할지 여부를 선택하십시오. |
| 액세스 토큰 수명 | 액세스 토큰 수명 (초) 입니다. 최대 2147483647, 최소 1. |
| 새로 고치기 토큰 수명 | 새로 고치기 토큰 수명 (초) 입니다. 최대 2147483647, 최소 1. |
| PKCE 검증 적용 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 PKCE를 강제 실행할지 여부를 선택하십시오. |
| 모든 사용자에게 권한 부여 | 동적 클라이언트 등록 페이로드에 지정되지 않은 경우 모든 사용자가 이 클라이언트를 사용할 수 있는지 여부를 판별하십시오. |
| 사용자 정의 클라이언트 신임 정보 허용 | 사용자 정의 클라이언트 신임 정보가 허용되는지 여부를 판별합니다. 'false' 로 설정하면 클라이언트 ID및 시크릿을 동적 클라이언트 등록 페이로드에 지정할 수 없습니다. |
설정의 '소프트웨어 명령문', '요청 권한' 및 '등록 액세스 토큰' 섹션은 이 OpenID Connect 제공자와 관련이 없습니다.
초기 액세스 토큰 획득
동적 클라이언트 등록 엔드포인트에 액세스하려면 Manage
OIDC client registration dynamically 인타이틀먼트와 함께 액세스 토큰을 사용하십시오.
Manage OIDC client registration dynamically 인타이틀먼트를 사용하여 API 클라이언트를 작성하십시오. API 클라이언트를 만들려면 API 클라이언트 만들기를 참조하세요.
API 클라이언트가 작성된 후 액세스 토큰을 가져오려면 client_credentials 플로우를 사용하십시오. 다음 예제를 참조하십시오.
curl -ki -v https://{{tenant}}/v1.0/endpoint/default/`token -d "grant_type=client_credentials&client_id=<clientId>&client_secret=<clientSecret>"
등록 API를 사용하여 새 애플리케이션 등록
이전 섹션에서 생성된 액세스 토큰을 사용하여 새 OIDC 애플리케이션을 작성할 수 있습니다.
다음 표는 현재 지원되는 클라이언트 메타데이터 목록을 표시합니다.
| 메타데이터 이름 | 메타데이터 설명 | 선택사항 | 유효값 |
|---|---|---|---|
| client_name | 애플리케이션 이름 | True | 문자열 |
| client_id | 클라이언트 ID가 제공되지 않으면 클라이언트 ID가 자동으로 생성됩니다. | True | 문자열 |
| client_secret | 클라이언트 시크릿은 제공되지 않은 경우 자동으로 생성됩니다. | True | 문자열 |
| redirect_uris | 경로 재지정 URI의 목록. | false | 문자열 URI의 목록 |
| grant_types | 애플리케이션이 사용할 수 있는 권한 부여 유형의 배열. | True | 'authorization_code', 'implicit', 'password', 'urn:ietf:params: oauth:grant-type:device_code', 'urn:ietf:params: oauth:grant-type:jwt-bearer' 및 ' refresh_token ' |
| id_token_signed_response_alg | 토큰 서명 알고리즘. | True | 'RS256', 'RS384', 'RS512', 'HS256', 'HS384', 'HS512', 'ES256', 'ES384', 'ES512', 'PS256', 'PS384', 'PS512' |
| all_users_entitled | 모든 사용자가 이 애플리케이션을 사용할 수 있는 권한이 있으면 true로 설정하십시오. | True | true 또는 false |
| jwks_uri | 클라이언트의 JWKS(JSON Web Key Set) 문서의 URL. | True | URL |
| consent_action | 사용자 동의 요청. | True | ‘never_prompt’ 또는 ‘always_prompt’ |
| enforce_pkce | PKCE의 사용을 적용합니다. | True | true 또는 false |
| id_token_claims | id_token 및 사용자 정보에 대한 청구 목록. | True | 문자열 목록 |
| token_claims | 자체 검사 및 JWT 액세스 토큰에 대한 청구 목록. | True | 문자열 목록 |
| initiate_login_uri | 로그인을 시작하는 URL. | True | URL |
| token_endpoint_auth_method | 토큰 엔드포인트에 대한 클라이언트 인증 메소드입니다. | True | 'default', 'client_secret_basic', 'client_secret_post', 'client_secret_jwt', 'private_key_jwt' |
새 애플리케이션을 등록하는 예제
curl -ki -H "Authorization: bearer <access-token>" -H "Content-Type:application/json" -X POST https://{{tenant}}/v1.0/endpoint/default/client_registration --data-binary '{"redirect_uris":["https://www.redirect.com"],"client_name":"MyApplication"}'응답{
"grant_types": [
"authorization_code"
],
"client_secret_expires_at": "0",
"registration_client_uri": "https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>",
"client_secret": "<client_secret>",
"redirect_uris": [
"https://www.redirect.com"
],
"client_id_issued_at": "1586933118",
"client_name": "MyApplication",
"registration_access_token": "<access_token>",
"client_id": "<clientId>",
"id_token_signed_response_alg": "RS256"
}애플리케이션의 추가 구성
애플리케이션이 작성된 후 애플리케이션에 대해 구성할 수 있는 추가 옵션이 있습니다 (예: 속성 맵핑, 액세스 정책, ID 소스, 권한 부여된 사용자 등). 이러한 옵션을 구성하려면 OpenID Connect 제공자에서 싱글 사인온 구성하기의 내용을 참조하십시오.
등록 API를 사용하여 업데이트하는 옵션은 지원되지 않습니다.
등록 API를 사용하여 OIDC 애플리케이션 읽기
curl -ki -H "Authorization: bearer <registration-access-token>" https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>등록 API를 사용하여 OIDC 애플리케이션 삭제
등록 API는 OIDC 애플리케이션을 삭제하는 방법도 제공합니다.
curl -ki -H "Authorization: bearer <registration-access-token>" -X DELETE https://{{tenant}}/v1.0/endpoint/default/client_registration/<clientId>
등록 액세스 토큰이 만기됨
등록 액세스 토큰이 만료되면 새 액세스 토큰을 획득하십시오. 초기 액세스 토큰 획득을 참조하십시오.