Keycloak を OAuth / OpenID Connect プロバイダーとして使用して Drupal に SSO ログインする
概要
Drupal OAuth/OpenID Connect SSO 統合により、Drupal サイトと Keycloak 間の SSO が可能になります。 このセットアップ ガイドは、OAuth/OpenID Connect モジュールを使用して Drupal サイトと Keycloak の間でシングル サインオン (SSO) を構成するのに役立ちます。 組み込むと、 OAuth/OpenID コネクト Drupalサイトにモジュールを追加すると、Keycloakの認証情報を使ってDrupalサイトにシームレスにログインできます。このモジュールは、Drupal 7、Drupal 8、Drupal 9、Drupal 10、Drupal 11と互換性があります。
インストール手順
- 古いバージョン
- 新バージョン
- コンポーザの使用
- ドラッシュを使用する
- 手動インストール
- モジュールをダウンロードします。
コンポーザーには「drupal/miniorange_oauth_client」が必要です
- MFAデバイスに移動する 延長 Drupal 管理コンソールのメニューから検索します。 miniOrange OAuth クライアント構成 検索ボックスを使用して。
- チェックボックスをオンにしてモジュールを有効にし、 インストールを開始する
- モジュールは次の場所で設定できます。
{BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
- モジュールをインストールします。
drush と drupal/miniorange_oauth_client
- キャッシュをクリアします。
ダッシュCR
- モジュールは次の場所で設定できます。
{BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
注意: 手動インストールは、Drupal 7、Drupal 8、および Drupal 9 とのみ互換性があります。
- MFAデバイスに移動する 延長 Drupal 管理コンソールのメニューをクリックし、 新しいモジュールをインストールする.
- Drupal をインストールする OAuth および OpenID Connect ログイン - OAuth2 クライアント SSO ログイン zip をダウンロードするか、次の URL からモジュールをダウンロードします。 パッケージ (tar/zip).
- ソフトウェアの制限をクリック 新しく追加されたモジュールを有効にする.
- チェックボックスをオンにしてこのモジュールを有効にし、 install
- モジュールは次の場所で設定できます。
{BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
- コンポーザの使用
- ドラッシュを使用する
- 手動インストール
- モジュールをダウンロードします。
コンポーザーには「drupal/miniorange_oauth_client」が必要です
- MFAデバイスに移動する 延長 Drupal 管理コンソールのメニューから検索します。 miniOrange OAuth クライアント構成 検索ボックスを使用して。
- チェックボックスをオンにしてモジュールを有効にし、 インストールを開始する
- モジュールは次の場所で設定できます。
{ベースURL}/admin/config/people/mo-oauth-client/mo-client-config
- モジュールをインストールします。
drush と drupal/miniorange_oauth_client
- キャッシュをクリアします。
ダッシュCR
- モジュールは次の場所で設定できます。
{ベースURL}/admin/config/people/mo-oauth-client/mo-client-config
注意: 手動インストールは、Drupal 7、Drupal 8、および Drupal 9 とのみ互換性があります。
- MFAデバイスに移動する 延長 Drupal 管理コンソールのメニューをクリックし、 新しいモジュールをインストールする.
- Drupal をインストールする OAuth および OpenID Connect ログイン - OAuth2 クライアント SSO ログイン zip をダウンロードするか、次の URL からモジュールをダウンロードします。 パッケージ (tar/zip).
- ソフトウェアの制限をクリック 新しく追加されたモジュールを有効にする.
- チェックボックスをオンにしてこのモジュールを有効にし、 install
- モジュールは次の場所で設定できます。
{ベースURL}/admin/config/people/mo-oauth-client/mo-client-config
構成手順
Drupal を OAuth クライアントとして設定する
- に行く → のワークプ → miniOrange OAuth クライアント構成 管理メニューで。(/admin/config/people/miniorange_oauth_client)
- 「OAuth の構成」タブで、ドロップダウンから目的の OAuth プロバイダーを選択します。
注意: 希望するOAuthプロバイダーがドロップダウンにリストされていない場合は、選択してください。 カスタム OAuth プロバイダー / カスタム OpenID プロバイダー そして続けます。
- コピー コールバック/リダイレクト URL 手元に置いてください。OAuthプロバイダーの設定時に必要になります。
- OAuthプロバイダー名を 表示名 テキストフィールド。
注意: プロバイダーが HTTPS コールバック/リダイレクト URL のみをサポートしていて、HTTP サイトがある場合は、タブの下部にある [HTTPS コールバック URL を強制する] チェックボックスを必ず有効にしてください。
Drupal を OAuth クライアントとして設定する
- に行く → のワークプ → miniOrange OAuth クライアント 管理メニューで。(admin/config/people/mo-oauth-client/mo-client-config)
- 管理 セクション、下 クライアント構成 タブをクリックします。 + 新規追加 必要な OAuth クライアントを構成するためのボタン。
- 下 追加 タブで、ドロップダウンから目的の OAuth アプリケーションを選択します。
注意: 希望するOAuthプロバイダーがドロップダウンにリストされていない場合は、選択してください。 カスタム OAuth プロバイダー / カスタム OpenID プロバイダー そして続けます。
- OAuthプロバイダー名を カスタムアプリ名 テキストフィールド。 コールバック/リダイレクト URL 手元に置いてください。OAuthプロバイダーの設定時に必要になります。
- プロバイダがHTTPSコールバック/リダイレクトURLのみをサポートしていて、HTTPサイトがある場合は、 HTTPS コールバック URL を強制する のチェックボックス 設定 タブには何も表示されないことに注意してください。
- バージョン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 クライアントシークレット キークロークから 顧客ID クライアントシークレット テキストフィールド。
- 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 クライアントシークレット Keycloakから 顧客ID クライアントシークレット テキストフィールド。
- 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 によるログインを有効にするをクリックして下にスクロールし、 設定を保存
Drupal と OAuth プロバイダー間の接続をテストする
- 設定が正常に保存されたら、 テスト構成の実行 Drupal と OAuth プロバイダー間の接続をテストするためのボタン。
- テスト設定ポップアップで、同じブラウザにアクティブなセッションがない場合、OAuthプロバイダーへのログインが求められます。ログインに成功すると、OAuthプロバイダーから受信した属性のリストが表示されます。
- まず 電子メールの属性 ユーザーのメールIDを取得するドロップダウンメニューから クリックします
注意: SSO を実行するには、電子メール属性のマッピングが必須です。つまり、OAuth プロバイダーの資格情報を使用して Drupal サイトにログインする必要があります。
- ソフトウェア設定ページで、下図のように 属性と役割のマッピング タブで、選択してください ユーザー名の属性 ドロップダウンリストから 構成の保存
- ログアウトして、Drupalサイトのログインページに移動してください。そこには自動的に「OAuthプロバイダーでログイン」リンクが表示されます。他のページにもSSOリンクを追加したい場合は、以下の画像の手順に従ってください。
Drupal と OAuth プロバイダー間の接続をテストする
- 構成が正常に保存されたら、 テスト構成の実行 Drupal と OAuth プロバイダー間の接続をテストするためのボタン。
- テスト設定ポップアップで、同じブラウザにアクティブなセッションがない場合、OAuthプロバイダーへのログインが求められます。ログインに成功すると、OAuthプロバイダーから受信した属性のリストが表示されます。
- 以下を行うには、 マッピングを構成する
- ソフトウェア設定ページで、下図のように 属性マッピング タブで、選択してください 電子メールの属性 ユーザー名の属性 ドロップダウン リストから、 構成の保存
注意: SSO を実行するには、電子メール属性のマッピングが必須です。つまり、OAuth プロバイダーの資格情報を使用して Drupal サイトにログインする必要があります。
- ログアウトして、Drupalサイトのログインページに移動してください。そこには自動的に「OAuthプロバイダーでログイン」リンクが表示されます。他のページにもSSOリンクを追加したい場合は、以下の画像の手順に従ってください。
手伝いが必要?
構成中に問題が発生した場合、または追加機能が必要な場合は、次のアドレスまでお問い合わせください。 drupalsupport@xecurify.com.
追加機能:
-
属性マッピング - OAuth プロバイダーから受信したユーザーの属性を Drupal フィールドにマッピングします
-
ロールマッピング - OAuthプロバイダーのロール/属性に基づいてユーザーにDrupalロールを割り当てます
-
シングル ログアウトを有効にする - ユーザーが Drupal からログアウトするときに、OAuth プロバイダー (AWS Cognito、Azure AD B2C、Keycloak、Okta など) からログアウトします。
-
サイト全体またはサイトの特定のセクションへの匿名アクセスを制限する
-
複数の OAuth プロバイダーを追加する
-
OAuthクライアントが提供するすべての機能をご覧ください
トラブルシューティング:
その他のよくある質問➔エラーが発生する: 「ユーザー名を受信していません。属性マッピングの構成を確認してください。」またはエラーが発生する: 「電子メールを受信していません。属性マッピングの構成を確認してください。」
記載されている手順に従ってください Pr_media
「クライアント資格情報がヘッダーまたは本文に見つかりませんでした」というメッセージが表示されます
テスト構成を実行しようとすると
記載されている手順に従ってください Pr_media
Drupal でログアウトをクリックすると、Drupal ホームページに戻ります。しかし、他のユーザーでログインしようとすると、ログインを求められず、同じユーザーで自動的にログインされます。
ここで言及されているログアウト機能は、モジュールのデフォルトの動作です。Drupal からはログアウトしますが、アプリケーション/プロバイダーからはログアウトしません。モジュールがプロバイダー/アプリケーション アカウントからログアウトできるようにするには (必要な操作)、以下の設定を行う必要があります。[詳細を知って]
有料の Drupal モジュールを購入し、無料モジュールに置き換えましたが、有料機能はまだ使用できません。
Drupal モジュールの有料版にアップグレードし、無料モジュールを有料モジュールに置き換えたので、まず有料モジュールを有効化する必要があります。以下の手順を参照してください。[もっと知る]
24 / 7サポート
miniOrange の Drupal 開発者は、お客様の質問に対して迅速かつ積極的なサポートを提供します。お客様のユースケースに最適なソリューションの選択からお手伝いいたします。
その他のソリューション
当社が提供するその他の Drupal ソリューションもぜひご検討ください。当社の信頼できるお客様に人気のソリューションには、2FA、ユーザー プロビジョニング、Web サイト セキュリティなどがあります。

お問い合わせ