フレクトのクラウドblog re:newal

http://blog.flect.co.jp/cloud/からさらに引っ越しています

MuleSoft開発 Salesforceを使用してSSOを実現する - SAML編

こんにちはCI事業部の川瀬です。

今回はSalesforceを使用してSSOを実現したいと思います。具体的はAnypoint Platformにログインするときに「Salesforceアカウントを使用」しますということになります。

具体的には以下のサイトを手掛かりに設定を行うのですが、よく分からないので、図で示しながら、簡潔に説明していきます。 docs.mulesoft.com

では、Salesforceの設定から実施していきましょう。

1. Salesforceで「私のドメイン」を設定する。

f:id:k2-flect:20220115121228p:plain

2. Salesforceで「IDプロバイダの有効化」を有効化する。

f:id:k2-flect:20220115110936p:plain

3. Salesforceで「接続アプリケーション」を作成する。

下記の画面で、「接続アプリケーション名」、「API 参照名」、「取引先責任者 メール」に対し、任意の値を設定してください。 f:id:k2-flect:20220115111718p:plain

下記の画面で、「SAML の有効化」をチェックしてください。そうすると、いくつかの項目は自動で生成されるのでそのままで大丈夫です。 次に、「開始 URL」、「エンティティ ID」、「ACS URL」に対し値を設定していきます。 f:id:k2-flect:20220115111951p:plain

3.1 「開始 URL」の設定

https://anypoint.mulesoft.com」を設定してください。

3.2 「エンティティ ID」の設定

Anypoint Platformの組織ドメインをDOMAIN-NAMEとすると、「DOMAIN-NAME.anypoint.mulesoft.com」を設定してください。 組織ドメインは以下の図の箇所で確認できます。 f:id:k2-flect:20220115112822p:plain

3.3 「ACS URL」の設定

私がいろいろ調べたのですが、よく他の記事では「ACS URLはサービスプロバイダで取得した値を設定してください。」と記載されています。じゃ、MuleSoftの場合は何ですか?となります。 どこかに記載してあるのかもしれませんが、この段階では実は存在しないのです!ここがポイントです。 なので、適当に「http://hoge.hoge.com」で最初は大丈夫です。この状態で「保存」ボタンを押します。

3.4 「メタデータ」のダウンロード

下記の画面(アプリケーションマネージャで作成した接続アプリケーションのManageを選択)で「メタデータのダウンロード」を選択し、Salesforceの設定情報をダウンロードし保存します。 f:id:k2-flect:20220115113741p:plain

4. 「Identity Provider」の設定

ここからは、Anypoint Platformの作業になります。 Access Managementの「Add Identity Provider」→「SAML 2.0」を選択します。 f:id:k2-flect:20220115114127p:plain

4.1 「メタデータ」のアップロード

手順3.4でダウンロードしたメタデータを「Chose file」を選択しアップロードします。 f:id:k2-flect:20220115114459p:plain

4.2 「Name」、「Sign Off URL」、「Audience」の設定

アップロードとすると、以下の図のようになります。アップロードしたほうが遥かに簡単です。 f:id:k2-flect:20220115115755p:plain

「Name」は適当に設定してください。
Sign Off URL」は「≪Issure≫/services/auth/idp/saml2/logout 」と設定してください。
≪Issure≫はメタデータをアップロードした時に設定されています。4.1の図を見てください。

「Audience」は手順3.2と同じで「DOMAIN-NAME.anypoint.mulesoft.com」となります。 設定したら、「Save Changes」を押します。

4.3 「ACS URL」の取得

保存したら、再度、開いてください。図のようにACSが設定されています。 f:id:k2-flect:20220115120434p:plain

5. Salesforceに「ACS URL」を設定する

手順3.3で「http://hoge.hoge.com」を設定しましたよね。これを手順4.3で取得した値に置き換えます。

6. SSOの確認

Anypoint Platformにログインしている場合は、一旦、ログアウトし、下記のURLブラウザに入力してください。 https:/anypoint.mulesoft.com/accounts/login/DOMAIN-NAME
DOMAIN-NAMEは手順3.2で確認したもの

Salesforceのログイン画面がでてきてログインできましたか?成功するとAnypoint Platformのユーザーに以下のようなユーザーが登録されています。

f:id:k2-flect:20220115121353p:plain

今回は、SAMLを使用しましたが、次回はOpenID Connectで設定する方法を紹介します。こちらも、少しクセがあります。