12.6. 클라이언트 범위
Red Hat Single Sign-On을 사용하여 클라이언트 범위라는 엔티티에서 공유 클라이언트 구성을 정의합니다. 클라이언트 범위는 여러 클라이언트에 대한 프로토콜 매퍼 및 역할 범위 매핑을 구성합니다.
클라이언트 범위도 OAuth 2 범위 매개 변수를 지원합니다. 클라이언트 애플리케이션에서는 이 매개변수를 사용하여 애플리케이션 요구 사항에 따라 액세스 토큰에서 클레임 또는 역할을 요청합니다.
클라이언트 범위를 생성하려면 다음 단계를 따르십시오.
메뉴에서 클라이언트 범위를 클릭합니다.
클라이언트 범위 목록
- 생성을 클릭합니다.
- 클라이언트 범위의 이름을 지정합니다.
- 저장을 클릭합니다.
클라이언트 범위에 는 일반 클라이언트와 유사한 탭이 있습니다. 프로토콜 매퍼 및 역할 범위 매핑을 정의할 수 있습니다. 이러한 매핑은 다른 클라이언트에서 상속할 수 있으며 이 클라이언트 범위에서 상속되도록 구성됩니다.
12.6.1. 프로토콜
클라이언트 범위를 만들 때 프로토콜을 선택합니다. 동일한 범위에 연결된 클라이언트는 동일한 프로토콜을 보유해야 합니다.
각 영역에는 메뉴에 사전 정의된 기본 제공 클라이언트 범위 세트가 있습니다.
- SAML 프로토콜: role_list. 이 범위에는 SAML 어설션의 역할 목록에 대한 하나의 프로토콜 매퍼가 포함되어 있습니다.
OpenID Connect 프로토콜: 여러 클라이언트 범위를 사용할 수 있습니다.
역할
이 범위는 OpenID Connect 사양에 정의되지 않으며 액세스 토큰의 범위 클레임에 자동으로 추가되지 않습니다. 이 범위에는 사용자의 역할을 액세스 토큰에 추가하고 하나 이상의 클라이언트 역할이 있는 클라이언트의 대상을 추가하는 데 사용되는 매퍼가 있습니다. 이러한 매퍼는ECDHE 섹션에 자세히 설명되어 있습니다.
web-origins
이 범위는 OpenID Connect 사양에도 정의되지 않으며 액세스 토큰을 요청하는 범위에 추가되지 않습니다. 이 범위는 허용된 웹 출처를 액세스 토큰 allowed-origins 클레임에 추가하는 데 사용됩니다.
microprofile-jwt
이 범위는 MicroProfile/JWT Auth Specification 에 정의된 클레임을 처리합니다. 이 범위는 upn 클레임에 대한 사용자 속성 매퍼와 groups 클레임에 대한 영역 역할 매퍼를 정의합니다. 이러한 매퍼는 MicroProfile/JWT별 클레임을 생성하는 데 다른 속성을 사용할 수 있도록 변경할 수 있습니다.
offline_access
이 범위는 클라이언트가 오프라인 토큰을 가져와야 하는 경우에 사용됩니다. 오프라인 토큰에 대한 자세한 내용은 오프라인 액세스 섹션 및 OpenID Connect 사양에서 확인할 수 있습니다.
- profile
- address
- 전화
클라이언트 범위 프로필,이메일,주소 및 전화는 OpenID Connect 사양에 정의됩니다. 이러한 범위에는 역할 범위 매핑이 정의되어 있지 않지만 프로토콜 매퍼가 정의되어 있습니다. 이러한 매퍼는 OpenID Connect 사양에 정의된 클레임에 해당합니다.
예를 들어 전화 클라이언트 범위를 열고 Mappers 탭을 열면 범위 전화에 대한 사양에 정의된 클레임에 해당하는 프로토콜 매퍼가 표시됩니다.
클라이언트 범위 매퍼
전화 클라이언트 범위가 클라이언트에 연결되면 클라이언트는 전화 클라이언트 범위에 정의된 모든 프로토콜 매퍼를 자동으로 상속합니다. 이 클라이언트에 대해 발행된 액세스 토큰에는 사용자가 정의된 전화 번호가 있다고 가정하여 사용자에 대한 전화 번호 정보가 포함됩니다.
내장 클라이언트 범위에는 사양에 정의된 프로토콜 매퍼가 포함되어 있습니다. 클라이언트 범위를 편집하고 프로토콜 매퍼 또는 역할 범위 매핑을 생성, 업데이트 또는 제거할 수 있습니다.
12.6.3. 클라이언트 범위 연결
클라이언트 범위와 클라이언트 간의 연결은 클라이언트의 클라이언트 범위 탭에서 구성됩니다. 클라이언트 범위와 클라이언트 간 연결하는 두 가지 방법을 사용할 수 있습니다.
- 기본 클라이언트 범위
- 이 설정은 OpenID Connect 및 SAML 클라이언트에 적용할 수 있습니다. 클라이언트에 대한 OpenID Connect 토큰 또는 SAML 어설션을 발행할 때 기본 클라이언트 범위가 적용됩니다. 클라이언트는 클라이언트 범위에 정의된 프로토콜 매퍼 및 역할 범위 매핑을 상속합니다. OpenID Connect 프로토콜의 경우 OpenID Connect 권한 부여 요청의 scope 매개변수에 사용된 값과 관계없이 매퍼 및 역할 범위 매핑이 항상 적용됩니다.
- 선택적 클라이언트 범위
- 이 설정은 OpenID Connect 클라이언트에만 적용할 수 있습니다. 선택적 클라이언트 범위는 이 클라이언트의 토큰을 발행할 때 적용되지만 OpenID Connect 권한 부여 요청에서 scope 매개변수에 의해 요청된 경우에만 적용됩니다.
12.6.3.1. 예제
이 예에서는 클라이언트에 기본 클라이언트 범위로 연결된 프로필 및 이메일 과 전화 및 주소가 선택적 클라이언트 범위로 연결되어 있다고 가정합니다. 클라이언트는 OpenID Connect 권한 부여 끝점으로 요청을 보낼 때 scope 매개변수의 값을 사용합니다.
scope=openid phone
scope 매개 변수에는 범위 값이 공백으로 구분된 문자열이 포함되어 있습니다. openid 값은 모든 OpenID Connect 요청에 사용되는 메타 값입니다. 토큰은 기본 클라이언트 범위 프로필 과 이메일 의 매퍼 및 역할 범위 매핑과 범위 매개 변수에서 요청한 선택적 클라이언트 범위를 포함합니다.
12.6.4. 클라이언트 범위 평가
Mappers 탭에는 프로토콜 매퍼가 포함되어 있으며 범위 탭에는 이 클라이언트에 대해 선언된 역할 범위 매핑이 포함되어 있습니다. 클라이언트 범위에서 상속된 매퍼 및 범위 매핑은 포함되어 있지 않습니다. 효과적인 프로토콜 매퍼(즉, 클라이언트 자체에 정의된 프로토콜 매퍼 및 연결된 클라이언트 범위에서 상속됨) 및 클라이언트에 대한 토큰을 생성할 때 사용되는 효과적인 역할 범위 매핑을 확인할 수 있습니다.
절차
- 클라이언트의 클라이언트 범위 탭을 클릭합니다.
- 하위 탭 Evaluate 를 엽니다.
- 적용하려는 선택적 클라이언트 범위를 선택합니다.
또한 scope 매개변수의 값을 표시합니다. 이 매개변수는 애플리케이션에서 Red Hat Single Sign-On OpenID Connect 권한 부여 엔드포인트로 보내야 합니다.
클라이언트 범위 평가
애플리케이션에서 범위 매개변수에 대한 사용자 지정 값을 보내려면 JavaScript 어댑터 또는 javascript 어댑터의 경우 매개 변수 전달 섹션 을 참조하십시오.
모든 예제는 특정 사용자에 대해 생성되고 scope 매개변수의 지정된 값을 사용하여 특정 클라이언트에 대해 발행됩니다. 예제에는 사용된 모든 클레임 및 역할 매핑이 포함됩니다.
12.6.5. 클라이언트 범위 권한
사용자에게 토큰을 발행할 때 클라이언트 범위는 사용자가 사용할 수 있는 경우에만 적용됩니다.
클라이언트 범위에 역할 범위 매핑이 정의되지 않은 경우 각 사용자는 이 클라이언트 범위를 사용할 수 있습니다. 그러나 클라이언트 범위에 역할 범위 매핑이 정의되어 있는 경우 사용자는 역할 중 하나 이상의 멤버여야 합니다. 사용자 역할과 클라이언트 범위의 역할 간에 교집합이 있어야 합니다. 복합 역할은 이러한 교집합을 평가할 때 고려됩니다.
사용자가 클라이언트 범위를 사용할 수 없는 경우 토큰을 생성할 때 프로토콜 매퍼 또는 역할 범위 매핑이 사용되지 않습니다. 클라이언트 범위는 토큰의 범위 값에 표시되지 않습니다.
12.6.6. 영역 기본 클라이언트 범위
CloudEvent 기본 클라이언트 범위를 사용하여 새로 생성된 클라이언트에 자동으로 연결된 클라이언트 범위 집합을 정의합니다.
절차
- 클라이언트의 클라이언트 범위 탭을 클릭합니다.
- Default Client Scopes 를 클릭합니다.
여기에서 새로 생성된 클라이언트 범위 및 선택적 클라이언트 범위에 기본 클라이언트 범위로 추가할 클라이언트 범위를 선택합니다.
기본 클라이언트 범위
클라이언트를 만들 때 필요한 경우 기본 클라이언트 범위의 연결을 해제할 수 있습니다. 이는 기본 역할 제거와 유사합니다.
12.6.7. 설명되는 범위
- 클라이언트 범위
- 클라이언트 범위는 영역 수준에서 구성되며 클라이언트에 연결할 수 있는 Red Hat Single Sign-On의 엔티티입니다. 클라이언트 범위는 요청이 scope 매개변수의 해당 값으로 Red Hat Single Sign-On 권한 부여 끝점으로 전송될 때 이름에서 참조합니다. 자세한 내용은 클라이언트 범위 연결 섹션을 참조하십시오.
- 역할 범위 매핑
- 클라이언트 또는 클라이언트 범위의 범위 탭에서 사용할 수 있습니다. 역할 범위 매핑 을 사용하여 액세스 토큰에 사용할 수 있는 역할을 제한합니다. 자세한 내용은 역할 범위 매핑 섹션을 참조하십시오.