1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【Entra ID ハンズオン】無料でできるEntra IDによるSSO手順 (2/3)

Last updated at Posted at 2024-06-22

1.はじめに

本記事は、以下記事の続編となっています。前回の記事では、RSA Test Service ProviderとEntra IDとのSAML連携を取り上げましたので、今回は、Salesforce Developer EditionとEntra IDとのSAML連携とSCIM連携のハンズオン手順に関して、説明いたします。

2. Salesforce Developer Editionの環境作成

まずは、SalesforceのDefeloper Editionに登録するため、以下URLにアクセスし、必要情報を入力します。

image.png

必要情報の入力後、数分待っていると、メールを受信します。
このメール中には、「アカウントを確認」というリンクボタンがあるので、クリックしてアカウントの確認を完了させましょう。このアカウントは、システム管理者権限を有するので、今後のSalesforceの設定に利用致します。
また、払い出されたSalesforceの環境は、テナント単位でURLが異なっています。例えば、https://[テナント固有].develop.my.salesforce.com のようになっております。

image.png

リンク先のページに遷移すると、ログイン用のパスワードを登録します。

image.png

パスワード入力が完了しましたら、Salesforceの管理者画面にアクセスすることができます。
もし、ユーザ用のコンソール画面の場合は、右上の歯車のアイコンから、設定画面に移動することができます。

image.png

以下画像が設定画面です。サイドメニューを利用して各種設定をすることができます。

image.png

3.SAML設定手順

3-1.Entra ID側のSSOの設定

それではSAML設定に実施していきます。まずは、Salesforceの設定画面において、サイドメニューから「設定 > 会社の設定 > 私のドメイン」をクリックします。画面中央に表示された「私のドメインの名前」をメモします。
今回はDeveloperエディションを利用しているためドメイン部分に [テナント固有]-dev-ed.developがついたドメインとなっています。

image.png

次に、Microsoft Entra 管理センターに移動して、「アプリケーション > エンタープライズアプリケーション」を選択して、ギャラリーの中からSalesforceを探して選択して、「作成」をクリックします。

image.png

「ユーザとグループ」で、SSO対象のユーザを追加しておきます。なお、Salesforce側にも同一のユーザを手動で作成するか、SCIMでEntra IDからSalesforce側にユーザを作成しておく必要があります。

image.png

作成したアプリケーションの画面で、「シングルサインオン > SAML」を選択します

image.png

基本的なSAML構成において、Salesforceでメモをした情報を入力していきます。ここで入力する情報は、Salesforce側の私のドメイン通りで入力しましょう。Developerエディションでは、-dev-ed.develop.my.salesforce.com のように通常のテナントで生成されるドメインとは異なるドメインが割り当てられていますので、注意する必要があります。

