4.6. SAML 클라이언트에 Red Hat Single Sign-On에서 수동으로 EAP 애플리케이션 등록

이 예제에서는 EAP 프로젝트에 대한 Red Hat Single Sign-On 영역, 역할 및 사용자 자격 증명을 준비하고 OpenShift 배포를 위한 EAP를 구성합니다. 배포되면 Red Hat Single Sign-On 사용자를 사용하여 JBoss EAP 인증 및 액세스할 수 있습니다.

참고

이 예에서는 SAML 클라이언트를 사용하지만 OpenID-Connect 클라이언트도 사용할 수 있습니다. SAML 및 OpenID - Connect 클라이언트 간의 차이점에 대한 자세한 내용은 Red Hat Single Sign-On Client 등록 방법 및 자동 및 수동 Red Hat Single Sign -On 클라이언트 등록 방법을 참조하십시오.

사전 요구 사항

4.6.1. Red Hat Single Sign-On 인증 정보 준비

절차

Red Hat Single Sign-On 배포 중에 생성된 관리자 계정을 사용하여 https://secure-sso- <project-name > . <hostname> /auth/admin 에서 암호화된 Red Hat Single Sign-On 웹 서버에 로그인합니다.

사용자 이름

  1. 사이드바 상단에 있는 영역 네임스페이스(기본값은 Master) 위에 커서를 올려 놓고 AddECDHE를 클릭합니다.
  2. 영역 이름을 입력하고(이 예제에서는 saml-demo사용) 만들기 를 클릭합니다.

공개 키 복사

새로 생성된 saml-demo 영역에서 Keys 탭을 클릭하고 생성된 공개 키를 복사합니다. 이 예에서는 brevity에 변수 realm-public-key 를 사용합니다. 이는 나중에 Red Hat Single Sign-On 지원 JBoss EAP 이미지를 배포하려면 필요합니다.

역할 생성

예제 EAP 애플리케이션의 web.xml 에 정의된 JEE 역할에 해당하는 이름으로 Red Hat Single Sign-On에서 역할을 생성합니다. 이 역할은 사용자 애플리케이션에 대한 액세스를 인증하기 위해 Red Hat Single Sign-On 애플리케이션 사용자에게 할당됩니다.

  1. Configure sidebar에서 Roles 를 클릭하여 이 영역에 대한 역할을 나열합니다. 이는 새 영역이므로 기본 offline_access 역할만 있어야 합니다.
  2. 역할 추가를 클릭합니다.
  3. 역할 이름을 입력하고 (이 예제에서는 역할 saml-user-role사용) 저장 을 클릭합니다.

사용자 및 역할 할당

두 사용자 생성: - 영역 관리 사용자에게 Red Hat Single Sign -On 서버에서 자동 Red Hat Single Sign-On 클라이언트 등록을 처리할 수 있는 영역 관리 역할을 할당합니다. - 이전 단계에서 생성한 애플리케이션 사용자에게 JEE 역할을 할당하여 사용자 애플리케이션에 대한 액세스를 인증합니다.

realm 관리 사용자를 생성합니다.

  1. Manage sidebar에서 Users 를 클릭하여 영역의 사용자 정보를 확인합니다.
  2. 사용자 추가를 클릭합니다.
  3. 유효한 Username 을 입력하고 (이 예제에서는 app-mgmt-user사용자 사용) 저장 을 클릭합니다.
  4. 사용자 구성을 편집합니다. 사용자 공간에서 Credentials 탭을 클릭하고 사용자 암호를 입력합니다. 암호가 확인되면 암호 재설정을 클릭하여 사용자 암호 를 설정할 수 있습니다. 팝업 창에서 추가 확인 메시지를 표시합니다.

애플리케이션 사용자를 생성합니다.

  1. Manage sidebar에서 Users 를 클릭하여 영역의 사용자 정보를 확인합니다.
  2. 사용자 추가를 클릭합니다.
  3. 유효한 사용자 이름애플리케이션 사용자에 대한 추가 선택적 정보를 입력하고 저장 을 클릭합니다.
  4. 사용자 구성을 편집합니다. 사용자 공간에서 Credentials 탭을 클릭하고 사용자 암호를 입력합니다. 암호가 확인되면 암호 재설정을 클릭하여 사용자 암호 를 설정할 수 있습니다. 팝업 창에서 추가 확인 메시지를 표시합니다.
  5. Role Mappings 를 클릭하여 영역 및 클라이언트 역할 구성을 나열합니다. 사용 가능한 역할에서 이전에 만든 역할을 추가합니다.

