51.2. 外部 ID プロバイダーへの参照の作成

外部 ID プロバイダー (IdP) を Identity Management (IdM) 環境に接続するには、IdM で IdP 参照を作成します。これらの例は、さまざまな IdP テンプレートに基づいて外部 IdP への参照を設定する方法を示しています。次のオプションを使用して設定を指定します。

--provider
既知の ID プロバイダーのいずれかの定義済みテンプレート
--client-id
アプリケーション登録時に IdP によって発行された OAuth 2.0 クライアント識別子。アプリケーションの登録手順は IdP ごとに異なるため、詳細については各 IdP のドキュメントを参照してください。外部 IdP が Red Hat Single Sign-On (SSO) の場合は、OpenID Connect クライアントの作成 を参照してください。
--base-url
Keycloak と Okta で必要な IdP テンプレートのベース URL
organization
Microsoft Azure で必要な IdP からのドメインまたは組織 ID
--secret

(オプション) 機密 OAuth 2.0 クライアントからのシークレットを要求するように、外部 IdP を設定した場合は、このオプションを使用します。IdP 参照を作成するときにこのオプションを使用すると、シークレットを対話的に求めるプロンプトが表示されます。クライアントシークレットをパスワードとして保護します。

注記

RHEL 8.7 の SSSD は、クライアントシークレットを使用しない非機密 OAuth 2.0 クライアントのみをサポートします。機密クライアントからのクライアントシークレットを必要とする外部 IdP を使用する場合は、RHEL 8.8 以降で SSSD を使用する必要があります。

前提条件

  • IdM を OAuth アプリケーションとして外部 IdP に登録し、クライアント ID を取得している。
  • IdM 管理者アカウントとして認証可能である。
  • IdM サーバーで RHEL 8.7 以降を使用している。
  • IdM サーバーで SSSD 2.7.0 以降を使用している。

手順

  1. IdM サーバーで IdM 管理者として認証します。

    [root@server ~]# kinit admin
  2. 次の表に示すように、IdM で必要な IdP への参照を作成します。

    アイデンティティープロバイダー重要なオプションコマンド例

    Microsoft Identity Platform、
    Azure AD

    --provider microsoft
    --organization

    # ipa idp-add my-azure-idp \
      --provider microsoft \
      --organization main \
      --client-id <azure_client_id>

    Google

    --provider google

    # ipa idp-add my-google-idp \
      --provider google \
      --client-id <google_client_id>

    GitHub

    --provider github

    # ipa idp-add my-github-idp \
      --provider github \
      --client-id <github_client_id>

    Keycloak、
    Red Hat Single Sign-On

    --provider keycloak
    --organization
    --base-url

    # ipa idp-add my-keycloak-idp \
      --provider keycloak \
      --organization main \
      --base-url keycloak.idm.example.com:8443/auth \
      --client-id <keycloak_client_id>
    注記

    Keycloak 17 以降の Quarkus バージョンでは、URI の /auth/ 部分が削除されています。デプロイメントで Keycloak の非 Quarkus ディストリビューションを使用する場合は、--base-url オプションに /auth/ を含めます。

    Okta

    --provider okta

    # ipa idp-add my-okta-idp \
      --provider okta
      --base-url dev-12345.okta.com \
      --client-id <okta_client_id>

    たとえば、次のコマンドは、Keycloak テンプレートに基づいて IdP への my-keycloak-idp という参照を作成します。--base-url オプションは、Keycloak サーバーへの URL を server-name.$DOMAIN:$PORT/prefix の形式で指定します。

    [root@server ~]# ipa idp-add my-keycloak-idp \
                     --provider keycloak --organization main \
                     --base-url keycloak.idm.example.com:8443/auth \
                     --client-id id13778
    ------------------------------------------------
    Added Identity Provider reference "my-keycloak-idp"
    ------------------------------------------------
      Identity Provider reference name: my-keycloak-idp
      Authorization URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/auth
      Device authorization URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/auth/device
      Token URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/token
      User info URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/userinfo
      Client identifier: ipa_oidc_client
      Scope: openid email
      External IdP user identifier attribute: email

検証

  • ipa idp-show コマンドの出力に、作成した IdP 参照が表示されていることを確認します。

    [root@server ~]# ipa idp-show my-keycloak-idp

関連情報