3장. 고급 절차 수행


이 장에서는 Red Hat Single Sign-On 서버의 키 저장소 설정 및 신뢰 저장소 설정, 관리자 계정 생성, 사용 가능한 Red Hat Single Sign-On 클라이언트 등록 방법 개요 및 클러스터링 구성에 대한 지침을 설명합니다.

3.1. 패스스루 TLS 종료 템플릿 배포

이러한 템플릿을 사용하여 배포할 수 있습니다. 이미 존재하는 데는 HTTPS, iPXE 키 저장소 및 Red Hat Single Sign-On 서버 신뢰 저장소가 필요하므로 사용자 정의 HTTPS, iPXE 키 저장소 및 Red Hat Single Sign-On 서버 신뢰 저장소를 사용하여 Red Hat Single Sign-On 서버 Pod를 인스턴스화하는 데 사용할 수 있습니다.

3.1.1. 배포 준비

절차

  1. cluster:admin 역할을 보유한 사용자로 OpenShift CLI에 로그인합니다.
  2. 새 프로젝트를 생성합니다.

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

    $ oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default
    Copy to Clipboard

3.1.2. Red Hat Single Sign-On Server용 HTTPS 및 iPXE 키 저장소 생성

이 절차에서는 openssl 툴킷을 사용하여 HTTPS 키 저장소에 서명하는 CA 인증서를 생성하고 Red Hat Single Sign-On 서버에 대한 신뢰 저장소를 생성합니다. Java 개발 키트에 포함된 패키지인 keytool 은 이러한 키 저장소에 대한 자체 서명된 인증서를 생성하는 데 사용됩니다.

재암호화 TLS 종료를 사용하는 Red Hat Single Sign- On 애플리케이션 템플릿은 HTTPS 및 iPXE 키 저장소와 Red Hat Single Sign-On 서버 신뢰 저장소를 미리 준비할 필요가 없거나 예상하지 않습니다.

재암호화 템플릿은 OpenShift의 내부 서비스 제공 인증서 시크릿을 사용하여 HTTPS 및 iPXE 키 저장소를 자동으로 생성합니다. Red Hat Single Sign-On 서버 신뢰 저장소도 자동으로 생성됩니다. Java 시스템 경로에 있는 모든 알려진 신뢰할 수 있는 CA 인증서 파일로 미리 채워집니다.

참고

기존 HTTPS / CloudEvent 키 저장소를 사용하여 Red Hat Single Sign-On 서버를 프로비저닝하려면 대신 일부 패스스루 템플릿을 사용합니다.

사전 요구 사항

패스스루 TLS 종료를 사용하는 Red Hat Single Sign-On 애플리케이션 템플릿은 다음을 배포해야 합니다.

참고

프로덕션 환경의 경우 Red Hat은 SSL 암호화 연결(HTTPS)에 대해 검증된 CA(인증 기관)에서 구입한 자체 SSL 인증서를 사용하는 것이 좋습니다.

자체 서명 또는 구매한 SSL 인증서가 있는 키 저장소를 생성하는 방법에 대한 자세한 내용은 JBoss Enterprise Application Platform 보안 가이드를 참조하십시오.

HTTPS 키 저장소를 생성합니다.