SAML 클라이언트 생성 및 구성:

클라이언트는 사용자 인증을 요청하는 Red Hat Single Sign-On 엔티티입니다. 이 예제에서는 EAP 애플리케이션에 대한 인증을 처리하도록 SAML 클라이언트를 구성합니다. 이 섹션에서는 절차 후반에 필요한 두 개의 파일 keystore.jkskeycloak-saml-subsystem.xml 을 저장합니다.

SAML 클라이언트를 생성합니다.

  1. Configure 사이드바에서 Clients 를 클릭하여 영역에 클라이언트를 나열합니다. 생성을 클릭합니다.
  2. 유효한 클라이언트 ID 를 입력합니다. 이 예에서는 sso-saml-demo 를 사용합니다.
  3. 클라이언트 프로토콜 드롭다운 메뉴에서 saml 를 선택합니다.
  4. 애플리케이션의 루트 URL 을 입력합니다. 이 예에서는 https://demoapp-eap-app-demo.openshift32.example.com 을 사용합니다.
  5. 저장을 클릭합니다.

SAML 클라이언트를 구성합니다.

Settings 탭에서 새 sso-saml-demo 클라이언트에 대한 루트 URL 및 유효 리디렉션 URL 을 설정합니다.

  1. 루트 URL 에 클라이언트를 만들 때 사용한 주소와 동일한 주소를 입력합니다. 이 예에서는 https://demoapp-eap-app-demo.openshift32.example.com 을 사용합니다.
  2. 유효한 리디렉션 URL 의 경우 로그인 또는 아웃 시 사용자가 로 리디렉션될 주소를 입력합니다. 이 예에서는 루트 https://demoapp-eap-app-demo.openshift32.example.com/* 에 상대적인 리디렉션 주소를 사용합니다.

SAML 키를 내보냅니다.

  1. sso-saml-demo 클라이언트 공간에서 SAML 키 탭을 클릭하고 내보내기 를 클릭합니다.
  2. 이 예제에서는 Archive FormatJKS 로 남겨 둡니다. 이 예에서는 saml -demo 의 기본 Key Alias 및 saml-demo 기본 인증서 별칭 을 사용합니다.
  3. 키 암호 및 저장 비밀번호 를 입력합니다. 이 예에서는 둘 다에 암호를 사용합니다.
  4. 나중에 사용할 수 있도록 다운로드를 클릭하고 keystore-saml.jks 파일을 저장합니다.
  5. sso-saml-demo 클라이언트를 클릭하여 다음 단계를 수행할 준비가 된 클라이언트 공간으로 돌아갑니다.

클라이언트 어댑터를 다운로드하십시오.

  1. 설치를 클릭합니다.
  2. 포맷 옵션 드롭다운 메뉴를 사용하여 형식을 선택합니다. 이 예에서는 Keycloak SAML Wildfly/JBossovn을 사용합니다.
  3. 다운로드를 클릭하고 keycloak-saml-subsystem.xml 파일을 저장합니다.

keystore-saml.jks 는 다음 섹션의 다른 EAP 키 저장소와 함께 사용하여 EAP 애플리케이션 프로젝트에 대한 OpenShift 시크릿을 생성합니다. keystore-saml.jks 파일을 OpenShift 노드에 복사합니다.
keycloak-saml-subsystem.xml 은 애플리케이션 배포에서 수정 및 사용됩니다. secure-saml-deployments 로 애플리케이션의 /configuration 폴더에 복사합니다.

4.6.2. OpenShift 배포를 위한 Red Hat Single Sign-On 인증 준비

cluster:admin 역할을 보유한 사용자로 OpenShift CLI에 로그인합니다.