名前
識別子(エンティティID) [テナント固有]-dev-ed.develop.my.salesforce.com
応答URL (Assertion Consumer Service URL [テナント固有]-dev-ed.develop.my.salesforce.com
サインオンURL [テナント固有]-dev-ed.develop.my.salesforce.com

image.png

次に「SAML署名証明書 > SAML応答とアサーションへの署名」を選択し、「保存」をクリックします。

image.png

「フェデレーション メタデータ XMLのダウンロード」を選択し、フェデレーション メタデータ XMLをダウンロードします。

image.png

そして、「Salesforceのセットアップ」にあるログインURL、Microsoft Entra 識別子、ログアウトURLをメモしておきます。これらの情報は、Salesforce側に入力をします。

image.png

3-2.Salesforce側のSSOの設定

それでは、Salesforce側のSAML設定を実施していきましょう。
まずは、「ID > シングルサインオン設定」から「編集」をクリックします。

image.png

「SAMLを有効化」にチェックを入れます。

image.png

それでは、「保存」を押し、1つ前の画面に戻り、「メタデータ ファイルから新規」 をクリックします。

image.png

「ファイルの選択」 をクリックして、Entra管理センターからダウンロードしたフェデレーションメタデータ XML ファイルをアップロードし、「作成」 をクリックします。

image.png

すると、SAMLシングルサインオン構成の画面に遷移し、各フィールドが自動で設定されていることが確認できます。そのまま保存でも問題ないですが、「名前」のフィールドは、ユーザのログインフォームに表示される名前にもなるので、分かりやすい名前に変更しておいてもよいかもしれません。
また、画像下部にあるJIT(ジャストインタイムのユーザプロビジョニング)を設定すると、SP側(今回はSalesforce側)にユーザがなくても、Entra ID側にユーザがある状態で、Entra ID側のユーザを利用すれば、SP側にSAMLをする際にユーザを生成するようなことができるものとなります。今回はSCIMによるプロビジョニングをしたいため、設定はせずに完了としています。

image.png

ちなみに、手動で入力した場合は以下のような対応関係になります。
左がEntra ID管理センターのSAML設定画面で、右がSalesforceのSAMLシングルサインオン構成の画面です。

image.png

さらに、エンティティID部分は、Salesforce自身を示します。具体的には、私のドメインに記載されているURLに、”"https://""を付け加えたURLとなります。

image.png

最後に、Salesforceの再度メニューで、「会社の設定 > 私のドメイン > 認証の構成 > 編集」をクリックします。

image.png

認証サービスのところで、先ほど作成した認証サービスにチェックを入れます。これで、ユーザがサインインする際のログインフォームに本SSO認証のログイン画面が表示されるようになります。
つまり、Salesforce自体は、SPとしては、複数のIdPと連携できるということでもあります。

image.png

IdP連携して、SAMLによってSalesforceにログインする際のログインフォームは以下のようになります。上の部分は、ユーザ名とパスワードによるログインとなっており、下の部分はSAMLによるログインになっています。さらに、複数のログインボタンがあるように、任意のIdPと連携したSAMLによるログインを実施することが可能となります。

image.png

4.SAMLの動作確認

4-1.SAML用のユーザ作成

では、salesforce側にユーザを作っておきます。このユーザは、Entra ID側のユーザ名がabc@abc.onmicorosoft.com であれば、salesforce側も abc@abc.onmicorosoft.com というユーザ名にしておく必要があります。
Salesforceの設定画面で、「管理 > ユーザ > 新規ユーザ」を選択し、必要情報を入力し、ユーザ作成を完了します。その後、画面下部の「パスワードをリセットしてユーザに通知する」にチェックを入れると、作成したユーザにメール通知が実行されます。作成したユーザのメールボックスを確認し、メールが届いていましたら、メール中のパスワードを生成するリンクをクリックし、IDの検証を完了させます。

image.png

そして、対象となるユーザを、Entra IDにおいても、「アプリケーション > エンタープライズアプリケーション > [対象となるアプリ] > ユーザとグループ」から、割り当てておきましょう。
これでこのユーザを利用して、SalesforceにSAMLによるログインをすることができるようになりました。

image.png

4-2.SAML-tracerとは

SAMLの動作確認にあたって、Google chromeの場合は、SAML-tracerという拡張機能があります。
下記URLにアクセスしてGoogle chromeにインストールしてみましょう。

image.png

4-3.SAML-tracerを利用したSAMLのパケットキャプチャ

インストール後、拡張機能のアイコンをクリックすることで、SAML利用時のシーケンスを確認することができます。通常のパケットキャプチャ―と異なり、SAMLに関係するところを抽出して、重要なパラメータを抽出してくれたりします。
SAMLにおいて、重要な通信内容として、AuthnRequestとSAML Responseの2つがありますので、SAML-tracerを利用して、こちらの内容を見てみましょう。以下リンク先に簡単なシーケンス図を記載しています。

それでは、今回設定したSAMLのパケットを見てみます。以下は、SAMLにおけるAuthnRequestとなります。このAuthnRequestは、SP側から返されたAuthnRequest情報をIdP側、つまり、Entra ID側に渡している(リレーしている)ことがわかります。
Destinationと記載されている部分がEntra IDを示しており、AssertionConsumerServiceURLという部分が、Salesforce側のSAML Responseを返すところを示しております。そして、Issuerは、SP側のSalesforceになっています。

image.png

次に、SAML Responseを確認します。このSAML Responseは、IdP側から渡されたAssertionをSP側に渡している(リレーしている)ことがわかります。実際のAssertion自体は、情報量が多いので、SAML-tracerのSummaryを見てみます。
今度は、Destinationが、Salesforce側になっており、IssuerがEntra IDになっています。
加えて、AttributeStatementのところには、Entra ID側のテナント情報に加えて、SAMLを利用したユーザ情報(emailaddressなど)も含まれていることがわかります。

image.png

5.SCIM

5-1.SCIMとは

SCIMとは、System for Cross-domain Identity Managementの略称となります。例えば、Entra IDにあるユーザを自動で、Salesforceの方にユーザを作ることができます。先ほどの「4-1.SAML用のユーザ作成」では手動で、Salesforce側のユーザを作成しましたが、SCIMを利用することで自動でSalesforce側のユーザを作ることができます。

5-2. SCIMの設定手順

Salesfore側のユーザアイコン中にある「設定」をクリックします。今までは、歯車のところでしたら、ユーザアイコンのところにある設定を押すことに注意しましょう。

image.png

「私の個人情報 > 私のセキュリティトークンのリセット」から、「セキュリティトークンのリセット」をクリックします。すると、ユーザにセキュリティトークン情報が送信されます。このセキュリティトークン情報をメモしておきます。

image.png

Entra管理センターに移動し、対象のアプリの「プロビジョニング」から「作業の開始」を選択します。

image.png

プロビジョニングモードを「自動」に変更し、管理ユーザ名、管理者パスワード、シークレットトークン、テナントのURLを入力します。このときのシークレットトークンは、先ほど発行したセキュリティトークンのこととなります。また、テナントのURLは、Salesforceの私のドメインのURLに、""https://""を付け加えたものとなっています。
入力後、プロビジョニング状態を「オン」にすることで、自動的に、Entra IDからSalesforceへのユーザプロビジョニングが開始されます。問題がない場合は、プロビジョニングログからユーザプロビジョニングの結果を確認することができます。

image.png

おわりに

前回のRSA Test Service ProviderよりもSP側の設定が増えたため、少し大変だったかもしれません。SAMLの設定はパラメータが1つでも違うと動作しなくなってしまうため、設定に注意する必要があります。その際に、SAML-tracerを利用して、トラブルシュートを行うのも1つかと思います。
次回は、DocuSignのSSOの記事となります。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?