절차

  1. CA 인증서를 생성합니다. 암호를 선택하고 기억합니다. 아래 CA 인증서를 사용하여 인증서 서명 요청에 서명할 때 동일한 암호를 제공합니다.

    $ openssl req -new -newkey rsa:4096 -x509 -keyout xpaas.key -out xpaas.crt -days 365 -subj "/CN=xpaas-sso-demo.ca"
    Copy to Clipboard
  2. HTTPS 키 저장소에 대한 개인 키를 생성합니다. mykeystorepass 를 키 저장소 암호로 입력합니다.

    $ keytool -genkeypair -keyalg RSA -keysize 2048 -dname "CN=secure-sso-sso-app-demo.openshift.example.com" -alias jboss -keystore keystore.jks
    Copy to Clipboard
  3. HTTPS 키 저장소에 대한 인증서 서명 요청을 생성합니다. mykeystorepass 를 키 저장소 암호로 입력합니다.

    $ keytool -certreq -keyalg rsa -alias jboss -keystore keystore.jks -file sso.csr
    Copy to Clipboard
  1. CA 인증서를 사용하여 인증서 서명 요청에 서명합니다. CA 인증서를 생성하는 데 사용된 것과 동일한 암호를 입력합니다.

    $ openssl x509 -req -extfile  <(printf "subjectAltName=DNS:secure-sso-sso-app-demo.openshift.example.com") -CA xpaas.crt -CAkey xpaas.key -in sso.csr -out sso.crt -days 365 -CAcreateserial
    Copy to Clipboard
    참고

    위의 명령을 한 줄로 작동하도록 명령에 프로세스 대체( <() 구문)가포함됩니다. 현재 쉘 환경에서 이러한 구문을 지원하는지 확인합니다. 그렇지 않으면 예기치 않은 토큰 '(') 메시지 근처에 구문 오류가 발생할 수 있습니다.

  2. CA 인증서를 HTTPS 키 저장소로 가져옵니다. mykeystorepass 를 키 저장소 암호로 입력합니다. 이 인증서를 신뢰하려면 yes 로 응답합니다. [no]::

    $ keytool -import -file xpaas.crt -alias xpaas.ca -keystore keystore.jks
    Copy to Clipboard
  3. 서명된 인증서 서명 요청을 HTTPS 키 저장소로 가져옵니다. mykeystorepass 를 키 저장소 암호로 입력합니다.

    $ keytool -import -file sso.crt -alias jboss -keystore keystore.jks
    Copy to Clipboard

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

키 저장소 암호로 암호 를 입력합니다.

$ keytool -genseckey -alias secret-key -storetype JCEKS -keystore jgroups.jceks
Copy to Clipboard

CA 인증서를 새로운 Red Hat Single Sign-On 서버 신뢰 저장소로 가져옵니다.

mykeystorepass 를 truststore 암호로 입력합니다. 이 인증서를 신뢰하려면 yes 로 응답합니다. [no]::

$ keytool -import -file xpaas.crt -alias xpaas.ca -keystore truststore.jks
Copy to Clipboard

3.1.3. 보안 생성

절차

OpenShift에서 암호 또는 키 저장소와 같은 중요한 정보를 보유하는 데 사용하는 시크릿이라는 오브젝트를 생성합니다.

  1. 이전 섹션에서 생성된 HTTPS 및 iPXE 키 저장소 및 Red Hat Single Sign-On 서버 신뢰 저장소에 대한 시크릿을 만듭니다.

    $ oc create secret generic sso-app-secret --from-file=keystore.jks --from-file=jgroups.jceks --from-file=truststore.jks
    Copy to Clipboard
  2. 이러한 시크릿을 Red Hat Single Sign-On 포드를 실행하는 데 사용되는 기본 서비스 계정에 연결합니다.

    $ oc secrets link default sso-app-secret
    Copy to Clipboard

3.1.4. OpenShift CLI를 사용하여 TLS 템플릿 배포

키 저장소시크릿 을 생성한 후 oc 명령을 사용하여 패스스루 TLS 종료 템플릿을 배포합니다.

3.1.4.1. oc 명령 지침

다음 oc 명령에서 SSO_ADMIN_USERNAME, SSO_ADMIN_PASSWORD, HTTPS_PASSWORD, JGROUPS_ENCRYPT_PASSWORD, SSO_TRUSTSTORE_PASSWORD 변수 값이 sso76-ocp4-https Red Hat Single Sign-On 애플리케이션 템플릿의 기본값과 일치합니다.

프로덕션 환경의 경우 Red Hat Single Sign-On 서버의 관리자 사용자 계정의 강력한 사용자 이름과 암호를 생성하는 방법에 대한 지침은 온-사이트 정책을 참조하는 것이 권장되며, HTTPS 및 CloudEvent 키 저장소의 암호와 Red Hat Single Sign-On 서버의 신뢰 저장소를 생성하는 것이 좋습니다.

또한 템플릿을 생성할 때 키 저장소를 생성할 때 암호가 제공된 암호와 일치하도록 합니다. 다른 사용자 이름 또는 암호를 사용한 경우 사용자 환경과 일치하도록 템플릿의 매개변수 값을 수정합니다.

