12.2. SAML 클라이언트 생성
Red Hat Single Sign-On은 등록된 애플리케이션에 SAML 2.0 을 지원합니다. POST 및 리디렉션 바인딩이 지원됩니다. 클라이언트 서명 유효성 검사가 필요하도록 선택할 수 있습니다. 서버 서명 및/또는 응답을 암호화할 수도 있습니다.
절차
- 메뉴에서 Clients 를 클릭합니다.
생성을 클릭하여 클라이언트 추가 페이지로 이동합니다.
클라이언트 추가
- 클라이언트의 클라이언트 ID 를 입력합니다. 이는 종종 URL이며 애플리케이션에서 보낸 SAML 요청에서 예상되는 발급자 값입니다.
- 클라이언트 프로토콜 드롭다운 상자에서 saml 를 선택합니다.
- Client SAML Endpoint URL을 입력합니다. 이 URL은 Red Hat Single Sign-On 서버에서 SAML 요청 및 응답을 보낼 수 있도록 하려는 URL입니다. 일반적으로 애플리케이션에는 SAML 요청을 처리하는 데 필요한 하나의 URL이 있습니다. 클라이언트의 설정 탭에서 여러 URL을 설정할 수 있습니다.
저장을 클릭합니다. 이 작업은 클라이언트를 생성하고 설정 탭으로 이동합니다.
클라이언트 설정
다음 목록에서는 각 설정에 대해 설명합니다.
- 클라이언트 ID
- OIDC 요청 및 Red Hat Single Sign-On 데이터베이스에서 사용되는 alpha-numeric ID 문자열입니다. 이 값은 AuthNRequests로 전송된 발행자 값과 일치해야 합니다. Red Hat Single Sign-On은 Authn SAML 요청에서 발행자를 가져와서 이 값으로 클라이언트에 연결합니다.
- 이름
- Red Hat Single Sign-On UI 화면에서 클라이언트의 이름입니다. 이름을 지역화하려면 대체 문자열 값을 설정합니다. 예를 들어, ${myapp}와 같은 문자열 값입니다. 자세한 내용은 서버 개발자 가이드를 참조하십시오.
- 설명
- 클라이언트에 대한 설명입니다. 이 설정도 지역화될 수 있습니다.
- enabled
- OFF로 설정하면 클라이언트가 인증을 요청할 수 없습니다.
- 동의 필요
- ON으로 설정하면 사용자는 해당 애플리케이션에 대한 액세스 권한을 부여하는 동의 페이지가 표시됩니다. 페이지에는 클라이언트가 액세스할 수 있는 정보의 메타데이터도 표시됩니다. Facebook에 대한 소셜 로그인을 수행한 적이 있는 경우 종종 유사한 페이지를 볼 수 있습니다. Red Hat Single Sign-On은 동일한 기능을 제공합니다.
- AuthnStatement 포함
- SAML 로그인 응답은 암호 및 로그인의 타임스탬프 및 세션 만료와 같은 인증 방법을 지정할 수 있습니다. AuthnStatement 를 기본적으로 사용하도록 설정하여 AuthnStatement 요소가 로그인 응답에 포함됩니다. 이 값을 OFF로 설정하면 클라이언트가 만료되지 않는 클라이언트 세션을 만들 수 있는 최대 세션 길이를 확인할 수 없습니다.
- 부호 문서
- ON으로 설정하면 Red Hat Single Sign-On은 영역 개인 키를 사용하여 문서에 서명합니다.
- REDIRECT 서명 키 조회 최적화
ON으로 설정하면 SAML 프로토콜 메시지에 Red Hat Single Sign-On 기본 확장 기능이 포함됩니다. 이 확장에는 서명 키 ID가 있는 힌트가 포함되어 있습니다. SP는 키를 사용하여 서명을 검증하는 대신 서명 유효성 검사를 위해 확장 기능을 사용합니다.
이 옵션은 서명이 쿼리 매개변수에서 전송되고 이 정보가 서명 정보에 없는 REDIRECT 바인딩에 적용됩니다. 키 ID가 항상 문서 서명에 포함된 POST 바인딩 메시지와는 충돌합니다.
이 옵션은 Red Hat Single Sign-On 서버 및 어댑터에서 IDP 및 SP를 제공할 때 사용됩니다. 이 옵션은 Sign Documents 가 ON으로 설정된 경우에만 관련이 있습니다.
- 서명 어설션
- 어설션은 SAML XML Auth 응답에 서명하여 포함됩니다.
- 서명 알고리즘
- SAML 문서에 서명하는 데 사용되는 알고리즘입니다.
- SAML 서명 키 이름
POST 바인딩을 사용하여 전송된 서명된 SAML 문서에는 KeyName 요소에서 서명 키 식별이 포함됩니다. 이 작업은 SAML 서명 키 이름 옵션을 통해 제어할 수 있습니다. 이 옵션은 Keyname 의 내용을 제어합니다.
- KEY_ID KeyName 에는 키 ID가 포함됩니다. 이 옵션은 기본 옵션입니다.
- ovirtRT_SUBJECT KeyName 에는 영역 키에 해당하는 인증서의 제목이 포함되어 있습니다. 이 옵션은 Microsoft Active Directory 페더레이션 서비스에서 기대할 수 있습니다.
- NONE KeyName 팁은 SAML 메시지에서 완전히 생략됩니다.
- Canonicalization 방법
- XML 서명에 대한 정식화 방법입니다.
- 암호화 어설션
- 영역 개인 키를 사용하여 SAML 문서의 어설션을 암호화합니다. AES 알고리즘은 128비트의 키 크기를 사용합니다.
- 필요한 클라이언트 서명
-
클라이언트 서명 필수 인 경우 클라이언트에서 들어오는 문서는 서명될 것으로 예상됩니다. Red Hat Single Sign-On은
Keys
탭에 설정된 클라이언트 공개 키 또는 인증서를 사용하여 이 서명을 검증합니다. - force POST Binding
- 기본적으로 Red Hat Single Sign-On은 원래 요청의 초기 SAML 바인딩을 사용하여 응답합니다. Force POST Binding 을 활성화하면 원래 요청이 리디렉션 바인딩을 사용한 경우에도 Red Hat Single Sign-On은 SAML POST 바인딩을 사용하여 응답합니다.
- 프론트 채널 로그아웃
- CloudEvent Channel Logout 이 활성화된 경우 로그아웃을 수행하려면 애플리케이션이 브라우저 리디렉션이 필요합니다. 예를 들어 애플리케이션은 리디렉션을 통해서만 수행할 수 있는 쿠키를 재설정해야 할 수 있습니다. CloudEvent Channel Logout 이 비활성화된 경우 Red Hat Single Sign-On은 백그라운드 SAML 요청을 호출하여 애플리케이션에서 로그아웃합니다.
- force Name ID 형식
- 요청에 이름 ID 정책이 있는 경우 이를 무시하고 Name ID Format 아래의 Admin Console에 구성된 값을 사용합니다.
- ECP 흐름 허용
- true인 경우 이 애플리케이션은 인증에 SAML ECP 프로필을 사용할 수 있습니다.
- 이름 ID 형식
- 주체의 이름 ID 형식입니다. 이 형식은 요청에 이름 ID 정책이 지정되지 않거나 Force Name ID Format 속성이 ON으로 설정된 경우 사용됩니다.
- 루트 URL
- Red Hat Single Sign-On에서 구성된 상대 URL을 사용하는 경우 이 값은 URL 앞에 추가됩니다.
- 유효한 리디렉션 URI
- URL 패턴을 입력하고 추가할 + 기호를 클릭합니다. 제거하려면 - 기호를 클릭합니다. 저장 을 클릭하여 이러한 변경 사항을 저장합니다. 와일드카드 값은 URL 끝에만 허용됩니다. 예: http://host.com/*$$. 이 필드는 정확한 SAML 끝점이 등록되지 않은 경우 사용되며 Red Hat Single Sign-On은 요청에서 Assertion Consumer URL을 가져옵니다.
- 기본 URL
- Red Hat Single Sign-On이 클라이언트에 연결해야 하는 경우 이 URL이 사용됩니다.
로고 URL
클라이언트 애플리케이션의 로고를 참조하는 URL입니다.
정책 URL
Relying Party Client가 프로필 데이터를 사용하는 방법에 대해 읽기 위해 최종 사용자에게 제공하는 URL입니다.
서비스 약관 URL
Relying Party Client가 Relying Party의 서비스 약관을 읽기 위해 최종 사용자에게 제공하는 URL입니다.
- 마스터 SAML 처리 URL
이 URL은 모든 SAML 요청에 사용되며 응답은 SP로 이동합니다. 어설션 소비자 서비스 URL 및 Single Logout 서비스 URL로 사용됩니다.
로그인 요청에 Assertion Consumer Service URL이 포함된 경우 해당 로그인 요청이 우선합니다. 이 URL은 등록된 유효한 리디렉션 URI 패턴에서 검증해야 합니다.
- 어설션 소비자 서비스 POST 바인딩 URL
- Assertion Consumer 서비스에 대한 POST 바인딩 URL입니다.
- 어설션 소비자 서비스 리디렉션 바인딩 URL
- Assertion Consumer 서비스의 바인딩 URL을 리디렉션합니다.
- logout 서비스 POST 바인딩 URL
- Logout 서비스의 POST 바인딩 URL입니다.
- logout 서비스 리디렉션 바인딩 URL
- Logout 서비스의 바인딩 URL을 리디렉션합니다.
- Logout Service Artifact Binding URL
-
Logout 서비스의 아티팩트 바인딩 URL입니다.
Force Artifact Binding
옵션과 함께 설정하면 로그인 및 로그아웃 흐름에 대해 Artifact 바인딩이 강제 적용됩니다. 이 속성을 설정하지 않는 한 logout에 아티팩트 바인딩이 사용되지 않습니다. - 아티팩트 바인딩 URL
- HTTP 아티팩트 메시지를 전송할 URL입니다.
- 아티팩트 확인 서비스
-
ArtifactResolve
메시지를 보낼 클라이언트의 URL입니다.
12.2.1. IDP 시작 로그인
IDP 시작 로그인은 특정 애플리케이션/클라이언트에 로그인할 Red Hat Single Sign-On 서버에서 끝점을 설정할 수 있는 기능입니다. 클라이언트의 Settings 탭에서 IDP Initiated SSO URL 이름을 지정해야 합니다. 이 문자열은 공백이 없는 간단한 문자열입니다. 다음 URL에서 클라이언트를 참조할 수 있습니다. root/auth/realms/{realm}/protocol/saml/clients/{url-name}
IDP가 시작한 로그인 구현에서는 REDIRECT 바인딩을 통한 POST 를 선호합니다(자세한 내용은 saml 바인딩 확인). 따라서 최종 바인딩 및 SP URL은 다음과 같은 방법으로 선택됩니다.
- 특정 Assertion Consumer Service POST Binding URL 이 정의된 경우(클라이언트 설정의 Fine grain SAML Endpoint Configuration 섹션 제외) 해당 URL을 통해 POST 바인딩이 사용됩니다.
- 일반 마스터 SAML 처리 URL 이 지정되면 POST 바인딩이 이 일반 URL을 통해 다시 사용됩니다.
- 마지막 수단으로 Assertion Consumer Service Redirect Binding URL 이 구성된 경우 ( Fine grain SAML Endpoint Configuration) REDIRECT 바인딩이 이 URL과 함께 사용됩니다.
클라이언트에 특수 릴레이 상태가 필요한 경우 IDP 초기화 SSO 릴레이 상태 필드의 Settings 탭에서 이 값을 구성할 수도 있습니다. 또는 브라우저가 RelayState 쿼리 매개변수(예: root/auth/realms/{realm}/protocol/saml/clients/{url-name}?RelayState=thestate
)에서 릴레이 상태를 지정할 수 있습니다.
ID 브로커를 사용하는 경우 외부 IDP에서 클라이언트에 대한 IDP 시작 로그인을 설정할 수 있습니다. 실제 클라이언트는 위에 설명된 대로 브로커 IDP에서 IDP 시작 로그인에 대해 설정됩니다. 외부 IDP는 IDP에서 선택한 클라이언트의 IDP에서 선택한 클라이언트의 IDP를 가리키는 특수 URL을 가리키는 애플리케이션 IDP 초기화 로그인에 대한 클라이언트를 설정해야 합니다. 즉, 외부 IDP의 클라이언트 설정에서 다음을 의미합니다.
- IDP Initiated SSO URL 이름은 IDP 시작 로그인 시점으로 게시될 이름으로 설정됩니다.
Fine grain SAML Endpoint Configuration 섹션의 어설션 Consumer Service POST Binding URL 은 다음 URL로 설정되어야 합니다.
broker-root/auth/realms/{broker-realm}/broker/{idp-name}/endpoint/clients/{client-id}
.- broker-root 는 기본 브로커 URL입니다.
- broker-realm 은 외부 IDP가 선언되는 브로커 영역의 이름입니다.
- IDP-name 은 브로커의 외부 IDP 이름입니다.
- client-id 는 broker에 정의된 SAML 클라이언트의 IDP 시작 SSO URL 이름 속성 값입니다. 이 클라이언트는 외부 IDP에서 IDP 시작 로그인에 사용할 수 있게 됩니다.
브로커 IDP에서 클라이언트 설정을 외부 IDP로 가져올 수 있습니다. - Brokering IDP의 ID 공급자 설정에서 사용 가능한 SP Descriptor 를 사용하고 client/client-id
를 끝점 URL에 추가합니다.
12.2.2. 엔티티 설명자를 사용하여 클라이언트 생성
SAML 2.0 클라이언트를 수동으로 등록하는 대신 표준 SAML Entity Descriptor XML 파일을 사용하여 클라이언트를 가져올 수 있습니다.
클라이언트 추가 페이지에 가져오기 옵션이 포함되어 있습니다.
클라이언트 추가
절차
- 파일 선택을 클릭합니다.
- XML 엔티티 설명자 정보가 포함된 파일을 로드합니다.
- 정보를 검토하여 모든 항목이 올바르게 설정되었는지 확인합니다.
mod-auth-mellon 과 같은 일부 SAML 클라이언트 어댑터에는 IDP의 XML Entity Descriptor가 필요합니다. 이 URL로 이동하여 이 설명자를 찾을 수 있습니다.
root/auth/realms/{realm}/protocol/saml/descriptor
여기서 realm 은 클라이언트의 영역입니다.