8장. 권한 부여 서비스
Red Hat Single Sign-On 인증 서비스는 OAuth2 및 사용자 관리 액세스 사양과 같은 잘 알려진 표준을 기반으로 합니다.
OAuth2 클라이언트(예: 프런트 엔드 애플리케이션)는 토큰 끝점을 사용하여 서버에서 액세스 토큰을 가져오고 동일한 토큰을 사용하여 리소스 서버(예: 백엔드 서비스)로 보호된 리소스에 액세스할 수 있습니다. 마찬가지로 Red Hat Single Sign-On Authorization Services는 OAuth2의 확장을 제공하여 요청되는 리소스 또는 범위와 관련된 모든 정책의 처리에 따라 액세스 토큰을 발행할 수 있도록 합니다. 즉, 리소스 서버는 서버에서 부여하고 액세스 토큰에 의해 보유되는 권한에 따라 보호되는 리소스에 대한 액세스를 적용할 수 있습니다. Red Hat Single Sign-On Authorization Services에서 권한이 있는 액세스 토큰은 요청 당사자 토큰 또는 RPT라고 합니다.
Red Hat Single Sign-On Authorization Services는 RPT를 발행하는 것 외에도 리소스 서버가 보호되는 리소스, 범위, 권한 및 정책을 관리할 수 있는 RESTful 엔드포인트 세트를 제공하므로 개발자가 세분화된 권한 부여를 지원하기 위해 이러한 기능을 애플리케이션에 확장하거나 통합할 수 있습니다.
8.1. 권한 부여 서비스 엔드 포인트 및 메타데이터 검색
Red Hat Single Sign-On은 클라이언트가 엔드포인트 위치 및 기능을 포함하여 Red Hat Single Sign-On 인증 서비스와 상호 작용하는 데 필요한 모든 정보를 얻을 수 있는 검색 문서를 제공합니다.
검색 문서는 다음에서 얻을 수 있습니다.
curl -X GET \ http://${host}:${port}/auth/realms/${realm}/.well-known/uma2-configuration
여기서 ${host}:${port}
는 호스트 이름(또는 IP 주소)과 Red Hat Single Sign-On이 실행 중인 포트이며 ${realm}
은 Red Hat Single Sign-On의 영역 이름입니다.
결과적으로 다음과 같이 응답을 받아야 합니다.
{ // some claims are expected here // these are the main claims in the discovery document about Authorization Services endpoints location "token_endpoint": "http://${host}:${port}/auth/realms/${realm}/protocol/openid-connect/token", "token_introspection_endpoint": "http://${host}:${port}/auth/realms/${realm}/protocol/openid-connect/token/introspect", "resource_registration_endpoint": "http://${host}:${port}/auth/realms/${realm}/authz/protection/resource_set", "permission_endpoint": "http://${host}:${port}/auth/realms/${realm}/authz/protection/permission", "policy_endpoint": "http://${host}:${port}/auth/realms/${realm}/authz/protection/uma-policy" }
이러한 각 끝점에서는 특정 기능 세트를 노출합니다.
token_endpoint
urn:ietf:params:oauth:grant-type:uma-ticket
부여 유형을 지원하는 OAuth2 호환 토큰 엔드 포인트입니다. 이 끝점 클라이언트를 통해 권한 부여 요청을 보내고 Red Hat Single Sign-On에서 부여한 모든 권한이 있는 RPT를 받을 수 있습니다.token_introspection_endpoint
클라이언트가 RPT의 활성 상태를 확인하고 Red Hat Single Sign-On에서 부여한 권한과 같은 기타 모든 정보를 결정하는 데 사용할 수 있는 OAuth2 호환 토큰 인트로스펙션 엔드 포인트입니다.
resource_registration_endpoint
리소스 서버가 보호되는 리소스 및 범위를 관리하는 데 사용할 수 있는 UMA 호환 리소스 등록 엔드 포인트입니다. 이 엔드포인트에서는 Red Hat Single Sign-On의 작업 생성, 읽기, 업데이트, 삭제 및 범위를 제공합니다.
permission_endpoint
권한 서버에서 권한 티켓을 관리하는 데 사용할 수 있는 권한 끝점입니다. 이 엔드포인트에서는 Red Hat Single Sign-On의 작업 생성, 읽기, 업데이트 및 삭제 권한 티켓을 제공합니다.