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 を追加できます。
- 以下を行うには、 Save (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 |
- 以下を行うには、 登録ハンドラーテンプレートを自動的に作成する リンクをクリックします。
- の横にある「検索」アイコンをクリックします。 登録ハンドラを次のように実行します テキストボックス。
- ユーザーのリストから管理者アカウントを選択します。
- 以下を行うには、 Save
- 今、 自動作成されたRegHandler の横にあるリンク 登録ハンドラー.
- 以下を行うには、 編集
- 既存のコードを削除し、次のコードを貼り付けて、 Save
グローバル クラス 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 と一致するように更新してください。
- 左側のナビゲーション パネルで次のように検索します 私のドメイン そしてそれをクリックしてください。
- 「認証構成」セクションまで下にスクロールし、 編集
- 「認証サービス」セクションで構成されたアプリケーションの横にあるチェックボックスを有効にし、「認証サービス」セクションをクリックします。 Save
これがどのように機能するかを見てみましょう:
- 新しいウィンドウ/プライベートブラウザを開き、Salesforce Web サイトのログインページに移動します。
- 以下を行うには、 Drupalでログイン
- Drupal 認証情報を入力し、 ログイン
- Drupal 認証情報を使用して Salesforce にログインします。
Salesforce と Drupal の間で SSO が正常に実行されました。

お問い合わせ