Keycloak を OAuth / OpenID Connect プロバイダーとして使用して Drupal に SSO ログインする
概要
Drupal OAuth/OpenID Connect SSO統合により、DrupalサイトとKeycloak間のSSO(シングルサインオン)が可能になります。このセットアップガイドでは、OAuth/OpenID Connectモジュールを使用してDrupalサイトとKeycloak間のSSOを設定する方法を説明します。OAuth /OpenID ConnectモジュールをDrupalサイトに組み込むと、Keycloakの認証情報を使用してDrupalサイトにシームレスにログインできます。このモジュールは、Drupal 7、Drupal 8、Drupal 9、Drupal 10、およびDrupal 11に対応しています。
インストール手順
- 古いバージョン
- 新バージョン
構成手順
Drupal を OAuth クライアントとして設定する
Drupal を OAuth クライアントとして設定する
- バージョン21.1.1でKeycloakを設定する
- バージョン18でKeycloakを設定する
- 下位バージョンで Keycloak を構成する
Keycloak で OAuth/OpenID シングル サインオン アプリケーションを作成します。
- あなたにログイン キークローク 管理者コンソール。
- 選択 レルムの作成 マスタードロップダウンメニューから。
![Drupal Keycloak OAuth/OIDC シングル サインオン - SSO - マスターに移動し、[レルムの作成] ボタンをクリックします。](https://plugins.miniorange.com/wp-content/uploads/2024/07/Drupal-Keycloak-SAML-SP-Select-Realm.webp)
- にアプリケーション名を入力します レルム名 テキストフィールドをクリックし、 創造する ボタンを押して続行します。
- に移動します 取引実績 -> 顧客リスト -> クライアントを作成.
- 基本設定、 入力します 顧客ID。 クリックします。 次へ
- 機能構成のチェックボックスをオンにします。 クライアント認証 をクリックして 次へ
- ログイン設定を貼り付けます。 コールバック/リダイレクト URL に 有効なリダイレクト URI テキストフィールドをクリックして、 Save
- に移動します Credentials タブをクリックして、 クライアントの秘密 Drupal を OAuth クライアントとして構成する際に便利です。
- Keycloak管理者コンソールに移動します。
- MFAデバイスに移動する レルム設定 → 全般 そしてコピー レルムID コピーをクリックして アイコン.
- KeycloakのドメインURLをコピーします。例えば、Keycloakがlocalhostで実行されている場合、ドメインは「https://localhost:8080」になります。(下の画像を参照)
KeycloakでOAuth/OpenIDシングル・サインオン・アプリケーションを作成します。
- まず第一に、 Keycloakをダウンロード し、それをインストールしてください。
- サーバーを起動します: _standalone.sh_ ファイルを実行して Keycloak サーバーを起動します。keycloak/bin/standalone.sh のルート ディレクトリ
- レルムを作成します。 Keycloak管理コンソールにログインし、希望するレルムに移動します。新しいレルムを追加するには、 レルムの作成 オプションを選択します。
![Drupal Keycloak OAuth/OIDC シングル サインオン - SSO - マスターに移動し、[レルムの作成] ボタンをクリックします。](https://plugins.miniorange.com/wp-content/uploads/2023/02/Drupal-oauth-client-relem.webp)
- レルムを作成します。 レルム名を入力してコピーします。後でDrupalをOAuthクライアントとして設定する際に必要となるので、手元に置いておいて、クリックします。 CREATE レルムを追加します。
- 入力する 顧客ID コピーしてください。後でDrupalをOAuthクライアントとして設定する際に必要になるので、手元に置いておいて、 Save
- 有効にします クライアント認証 とをクリックしてください Save
- コピーした (ステップ 1 で) コールバック URL を 有効なリダイレクト URL テキストエリアをクリックして Save
- に移動します Credentials タブをクリックしてクライアント シークレットをコピーします。
KeycloakでOAuth/OpenIDシングル・サインオン・アプリケーションを作成します。
- まず第一に、 Keycloakをダウンロード し、それをインストールしてください。
- サーバーを起動します: _standalone.sh_ ファイルを実行して Keycloak サーバーを起動します。keycloak/bin/standalone.sh のルート ディレクトリ
- レルムを追加します。 Keycloak管理コンソールにログインし、希望するレルムに移動します。新しいレルムを追加するには、 レルムの作成 オプションを選択します。
![Drupal Keycloak OAuth/OIDC シングル サインオン - SSO - マスターに移動し、[レルムの作成] ボタンをクリックします。](https://plugins.miniorange.com/wp-content/uploads/2021/01/Drupal-OAuth-Client-Keylock-Add-Realm.webp)
- レルムを作成します。 レルム名を入力してコピーします。後でDrupalをOAuthクライアントとして設定する際に必要となるので、手元に置いておいて、クリックします。 CREATE レルムを追加します。
- 次に、 表示名 そして「保存」ボタンをクリックします。
- に移動します 取引実績 タブをクリックして 創造する
- 入力する 顧客ID コピーしてください。後でDrupalをOAuthクライアントとして設定する際に必要になるので、手元に置いておいて、 Save
- 先ほどコピーしたものを貼り付けます コールバック/リダイレクト URL に 有効なリダイレクト URL テキストフィールドをクリックして Save
- に移動します Credentials タブをクリックしてクライアント シークレットをコピーします。
Drupal と Keycloak の統合:
- miniOrange OAuth クライアント モジュールに移動します。
- Drupalでは OAuthの構成 コピーしたものをタブ貼り付けします 顧客ID (NAIST) と クライアントシークレット キークロークから 顧客ID (NAIST) と クライアントシークレット テキストフィールド。
- Drupalでは OAuthの構成 タブで、「Keycloak_base_URL」をコピーしたものに置き換えます KeycloakドメインURL そして、コピーされたレルム名を持つレルム名 エンドポイントの承認, アクセストークンエンドポイント, ユーザー情報の取得エンドポイント テキストフィールド。 次に、 設定を保存 ボタンを押して続行します。
Drupal OAuth クライアント モジュールの [OAuth の構成] タブの対応するテキスト フィールドに次の情報を入力します。
| 対象領域 | openid メール プロファイル |
| エンドポイントの承認 | (Keycloak ベース URL)/realms/{レルム名}/protocol/openid-connect/auth |
| アクセストークンエンドポイント | (Keycloak ベース URL)/realms/{レルム名}/protocol/openid-connect/token |
| ユーザー情報の取得エンドポイント | (Keycloak ベース URL)/realms/{レルム名}/protocol/openid-connect/userinfo |
Drupal と Keycloak の統合:
- miniOrange OAuth クライアント モジュールに移動します。
- In 追加 タブにコピーした内容を貼り付けます 顧客ID (NAIST) と クライアントシークレット Keycloakから 顧客ID (NAIST) と クライアントシークレット テキストフィールド。
- Drupalでは OAuthの構成 タブで、「Keycloak_base_URL」をコピーしたものに置き換えます KeycloakドメインURL そして、コピーされたレルム名を持つレルム名 エンドポイントの承認, アクセストークンエンドポイント, ユーザー情報の取得エンドポイント テキストフィールド。 次に、 設定を保存 ボタンを押して続行します。
Drupal OAuth クライアント モジュールの [OAuth の構成] タブの対応するテキスト フィールドに次の情報を入力します。
| 対象領域 | openid メール プロファイル |
| エンドポイントの承認 | (Keycloak ベース URL)/realms/{レルム名}/protocol/openid-connect/auth |
| アクセストークンエンドポイント | (Keycloak ベース URL)/realms/{レルム名}/protocol/openid-connect/token |
| ユーザー情報の取得エンドポイント | (Keycloak ベース URL)/realms/{レルム名}/protocol/openid-connect/userinfo |
- その クライアントIDとシークレットを送信する チェックボックスをオンにすると、クライアントIDとシークレットをトークンエンドポイントリクエストのヘッダーに含めるか、本文に含めるかを指定できます。どちらのオプションを選択すればよいかわからない場合は、デフォルト設定のままで構いません。
- チェックボックスをクリックして、 OAuth によるログインを有効にするをクリックして下にスクロールし、 設定を保存
