3.9. Red Hat Single Sign-On 클라이언트
클라이언트는 사용자 인증을 요청하는 Red Hat Single Sign-On 엔티티입니다. 클라이언트는 사용자 인증을 제공하기 위해 Red Hat Single Sign-On을 요청하는 애플리케이션이거나 인증된 사용자를 대신하여 서비스를 시작하도록 액세스 토큰을 요청할 수 있습니다. 자세한 내용은 Red Hat Single Sign-On 설명서의 클라이언트 관리 장 을 참조하십시오.
Red Hat Single Sign-On은 OpenID-Connect 및 SAML 클라이언트 프로토콜을 제공합니다.
OpenID-Connect는 기본 프로토콜이며 세 가지 다른 액세스 유형을 사용합니다.
- 공개: 브라우저에서 직접 실행되고 서버 구성이 필요하지 않은 JavaScript 애플리케이션에 사용합니다.
- 기밀: 브라우저 로그인을 수행해야 하는 EAP 웹 애플리케이션과 같은 서버 측 클라이언트에 유용합니다.
- bearer-only: 전달자 토큰 요청을 허용하는 백엔드 서비스에 유용합니다.
애플리케이션 web.xml 파일의 < auth-method& gt; 키에 클라이언트 유형을 지정해야 합니다. 이 파일은 배포 시 이미지에서 읽습니다. < auth-method& gt; 요소의 값을 다음과 같이 설정합니다.
- OpenID Connect 클라이언트용 KEYCLOAK.
- SAML 클라이언트용 KEYCLOAK-SAML.
다음은 OIDC 클라이언트를 구성하기 위한 애플리케이션 web.xml 의 예제 스니펫입니다.
...
<login-config>
<auth-method>KEYCLOAK</auth-method>
</login-config>
...3.9.1. 자동 및 수동 Red Hat Single Sign-On 클라이언트 등록 방법
클라이언트 애플리케이션은ECDHE 64-sso-s2i ,ECDHE 71 -sso-s2i , datavirt63-secure-s2i 템플릿에 전달된 변수를 사용하여 Red Hat Single Sign-On 영역에 자동으로 등록할 수 있습니다.
또는 Red Hat Single Sign-On 클라이언트 어댑터를 구성 및 내보내 클라이언트 애플리케이션 구성에 포함하여 클라이언트 애플리케이션을 수동으로 등록할 수 있습니다.
3.9.1.1. 자동 Red Hat Single Sign-On 클라이언트 등록
자동 Red Hat Single Sign-On 클라이언트 등록은ECDHE 64sso-s2i ,ECDHE 71-sso-s2i, datavirt63-secure-s2i 템플릿과 관련된 Red Hat Single Sign-On 환경 변수에 의해 결정됩니다. 그런 다음 템플릿에 제공된 Red Hat Single Sign-On 자격 증명은 클라이언트 애플리케이션을 배포하는 동안 클라이언트를 Red Hat Single Sign-On 영역에 등록하는 데 사용됩니다.
CloudEvent 64-sso-s2i ,ECDHE 71-s2i, datavirt63-secure-s2i 템플릿에 포함된 Red Hat Single Sign-On 환경 변수는 다음과 같습니다.
| Variable | 설명 |
|---|---|
| HOSTNAME_HTTP | http 서비스 경로에 대한 사용자 정의 호스트 이름입니다. <application-name>.<project>.<default-domain-suffix>의 기본 호스트 이름의 경우 비워 둡니다. |
| HOSTNAME_HTTPS | https 서비스 경로에 대한 사용자 정의 호스트 이름입니다. <application-name>.<project>.<default-domain-suffix>의 기본 호스트 이름의 경우 비워 둡니다. |
| SSO_URL | Red Hat Single Sign-On 웹 서버 인증 주소: https://secure-sso- <project-name > . <hostname> /auth |
| SSO_REALM | 이 절차를 위해 생성된 Red Hat Single Sign-On 영역입니다. |
| SSO_USERNAME | 영역 관리 사용자의 이름 . |
| SSO_PASSWORD | 사용자의 암호입니다. |
| SSO_PUBLIC_KEY | 영역에 의해 생성된 공개 키입니다. Red Hat Single Sign-On 콘솔에서 settings의 Keys 탭에 있습니다. |
| SSO_BEARER_ONLY | true 로 설정하면 OpenID Connect 클라이언트가 전달자 전용으로 등록됩니다. |
| SSO_ENABLE_CORS | true 로 설정하면 Red Hat Single Sign-On 어댑터에서 CORS(Cross-Origin Resource Sharing)를 활성화합니다. |
Red Hat Single Sign-On 클라이언트가 SAML 프로토콜을 사용하는 경우 다음과 같은 추가 변수를 구성해야 합니다.
| Variable | 설명 |
|---|---|
| SSO_SAML_KEYSTORE_SECRET | SAML 키 저장소에 액세스하는 데 사용할 시크릿입니다. 기본값은 sso-app-secret 입니다. |
| SSO_SAML_KEYSTORE | SAML 키 저장소 시크릿의 키 저장소 파일 이름 기본값은 keystore.jks 입니다. |
| SSO_SAML_KEYSTORE_PASSWORD | SAML의 키 저장소 암호입니다. 기본값은 mykeystorepass 입니다. |
| SSO_SAML_CERTIFICATE_NAME | SAML에 사용할 키/인증서의 별칭입니다. 기본값은 jboss 입니다. |
OpenID-Connect 클라이언트를 사용하여 자동 클라이언트 등록 방법의 종단 간 예는 Red Hat Single Sign-On에서 자동으로 EAP 애플리케이션 등록을 참조하십시오.
3.9.1.2. 수동 Red Hat Single Sign-On 클라이언트 등록
수동 Red Hat Single Sign-On 클라이언트 등록은 클라이언트 애플리케이션의 ../configuration/ 디렉토리에 배포 파일이 있는지에 따라 결정됩니다. 이러한 파일은 Red Hat Single Sign-On 웹 콘솔의 클라이언트 어댑터에서 내보냅니다. 이 파일의 이름은 OpenID-Connect 및 SAML 클라이언트에 따라 다릅니다.
| OpenID-Connect | ../configuration/secure-deployments |
| SAML | ../configuration/secure-saml-deployments |
이러한 파일은 애플리케이션이 배포될 때 standalone-openshift.xml 의 Red Hat Single Sign-On 어댑터 구성 섹션에 복사됩니다.
Red Hat Single Sign-On 어댑터 구성을 클라이언트 애플리케이션에 전달하는 방법은 다음 두 가지가 있습니다.
- 배포 시 standalone-openshift.xml 파일에 포함되도록 Red Hat Single Sign-On 어댑터 구성을 포함하도록 배포 파일을 수정하십시오.
- OpenID-Connect keycloak.json 파일 또는 SAML keycloak-saml.xml 파일을 클라이언트 애플리케이션의 ../cidr-INF 디렉터리에 수동으로 포함합니다.
Example Workflow: SAML 클라이언트를 사용한 Red Hat Single Sign-On 클라이언트 등록 방법의 엔드 투 엔드 예제에 SAML Client를 사용하도록 애플리케이션 수동 구성을 참조하십시오.