11.3. 사용자 정의 리소스를 사용하여 Red Hat Single Sign-On 설치
Operator를 사용하여 Keycloak 사용자 정의 리소스를 생성하여 Red Hat Single Sign-On의 설치를 자동화할 수 있습니다. 사용자 지정 리소스를 사용하여 Red Hat Single Sign-On을 설치할 때 여기에 설명된 구성 요소와 서비스를 다음과 같이 설명합니다.
-
Keycloak-db-secret
- 데이터베이스 사용자 이름, 암호 및 외부 주소와 같은 속성을 저장합니다(외부 데이터베이스에 연결하는 경우) -
credentials-<CR-Name
> - Red Hat Single Sign-On 관리 콘솔에 로그인할 수 있는 관리자 사용자 이름 및 암호(<CR-Name
>는Keycloak
사용자 정의 리소스 이름을 기반으로 함) -
Keycloak -
고가용성을 지원하는 StatefulSet으로 구현되는 Keycloak 배포 사양 -
Keycloak-postgresql
- PostgreSQL 데이터베이스 설치를 시작합니다 -
Keycloak-discovery
서비스 -JDBC_PING
검색 수행 -
Keycloak 서비스 -
HTTPS를 통해 Red Hat Single Sign-On에 연결(HTTP는 지원되지 않음) -
Keycloak-postgresql
Service - 사용하는 경우 데이터베이스 인스턴스를 내부 및 외부 연결 -
Keycloak 경로
- OpenShift에서 Red Hat Single Sign-On 관리 콘솔에 액세스하기 위한 URL
Operator 구성 요소 및 서비스가 상호 작용하는 방법
11.3.1. Keycloak 사용자 정의 리소스
Keycloak 사용자 정의 리소스는 설치에 대한 매개변수를 정의하는 YAML 파일입니다. 이 파일에는 세 가지 속성이 포함되어 있습니다.
-
instances
- 고가용성 모드에서 실행 중인 인스턴스 수를 제어합니다. -
externalAccess
-활성화된
경우Operator
는 Red Hat Single Sign-On 클러스터에 대한 OpenShift 경로를 생성합니다. 경로에 대해 자동으로 선택된호스트
이름을 덮어쓰도록 host를 설정할 수 있습니다. -
externalDatabase
- 외부 호스트 데이터베이스에 연결하려면To connect to an external hosted database 이 주제는 이 가이드의 외부 데이터베이스 섹션에서 다룹니다. false로 설정하는 것은 테스트 목적으로만 사용해야 하며 포함된 PostgreSQL 데이터베이스를 설치합니다. 프로덕션 환경에서는 externalDatabase: false 가 지원되지 않습니다.
Keycloak 사용자 정의 리소스의 YAML 파일의 예
apiVersion: keycloak.org/v1alpha1 kind: Keycloak metadata: name: example-sso labels: app: sso spec: instances: 1 externalAccess: enabled: True
apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
name: example-sso
labels:
app: sso
spec:
instances: 1
externalAccess:
enabled: True
YAML 파일과 Red Hat Single Sign-On 관리 콘솔에 변경 사항이 표시될 수 있지만 관리 콘솔에 대한 변경 사항은 사용자 정의 리소스를 업데이트하지 않습니다.
11.3.2. OpenShift에서 Keycloak 사용자 정의 리소스 생성
OpenShift에서 사용자 지정 리소스를 사용하여 관리 콘솔의 URL인 경로를 생성하고 관리 콘솔의 사용자 이름 및 암호가 포함된 시크릿을 찾습니다.
사전 요구 사항
- 이 사용자 정의 리소스에 대한 YAML 파일이 있습니다.
- cluster-admin 권한 또는 관리자가 부여한 동등한 수준의 권한이 있어야 합니다.
절차
YAML 파일을 사용하여 경로를 생성합니다.
oc create -f <filename>.yaml -n <namespace>
. 예를 들면 다음과 같습니다.oc create -f sso.yaml -n sso
$ oc create -f sso.yaml -n sso keycloak.keycloak.org/example-sso created
Copy to Clipboard Copied! 경로는 OpenShift에서 생성됩니다.
- OpenShift 웹 콘솔에 로그인합니다.
네트워킹
,경로
를 선택하고 Keycloak을 검색합니다.OpenShift 웹 콘솔의 경로 화면
Keycloak 경로가 있는 화면에서
위치
아래에서 URL을 클릭합니다.Red Hat Single Sign-On 관리자 콘솔 로그인 화면이 표시됩니다.
관리자 콘솔 로그인 화면
OpenShift 웹 콘솔에서 admin 콘솔의 사용자 이름과 암호를 찾습니다.
Workloads
에서Secrets
를 클릭하고 Keycloak을 검색합니다.OpenShift 웹 콘솔의 시크릿 화면
admin 콘솔 로그인 화면에 사용자 이름과 암호를 입력합니다.
관리자 콘솔 로그인 화면
이제 Keycloak 사용자 정의 리소스에서 설치한 Red Hat Single Sign-On 인스턴스에 로그인되어 있습니다. 영역, 클라이언트 및 사용자에 대한 사용자 정의 리소스를 생성할 준비가 되어 있습니다.
Red Hat Single Sign-On 마스터 영역
사용자 정의 리소스의 상태를 확인합니다.
oc describe keycloak <CR-name>
$ oc describe keycloak <CR-name>
Copy to Clipboard Copied!
결과
Operator에서 사용자 정의 리소스를 처리한 후 다음 명령으로 상태를 확인합니다.
oc describe keycloak <CR-name>
$ oc describe keycloak <CR-name>
Keycloak 사용자 정의 리소스 상태
Name: example-keycloak Namespace: keycloak Labels: app=sso Annotations: <none> API Version: keycloak.org/v1alpha1 Kind: Keycloak Spec: External Access: Enabled: true Instances: 1 Status: Credential Secret: credential-example-keycloak Internal URL: https://<External URL to the deployed instance> Message: Phase: reconciling Ready: true Secondary Resources: Deployment: keycloak-postgresql Persistent Volume Claim: keycloak-postgresql-claim Prometheus Rule: keycloak Route: keycloak Secret: credential-example-keycloak keycloak-db-secret Service: keycloak-postgresql keycloak keycloak-discovery Service Monitor: keycloak Stateful Set: keycloak Version: Events:
Name: example-keycloak
Namespace: keycloak
Labels: app=sso
Annotations: <none>
API Version: keycloak.org/v1alpha1
Kind: Keycloak
Spec:
External Access:
Enabled: true
Instances: 1
Status:
Credential Secret: credential-example-keycloak
Internal URL: https://<External URL to the deployed instance>
Message:
Phase: reconciling
Ready: true
Secondary Resources:
Deployment:
keycloak-postgresql
Persistent Volume Claim:
keycloak-postgresql-claim
Prometheus Rule:
keycloak
Route:
keycloak
Secret:
credential-example-keycloak
keycloak-db-secret
Service:
keycloak-postgresql
keycloak
keycloak-discovery
Service Monitor:
keycloak
Stateful Set:
keycloak
Version:
Events:
추가 리소스
- Red Hat Single Sign-On 설치가 완료되면 영역 사용자 정의 리소스를 만들 준비가 된 것입니다.
- 외부 데이터베이스는 지원되는 옵션이며 Keycloak 사용자 정의 리소스에서 활성화해야 합니다. 테스트에서만 이 옵션을 비활성화하고 프로덕션 환경으로 전환할 때 활성화할 수 있습니다. 외부 데이터베이스에 연결을 참조하십시오.