3.2. OIDC 認証プロバイダーを使用した Keycloak の設定
Red Hat Developer Hub には、Keycloak を使用してユーザーを認証できる OIDC 認証プロバイダーが含まれています。
Keycloak で作成したユーザーは、Developer Hub カタログでも使用可能である必要があります。
手順
-
Keycloak で、
RHDH
などの新しいレルムを作成します。 新しいユーザーを追加します。
- ユーザー名
-
ユーザーのユーザー名。例:
rhdhuser
- メール
- ユーザーのメールアドレス。
- 名
- ユーザーの名。
- 姓
- ユーザーの姓。
- メールの確認
- On に切り替えます。
- Create をクリックします。
- Credentials タブに移動します。
- Set password をクリックします。
- ユーザーアカウントの Password を入力し、Temporary を Off に切り替えます。
新しいクライアント ID (例:
RHDH)
を作成します。- クライアント認証
- On に切り替えます。
- 有効なリダイレクト URI
-
OIDC ハンドラー URL に設定します (例:
https://<RHDH_URL>/api/auth/oidc/handler/frame)
。
- Credentials タブに移動し、Client secret をコピーします。
- 次のステップのために、クライアント ID とクライアントシークレットを保存します。
Developer Hub で、Developer Hub シークレットに Keycloak 認証情報を追加します。
- secrets-rhdh などの Developer Hub シークレットを編集します。
以下のキーと値のペアを追加します。
AUTH_KEYCLOAK_CLIENT_ID
-
Keycloak で生成したクライアント ID (
RHDH
など) を入力します。 AUTH_KEYCLOAK_CLIENT_SECRET
- Keycloak で生成したクライアントシークレットを入力します。
Developer Hub のカスタム設定で OIDC 認証プロバイダーを設定します。
-
app-config-rhdh
などのカスタム Developer Hub ConfigMap を編集します。 app-config-rhdh.yaml
コンテンツで、ルートauth
設定の下にoidc
プロバイダー設定を追加し、サインイン用にoidc
プロバイダーを有効にします。app-config-rhdh.yaml
の一部auth: environment: production providers: oidc: production: clientId: ${AUTH_KEYCLOAK_CLIENT_ID} clientSecret: ${AUTH_KEYCLOAK_CLIENT_SECRET} metadataUrl: ${KEYCLOAK_BASE_URL}/auth/realms/${KEYCLOAK_REALM} prompt: ${KEYCLOAK_PROMPT} # recommended to use auto Uncomment for additional configuration options #callbackUrl: ${KEYCLOAK_CALLBACK_URL} #tokenEndpointAuthMethod: ${KEYCLOAK_TOKEN_ENDPOINT_METHOD} #tokenSignedResponseAlg: ${KEYCLOAK_SIGNED_RESPONSE_ALG} #scope: ${KEYCLOAK_SCOPE} If you are using the keycloak-backend plugin, use the
preferredUsernameMatchingUserEntityName
resolver to avoid a login error. signIn: resolvers: - resolver: preferredUsernameMatchingUserEntityName signInPage: oidc
-
検証
-
backstage-developer-hub
アプリケーションを再起動して変更を適用します。 - Developer Hub のサインインページに、Sign in using OIDC と表示されます。