くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【SSO】AzureADとSalesforceのSSO連携手順 実践編

・はじめに

「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構成
     -- 【SalesforceSAML有効化
  • 自動ユーザープロビジョニングを有効にする手順
     -- 【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」に表示されているドメインをメモしておく。

f:id:kurakurattyo:20211109223842p:plain

【AzureAD】 アプリケーションの作成

5.グローバル管理者権限を持つアカウントで Azure にログインする。
6.AzureAD を選択 > 左側メニューから「エンタープライズアプリケーション」をクリック。
7.「+ 新しいアプリケーション」をクリック。
8.「Salesforce」を検索ボックスに入力して検索結果から「Salesforce」を選択する。
9.アプリケーションの名前を決めて、「作成」ボタンをクリック。
10.アプリケーションが作成されたことを確認する。

【AzureAD】SSO SAML構成

11.作成したアプリケーションをクリック、左側メニューから「シングルサインオン」をクリック。
12.「SAML」をクリックする。

f:id:kurakurattyo:20211109223926p:plain


13.「基本的な SAML 構成」>「編集」をクリックする。
14.「識別子(エンティティID)」「応答URL」「サインオンURL」に Salesforce からコピーしたドメインを入力する。
※開発者環境の場合「https:// xxx-dev-ed.my.salesforce.com 」の形。
※入力値は全て同じでOK。

f:id:kurakurattyo:20211109224014p:plain


15.「保存」する。
16.「SAML名証明書」>「編集」をクリック。
17.「署名オプション」を「SAML 応答とアサーションへの署名」に変更して「保存」する。

f:id:kurakurattyo:20211109224757p:plain


18.「SAML名証明書」画面が閉じたら、「拡張機能のインストール」をクリック。
19.ブラウザ(Edge)にアドオンのインストールを行う。
  「Chrome ウェブストア」が表示されたら「他のストアからの拡張機能を許可する」をクリック。
20.「Chromeに追加」ボタンが表示されたら、クリック。
21.「Microsoft Edge に追加しますか?」メッセージが表示されたら「拡張機能の追加」をクリック。
アドオンが追加されると、Edgeに下図赤枠内のアイコンが表示されるようになります。

f:id:kurakurattyo:20211109224933p:plain


22.AzureADに戻ると「○○のセットアップ」ボタンが活性化されているのでクリック。

f:id:kurakurattyo:20211109225118p:plain


23.フェデレーション xmlファイルのダウンロードが開始される。
  xmlファイルのダウンロードが完了したら「OK」をクリック。

f:id:kurakurattyo:20211109225157p:plain

Salesforce】SSO SAML構成

24.手順23の後、Salesforce のログイン画面に遷移するので、Salesforce のシステム管理者アカウントでログインする。
25.ログイン後に「Setup Single Sign On」画面が表示されたら「Yes」をクリック。
26.「Upload SAML signing certificate」画面が表示されたら「Yes」をクリック。
※25、26 は表示されない、または、日本語の可能性もあります。

27.手順23でダウンロードしたフェデレーションxmlファイル を選択して、アップロードする。

f:id:kurakurattyo:20211109225640p:plain


28.「作成」をクリック。
29.下図画面が表示されたら「Yes」をクリック。

f:id:kurakurattyo:20211109225819p:plain


30.「SAML シングルサインオン構成」画面では、「SAML ID 種別」が「アサーションには、ユーザの Salesforce ユーザ名が含まれます」であることを確認して「保存」をクリック。

f:id:kurakurattyo:20211109225955p:plain

SalesforceSAML有効化

31.手順30の後、「設定」>「ID」>「シングルサインオン設定」で「編集」をクリック。
32.「SAML を有効化」にチェックを入れて保存する。

f:id:kurakurattyo:20211109230047p:plain


33.「設定」>「会社の設定」>「私のドメイン」>「認証設定」に移動する。
34.「認証サービス」にある「ログインフォーム」と 有効化したSSO にチェックを入れて保存する。

f:id:kurakurattyo:20211109230317p:plain

・自動ユーザープロビジョニングを有効にする手順

上記までで、シングルサインオンの構成は完了しました。
次に AzureAD に登録されているアカウントを、自動的に Salesforce で利用できるようにしていきます。

Salesforce】 セキュリティトークンを取得する

Azure AD で自動ユーザープロビジョニングを構成する際に、Salesforce のセキュリティトークンが必要になるため事前に取得します。

35.システム管理者アカウントで Salesforce にサインインする。
36.画面右上の自分のアイコン >「設定」をクリック。

f:id:kurakurattyo:20211109230615p:plain


37.「私の個人情報」>「私のセキュリティトークンのリセット」>「 セキュリティトークンのリセット 」をクリック。

f:id:kurakurattyo:20211109230712p:plain


38.Salesforce に登録しているメールアドレスに セキュリティトークン が送信されるので、確認してコピーする。

f:id:kurakurattyo:20211109230814p:plain

【AzureAD】 自動ユーザープロビジョニングを構成する

39.Azure側に戻り、SSO を構成したSalesfroce のアプリケーションを選択する。
40.左側メニューから「プロビジョニング」を選択して、「作業の開始」をクリック。
41.「プロビジョニング モード」を「 自動 」に変更する。
42.「管理者資格情報」に次の構成設定を指定する。
 管理者ユーザー名:システム管理者権限を持つ Salesforce アカウント名
 管理者パスワード:システム管理者権限を持つ Salesforce アカウントのパスワード
 セキュリティトークン:手順38で取得したセキュリティトーク
 テナント URL:(省略)

f:id:kurakurattyo:20211109230901p:plain


43. [テスト接続] をクリックして Azure AD が Salesforce アプリに接続できることを確認する。
44.「保存」をクリック。
45.同画面内の「設定」セクションにある「プロビジョニング」をオンにして保存する。
※保存ができない場合は、しばらく時間をおいてから再度実施してみてください。

これで、プロビジョニングが完了です。
長らくお疲れ様でした。

AzureAD Salesforce プロビジョニング対象について

自動プロビジョニングを構成すると 既定で、 AzureAD に登録されている全ユーザーが Salesforce とのマッピング対象となります。
ただし、AzureAD Free プランの場合、グループはマッピング対象にすることができません

AzureAD と Salesforceマッピング定義は、「プロビジョニング」>「編集」>「マッピング」でマッピングの対象範囲、マッピングする属性値などを編集・確認が可能です。

同期処理は、約 40 分ごとに実行され、[ユーザーとグループ] セクションで SSO が有効になっているユーザーを確認できます。

image.png

・参考URL

Azure Active Directory シングル サインオン (SSO) と Salesforce の統合
Salesforce を構成し、自動ユーザー プロビジョニングに対応させる
SalesforceをAzureADでSSOする構成にしてみた
シングルサインオン 実装ガイド SAML シングルサインオンを使用するサービスプロバイダとして Salesforce を設定