참고

다음 keytool 명령을 사용하여 인증서와 연결된 별칭 이름을 확인할 수 있습니다. keytool 은 Java 개발 키트에 포함된 패키지입니다.

$ keytool -v -list -keystore keystore.jks | grep Alias
Enter keystore password:  mykeystorepass
Alias name: xpaas.ca
Alias name: jboss
Copy to Clipboard
$ keytool -v -list -keystore jgroups.jceks -storetype jceks | grep Alias
Enter keystore password:  password
Alias name: secret-key
Copy to Clipboard

다음 명령의 SSO_ADMIN_USERNAME, SSO_ADMIN_PASSWORDSSO_REALM 템플릿 매개변수는 선택 사항입니다.

3.1.4.2. oc 명령 샘플

$ oc new-app --template=sso76-ocp4-https \
 -p HTTPS_SECRET="sso-app-secret" \
 -p HTTPS_KEYSTORE="keystore.jks" \
 -p HTTPS_NAME="jboss" \
 -p HTTPS_PASSWORD="mykeystorepass" \
 -p JGROUPS_ENCRYPT_SECRET="sso-app-secret" \
 -p JGROUPS_ENCRYPT_KEYSTORE="jgroups.jceks" \
 -p JGROUPS_ENCRYPT_NAME="secret-key" \
 -p JGROUPS_ENCRYPT_PASSWORD="password" \
 -p SSO_ADMIN_USERNAME="admin" \
 -p SSO_ADMIN_PASSWORD="redhat" \
 -p SSO_REALM="demorealm" \
 -p SSO_TRUSTSTORE="truststore.jks" \
 -p SSO_TRUSTSTORE_PASSWORD="mykeystorepass" \
 -p SSO_TRUSTSTORE_SECRET="sso-app-secret"
--> Deploying template "openshift/sso76-ocp4-https" to project sso-app-demo

     Red Hat Single Sign-On 7.6.11 (Ephemeral with passthrough TLS)
     ---------
     An example Red Hat Single Sign-On 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.

     A new Red Hat Single Sign-On service has been created in your project. The admin username/password for accessing the master realm via the Red Hat Single Sign-On console is admin/redhat. Please be sure to create the following secrets: "sso-app-secret" containing the keystore.jks file used for serving secure content; "sso-app-secret" containing the jgroups.jceks file used for securing JGroups communications; "sso-app-secret" containing the truststore.jks file used for securing Red Hat Single Sign-On requests.

     * With parameters:
        * Application Name=sso
        * Custom http Route Hostname=
        * Custom https Route Hostname=
        * Server Keystore Secret Name=sso-app-secret
        * Server Keystore Filename=keystore.jks
        * Server Keystore Type=
        * Server Certificate Name=jboss
        * Server Keystore Password=mykeystorepass
        * Datasource Minimum Pool Size=
        * Datasource Maximum Pool Size=
        * Datasource Transaction Isolation=
        * JGroups Secret Name=sso-app-secret
        * JGroups Keystore Filename=jgroups.jceks
        * JGroups Certificate Name=secret-key
        * JGroups Keystore Password=password
        * JGroups Cluster Password=yeSppLfp # generated
        * ImageStream Namespace=openshift
        * Red Hat Single Sign-On Administrator Username=admin
        * Red Hat Single Sign-On Administrator Password=redhat
        * Red Hat Single Sign-On Realm=demorealm
        * Red Hat Single Sign-On Service Username=
        * Red Hat Single Sign-On Service Password=
        * Red Hat Single Sign-On Trust Store=truststore.jks
        * Red Hat Single Sign-On Trust Store Password=mykeystorepass
        * Red Hat Single Sign-On Trust Store Secret=sso-app-secret
        * Container Memory Limit=1Gi

--> Creating resources ...
    service "sso" created
    service "secure-sso" created
    service "sso-ping" created
    route "sso" created
    route "secure-sso" created
    deploymentconfig "sso" created
--> Success
    Run 'oc status' to view your app.
Copy to Clipboard
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat