・はじめに
「SSO(シングルサインオン)って使ったことあるけど、自分で構築したことないな。」
と唐突に思い、試しに AzureAD と Salesforce を連携させました。
下記 Docs を参考にしつつ、MS の推奨に従って構築を行いました。
参考Docs ↓
・Azure Active Directory シングル サインオン (SSO) と Salesforce の統合
・Salesforce を構成し、自動ユーザー プロビジョニングに対応させる
この記事の手順を実施することで、AzureADに登録されているアカウント、パスワードでSalesforce にサインインできるようになります。
※この記事はQiita から移行して、最新の情報に更新しています。
・目次
- Azure と Salesforce の SSO 連携の特徴
- SSO構築の前提条件
- 実施環境
- シングルサインオン構成手順
-- 【Salesforce】 必要情報の取得
-- 【AzureAD】 アプリケーションの作成
-- 【AzureAD】SSO SAML構成
-- 【Salesforce】SSO SAML構成
-- 【Salesforce】 SAML有効化 - 自動ユーザープロビジョニングを有効にする手順
-- 【Salesforce】 セキュリティトークンを取得する
-- 【AzureAD】 自動ユーザープロビジョニングを構成する - AzureAD Salesforce プロビジョニング対象について
- 参考URL
・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)
・シングルサインオン構成手順
【Salesforce】 必要情報の取得
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」をクリック。
【Salesforce】SSO SAML構成
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 ユーザ名が含まれます」であることを確認して「保存」をクリック。
【Salesforce】 SAML有効化
31.手順30の後、「設定」>「ID」>「シングルサインオン設定」で「編集」をクリック。
32.「SAML を有効化」にチェックを入れて保存する。
33.「設定」>「会社の設定」>「私のドメイン」>「認証設定」に移動する。
34.「認証サービス」にある「ログインフォーム」と 有効化したSSO にチェックを入れて保存する。
・自動ユーザープロビジョニングを有効にする手順
上記までで、シングルサインオンの構成は完了しました。
次に AzureAD に登録されているアカウントを、自動的に Salesforce で利用できるようにしていきます。
【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 を設定