Salesforce Drupal シングル サインオン – OpenID Connect を使用した SSO 統合
概要
Drupal SSO統合により、ユーザーはDrupalサイトの認証情報を使用してSalesforceにログインできるようになります。このSSO統合は、OAuth 2.0とOpenID Connectプロトコルを使用するminiOrange OAuth / OpenID Connectサーバーモジュールによって実現されます。 モジュール すべての OAuth / OpenID Connect クライアントと互換性があり、Drupal 7、Drupal 8、Drupal 9、Drupal 10、および Drupal 11 で利用できます。
このセットアップ ガイドでは、Drupal サイトと Salesforce 間で OAuth プロトコルを使用してシングル サインオン ログインを構成する方法について説明します。
構成手順
Salesforce でアプリケーションを構成する:

- に移動します ページで見やすくするために変数を解析したりすることができます。

- 検索する 認証 左側のナビゲーション パネルの検索バーの下にあります。
- ソフトウェアの制限をクリック 認証プロバイダー.

- セットアップボタンをクリックすると、セットアップが開始されます New

- ノーザンダイバー社の プロバイダータイプ のドロップダウンで、ANSYS Structures Desktopを選択します。 オープンIDコネクト.

- の下にアプリケーション名を入力します。 お名前 テキストフィールドを作成し、生成されたフィールドをコピーします URLサフィックス.

Drupal を OAuth サーバーとして設定する
- 管理メニューで、「構成」→「ユーザー」→「miniOrange OAuth サーバー構成」に移動します。(admin/config/people/oauth_server_sso/config_client)

- 下 OAuth クライアント のタブ クライアントを追加 セクションにアプリケーション名を入力します アプリケーション名 OAuthクライアントからコピーしたコールバックURLを コールバック/リダイレクト URL テキストフィールド。
- テキスト フィールドの横にある [さらに追加] ボタンをクリックすると、複数のコールバック URL を追加できます。
- セットアップボタンをクリックすると、セットアップが開始されます 投稿 (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。

Salesforce を OAuth クライアントとして設定します。
- Salesforce ダッシュボードに移動し、コピーしたものを貼り付けます。 顧客ID 下 コンシューマキー テキストフィールド。

- コピーしたものを貼り付けます クライアントシークレット に 消費者の秘密 テキストフィールド。

- 以下の表で指定されているようにスコープとエンドポイントを追加します (同じものを 範囲とエンドポイント のセクション Drupal サイト → → miniOrange OAuth サーバーの構成 → OAuth クライアント):-
デフォルトのスコープ | プロフィールオープンIDメール |
---|---|
エンドポイント URL を承認する | {drupal_site のベース URL}/mo/oauth2/authorize |
トークンエンドポイントURL | {drupal_site のベース URL}/mo/oauth2/token |
ユーザー情報エンドポイント URL | {drupal_site のベース URL}/mo/oauth2/userinfo |

- セットアップボタンをクリックすると、セットアップが開始されます 登録ハンドラーテンプレートを自動的に作成する リンクをクリックします。

- の横にある「検索」アイコンをクリックします。 登録ハンドラを次のように実行します テキストボックス。

- ユーザーのリストから管理者アカウントを選択します。

- セットアップボタンをクリックすると、セットアップが開始されます 投稿

- 今、 自動作成されたRegHandler の横にあるリンク 登録ハンドラー.

- セットアップボタンをクリックすると、セットアップが開始されます 編集

- 既存のコードを削除し、次のコードを貼り付けて、 投稿
グローバル クラス AutocreatedRegHandlerMoDrupal は Auth.RegistrationHandler を実装します{ global User createUser(Id portalId, Auth.UserData data){ User u = new User(); Profile p = [SELECT Id FROM profile WHERE name='Chatter Moderator User']; u.username = data.email.split('@')[0] + '@miniorange_drupal.com'; u.email = data.email; u.lastName = 'Unknown'; u.firstName = 'Unknown'; u.languagelocalekey ='en_US'; u.localesidkey = 'en_US'; u.emailEncodingKey = 'UTF-8'; u.alias = (data.email.split('@')[0].length() > 8) ? data.email.split('@')[0].substring(0, 8) : data.email.split('@')[0]; u.timeZoneSidKey = 'America/Los_Angeles'; u.profileId = p.Id; insert u; return u; } global void updateUser(Id userId, Id portalId, Auth.UserData data){ User u = new User(id=userId); u.email = data.email; update(u); } }

- 以前に Drupal に入力したコールバック URL が、ここで提供されたものと一致していることを確認してください。 以前に異なる構成があった場合は、ここで提供されている URL と一致するように更新してください。

- 左側のナビゲーション パネルで次のように検索します 私のドメイン そしてそれをクリックしてください。

- 「認証構成」セクションまで下にスクロールし、 編集
![Salesforce と Drupal OAuth/OIDC プロバイダーの統合 - [編集] をクリックします](https://plugins.miniorange.com/wp-content/uploads/2023/09/Salesforce-OAuth-Client-Edit-Authorization-Configuration.webp)
- 「認証サービス」セクションで構成されたアプリケーションの横にあるチェックボックスを有効にし、「認証サービス」セクションをクリックします。 投稿

これがどのように機能するかを見てみましょう:
- 新しいウィンドウ/プライベートブラウザを開き、Salesforce Web サイトのログインページに移動します。
- セットアップボタンをクリックすると、セットアップが開始されます Drupalでログイン

- Drupal 認証情報を入力し、 ログイン

- Drupal 認証情報を使用して Salesforce にログインします。
Salesforce と Drupal の間で SSO が正常に実行されました。