・はじめに
「SSO(シングルサインオン)って使ったことあるけど、自分で構築したことないな。」
と唐突に思い、試しに AzureAD と Salesforce を連携させました。
下記 Docs を参考にしつつ、MS の推奨に従って構築を行いました。
参考Docs ↓
・Azure Active Directory シングル サインオン (SSO) と Salesforce の統合
・Salesforce を構成し、自動ユーザー プロビジョニングに対応させる
この記事の手順を実施することで、AzureADに登録されているアカウント、パスワードでSalesforce にサインインできるようになります。
※この記事はQiita から移行して、最新の情報に更新しています。
・目次
・Azure と Salesforce の SSO 連携の特徴
以下、Docs から抜粋。
- Salesforce は、SP Initiated SSO をサポート。
- Salesforce は、自動化された ユーザープロビジョニングとプロビジョニング解除 (推奨) をサポート。
- Salesforce は、JIT ユーザープロビジョニングをサポート。
・SSO構築の前提条件
SSO 構築には最低限下記のサブスクリプションが必要です。
AzureAD : AzureAD サブスクリプション。 ※無料アカウントでもOK。
Salesforce : SSO が有効な Salesforce のサブスクリプション。 ※ 無料の開発者環境 でもOK。
※Salesforce.com の試用アカウントの場合は必要な API にアクセスできず、自動化されたユーザープロビジョニングを構成できません。
必ず無料の開発者アカウント、もしくは、有料アカウントを使用します。
・実施環境
本記事に記載の操作は、下記条件の環境で実施しました。
利用ブラウザ
- Microsoft Chromium Edge ※InPrivateウィンドウは利用しないこと。
AzureAD :
- Microsoft365 Business Basic ライセンスを保持する アカウント を使用
- ユーザーは M365 グローバル管理者 権限 を保持していること
- AzureAD Free 利用
- ドメイン ⇒ 初期のまま(@aaaa.onmicrosoft.com)
Salesforce :
- Salesforce の システム管理者 権限を保持していること
- 無料の開発者 環境を利用
- ドメイン ⇒ 初期のまま(bbbb-dev-ed.my.salesforce.com)
1.Salesforce のシステム管理者アカウントで、Salesforce にログインする。
2.右上歯車マーク > 設定 をクリック。
3.左側メニューから「設定」>「会社の設定」>「私のドメイン」をクリック。
4.「現在の[私のドメイン]のURL」に表示されているドメインをメモしておく。
【AzureAD】 アプリケーションの作成
5.グローバル管理者権限を持つアカウントで Azure にログインする。
6.AzureAD を選択 > 左側メニューから「エンタープライズアプリケーション」をクリック。
7.「+ 新しいアプリケーション」をクリック。
8.「Salesforce」を検索ボックスに入力して検索結果から「Salesforce」を選択する。
9.アプリケーションの名前を決めて、「作成」ボタンをクリック。
10.アプリケーションが作成されたことを確認する。
【AzureAD】SSO SAML構成
11.作成したアプリケーションをクリック、左側メニューから「シングルサインオン」をクリック。
12.「SAML」をクリックする。
13.「基本的な SAML 構成」>「編集」をクリックする。
14.「識別子(エンティティID)」「応答URL」「サインオンURL」に Salesforce からコピーしたドメインを入力する。
※開発者環境の場合「https:// xxx-dev-ed.my.salesforce.com 」の形。
※入力値は全て同じでOK。
15.「保存」する。
16.「SAML 署名証明書」>「編集」をクリック。
17.「署名オプション」を「SAML 応答とアサーションへの署名」に変更して「保存」する。
18.「SAML 署名証明書」画面が閉じたら、「拡張機能のインストール」をクリック。
19.ブラウザ(Edge)にアドオンのインストールを行う。
「Chrome ウェブストア」が表示されたら「他のストアからの拡張機能を許可する」をクリック。
20.「Chromeに追加」ボタンが表示されたら、クリック。
21.「Microsoft Edge に追加しますか?」メッセージが表示されたら「拡張機能の追加」をクリック。
アドオンが追加されると、Edgeに下図赤枠内のアイコンが表示されるようになります。
22.AzureADに戻ると「○○のセットアップ」ボタンが活性化されているのでクリック。
23.フェデレーション xmlファイルのダウンロードが開始される。
xmlファイルのダウンロードが完了したら「OK」をクリック。
24.手順23の後、Salesforce のログイン画面に遷移するので、Salesforce のシステム管理者アカウントでログインする。
25.ログイン後に「Setup Single Sign On」画面が表示されたら「Yes」をクリック。
26.「Upload SAML signing certificate」画面が表示されたら「Yes」をクリック。
※25、26 は表示されない、または、日本語の可能性もあります。
27.手順23でダウンロードしたフェデレーションxmlファイル を選択して、アップロードする。
28.「作成」をクリック。
29.下図画面が表示されたら「Yes」をクリック。
30.「SAML シングルサインオン構成」画面では、「SAML ID 種別」が「アサーションには、ユーザの Salesforce ユーザ名が含まれます」であることを確認して「保存」をクリック。
31.手順30の後、「設定」>「ID」>「シングルサインオン設定」で「編集」をクリック。
32.「SAML を有効化」にチェックを入れて保存する。
33.「設定」>「会社の設定」>「私のドメイン」>「認証設定」に移動する。
34.「認証サービス」にある「ログインフォーム」と 有効化したSSO にチェックを入れて保存する。
・自動ユーザープロビジョニングを有効にする手順
上記までで、シングルサインオンの構成は完了しました。
次に AzureAD に登録されているアカウントを、自動的に Salesforce で利用できるようにしていきます。
Azure AD で自動ユーザープロビジョニングを構成する際に、Salesforce のセキュリティトークンが必要になるため事前に取得します。
35.システム管理者アカウントで Salesforce にサインインする。
36.画面右上の自分のアイコン >「設定」をクリック。
37.「私の個人情報」>「私のセキュリティトークンのリセット」>「 セキュリティトークンのリセット 」をクリック。
38.Salesforce に登録しているメールアドレスに セキュリティトークン が送信されるので、確認してコピーする。
【AzureAD】 自動ユーザープロビジョニングを構成する
39.Azure側に戻り、SSO を構成したSalesfroce のアプリケーションを選択する。
40.左側メニューから「プロビジョニング」を選択して、「作業の開始」をクリック。
41.「プロビジョニング モード」を「 自動 」に変更する。
42.「管理者資格情報」に次の構成設定を指定する。
管理者ユーザー名:システム管理者権限を持つ Salesforce アカウント名
管理者パスワード:システム管理者権限を持つ Salesforce アカウントのパスワード
セキュリティトークン:手順38で取得したセキュリティトークン
テナント URL:(省略)
43. [テスト接続] をクリックして Azure AD が Salesforce アプリに接続できることを確認する。
44.「保存」をクリック。
45.同画面内の「設定」セクションにある「プロビジョニング」をオンにして保存する。
※保存ができない場合は、しばらく時間をおいてから再度実施してみてください。
これで、プロビジョニングが完了です。
長らくお疲れ様でした。
AzureAD Salesforce プロビジョニング対象について
自動プロビジョニングを構成すると 既定で、
AzureAD に登録されている全ユーザーが Salesforce とのマッピング対象となります。
ただし、AzureAD Free プランの場合、グループはマッピング対象にすることができません。
AzureAD と Salesforce のマッピング定義は、「プロビジョニング」>「編集」>「マッピング」でマッピングの対象範囲、マッピングする属性値などを編集・確認が可能です。
同期処理は、約 40 分ごとに実行され、[ユーザーとグループ] セクションで SSO が有効になっているユーザーを確認できます。
・参考URL
・Azure Active Directory シングル サインオン (SSO) と Salesforce の統合
・Salesforce を構成し、自動ユーザー プロビジョニングに対応させる
・SalesforceをAzureADでSSOする構成にしてみた
・シングルサインオン 実装ガイド SAML シングルサインオンを使用するサービスプロバイダとして Salesforce を設定