3.2. Red Hat SSO を Trusted Artifact Signer の OpenID Connect プロバイダーとして設定する手順
Red Hat Single Sign-On (SSO) を、Red Hat Trusted Artifact Signer (RHTAS) サービスの OpenID Connect プロバイダーとして使用できます。これにより、アプリケーションと安全なサービスに Keycloak 認証環境が提供されます。
前提条件
- Red Hat OpenShift Container Platform バージョン 4.13 以降
-
cluster-admin
ロールでの OpenShift Web コンソールへのアクセス。 - Keycloak PostgreSQL データベース用に 1 GB のコンテナーストレージを使用できる。
-
oc
バイナリーがインストールされているワークステーション。
手順
-
cluster-admin
ロールを持つユーザーで OpenShift Web コンソールにログインします。 Keycloak サービスをデプロイする新規プロジェクトを作成します。
- Administrator パースペクティブのナビゲーションメニューから Home を展開し、Projects をクリックします。
- Create Project ボタンをクリックします。
-
新しい project name は
keycloak-system
で、Create ボタンをクリックします。
- ナビゲーションメニューから Operators を展開し、OperatorHub をクリックします。
- 検索フィールドに sso と入力し、Red Hat Single Sign-on タイルをクリックします。
- Install ボタンをクリックして、Operator の詳細を表示します。
-
まだ設定されていない場合は、Installed Namespace ドロップダウンメニューから
keycloak-system
を選択します。 - Install Operator ページで Install をクリックし、インストールが完了するまで待ちます。
- インストールが完了したら、View Operator をクリックします。
ワークステーションターミナルから、OpenShift クラスターにログインします。
構文
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
例
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注記OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。入力を求められた場合はユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。
Keycloak プロジェクトに切り替えます。
例
$ oc project keycloak-system
Keycloak インスタンスを作成します。
例
$ cat <<EOF | oc apply -f - apiVersion: keycloak.org/v1alpha1 kind: Keycloak metadata: labels: app: sso name: keycloak spec: externalAccess: enabled: true instances: 1 keycloakDeploymentSpec: imagePullPolicy: Always postgresDeploymentSpec: imagePullPolicy: Always EOF
Keycloak レルムを作成します。
例
$ cat <<EOF | oc apply -f - apiVersion: keycloak.org/v1alpha1 kind: KeycloakRealm metadata: labels: app: sso name: trusted-artifact-signer spec: instanceSelector: matchLabels: app: sso realm: displayName: Red-Hat-Trusted-Artifact-Signer enabled: true id: trusted-artifact-signer realm: trusted-artifact-signer sslRequired: none EOF
Keycloak クライアントを作成します。
例
$ cat <<EOF | oc apply -f - apiVersion: keycloak.org/v1alpha1 kind: KeycloakClient metadata: labels: app: sso name: trusted-artifact-signer spec: client: attributes: request.object.signature.alg: RS256 user.info.response.signature.alg: RS256 clientAuthenticatorType: client-secret clientId: trusted-artifact-signer defaultClientScopes: - profile - email description: Client for Red Hat Trusted Artifact Signer authentication directAccessGrantsEnabled: true implicitFlowEnabled: false name: trusted-artifact-signer protocol: openid-connect protocolMappers: - config: claim.name: email id.token.claim: "true" jsonType.label: String user.attribute: email userinfo.token.claim: "true" name: email protocol: openid-connect protocolMapper: oidc-usermodel-property-mapper - config: claim.name: email-verified id.token.claim: "true" user.attribute: emailVerified userinfo.token.claim: "true" name: email-verified protocol: openid-connect protocolMapper: oidc-usermodel-property-mapper - config: claim.name: aud claim.value: trusted-artifact-signer id.token.claim: "true" access.token.claim: "true" userinfo.token.claim: "true" name: audience protocol: openid-connect protocolMapper: oidc-hardcoded-claim-mapper publicClient: true standardFlowEnabled: true redirectUris: - "*" realmSelector: matchLabels: app: sso EOF
Keycloak ユーザーを作成します。
例
$ cat <<EOF | oc apply -f - apiVersion: keycloak.org/v1alpha1 kind: KeycloakUser metadata: labels: app: sso name: jdoe spec: realmSelector: matchLabels: app: sso user: email: jdoe@redhat.com enabled: true emailVerified: true credentials: - type: "password" value: "secure" firstName: Jane lastName: Doe username: jdoe EOF
ユーザー名、ユーザーのメールアドレス、パスワードを設定するか、秘密オブジェクトを参照します。
- OpenShift Web コンソールに戻り、All instances タブをクリックして監視し、Keycloak システムが正常に初期化されるまで待ちます。