절차

  1. 새 프로젝트를 생성합니다.

    $ oc new-project eap-app-demo
  2. default 서비스 계정에 view 역할을 추가합니다. 이를 통해 서비스 계정에서 클러스터를 관리하는 데 필요한 CloudEvent -app-demo 네임스페이스의 모든 리소스를 볼 수 있습니다.

    $ oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default
  3. EAP 템플릿에는 SSL 키 저장소 및 CloudEvent 키 저장소가 필요합니다.
    이 예제에서는 Java 개발 키트에 포함된 패키지인 keytool 을 사용하여 이러한 키 저장소에 대한 자체 서명된 인증서를 생성합니다. 다음 명령은 암호를 입력하라는 메시지를 표시합니다.

    1. SSL 키 저장소에 대한 보안 키를 생성합니다.

      $ keytool -genkeypair -alias https -storetype JKS -keystore eapkeystore.jks
    2. CloudEvent 키 저장소에 대한 보안 키를 생성합니다.

      $ keytool -genseckey -alias jgroups -storetype JCEKS -keystore eapjgroups.jceks
  4. SSL 및 JGroup 키 저장소 파일을 사용하여 OpenShift 시크릿에 대한 EAP를 생성합니다.

    $ oc create secret generic eap-ssl-secret --from-file=eapkeystore.jks
    $ oc create secret generic eap-jgroup-secret --from-file=eapjgroups.jceks
  5. 이전에 생성한 EAP 서비스 계정에 EAP 애플리케이션 시크릿을 추가합니다.

    $ oc secrets link default eap-ssl-secret eap-jgroup-secret

4.6.3. secure-saml-deployments 파일 수정

사전 요구 사항

  • 이전 섹션의 Red Hat Single Sign-On 클라이언트에서 내보낸 keycloak-saml-subsystem.xml 은 애플리케이션의 /configuration 폴더에 복사되고 secure-saml-deployments 이름이 변경되어야 합니다. EAP는 시작될 때 이 파일을 검색하고 Red Hat Single Sign-On SAML 어댑터 구성 내의 standalone-openshift.xml 파일에 복사합니다.

절차

  1. 텍스트 편집기에서 /configuration/secure-saml-deployments 파일을 엽니다.
  2. secure -deployment name 태그의 doing-WAR.war 값을 application .war 파일로 바꿉니다. 이 예에서는 sso-saml-demo.war 를 사용합니다.
  3. 로그아웃 페이지 태그의 SPECIFY LOGOUT PAGE! 값을 애플리케이션에서 로그아웃 할 때 사용자를 리디렉션하는 URL로 바꿉니다. 이 예에서는 /index.jsp 를 사용합니다.
  4. < PrivateKeyPem > 및 < CertificatePem > 태그와 키를 삭제하고 키 저장소 정보로 교체합니다.

    ...
    <Keys>
      <Key signing="true">
        <KeyStore file= "/etc/eap-secret-volume/keystore-saml.jks" password="password">
          <PrivateKey alias="sso-saml-demo" password="password"/>
          <Certificate alias="sso-saml-demo"/>
        </KeyStore>
      </Key>
    </Keys>

    keystore-saml.jks 의 마운트 경로(이 예에서 /etc/eap-secret-volume/keystore-saml.jks)는 EAP_HTTPS_KEYSTORE_DIR 매개변수를 사용하여 애플리케이션 템플릿에 지정할 수 있습니다.
    PrivateKey인증서 의 별칭과 암호는 SAML 키를 Red Hat Single Sign-On 클라이언트에서 내보낼 때 구성되었습니다.

  5. 두 번째 & lt;CertificatePem > 태그와 키를 삭제하고 영역 인증서 정보로 바꿉니다.

    ...
    <Keys>
      <Key signing="true">
        <KeyStore file="/etc/eap-secret-volume/keystore-saml.jks" password="password">
          <Certificate alias="saml-demo"/>
        </KeyStore>
      </Key>
    </Keys>
    ...

    인증서 별칭 및 암호는 SAML 키를 Red Hat Single Sign-On 클라이언트에서 내보낼 때 구성되었습니다.

  6. /configuration/secure-saml-deployments 파일을 저장하고 종료합니다.

4.6.4. 애플리케이션 web.xml에서 SAML 클라이언트 등록 구성

클라이언트 유형도 애플리케이션 web.xml 의 < auth-method > 키로 지정해야 합니다. 이 파일은 배포 시 이미지에서 읽습니다.

애플리케이션 web.xml 파일을 열고 다음이 포함되어 있는지 확인합니다.

...
<login-config>
  <auth-method>KEYCLOAK-SAML</auth-method>
</login-config>
...

4.6.5. 애플리케이션 배포

애플리케이션 자체에서 구성되었기 때문에 이미지에 대한 Red Hat Single Sign-On 구성을 포함할 필요가 없습니다. 애플리케이션 로그인 페이지로 이동하면 Red Hat Single Sign-On 로그인으로 리디렉션됩니다. 이전에 만든 애플리케이션 사용자를 사용하여 Red Hat Single Sign-On을 통해 애플리케이션에 로그인합니다.