동적 클라이언트 등록
동적 클라이언트 등록을 통해 OIDC(OpenID Connect) 신뢰 당사자(RP)는 OpenID Connect 제공자(OP)에 자체적으로 등록할 수 있습니다.
시작하기 전에
동적 클라이언트 등록은 OpenID Connect 동적 클라이언트 등록 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>
등록 액세스 토큰이 만기됨
등록 액세스 토큰이 만료되면 새 액세스 토큰을 획득하십시오. “초기 액세스 토큰 획득”을 참조하십시오.