概要
SalesforceのユーザでSAML認証して、外部アプリケーションにログインする方法をメモとして残したいと思います
構成はIDプロバイダをSalesforce、サービスプロバイダをログイン対象のWebアプリケーション
1. ID プロバイダとしての有効化(Salesforce)
2. サービスプロバイダの設定(外部アプリケーション)
以下では外部アプリケーションでの設定になります
設定の詳細は各アプリケーションの手順に従ってください
-
IDプロバイダのログインURL
前述でダウンロードしたメタデータの SingleSignOnServiceのLocationプロパティを使用します
(HTTP-POST、HTTP-Redirect形式かはアプリケーションに応じて選択してください)SAML.xml~ 省略 ~ <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://hogehoge.my.salesforce.com/services/auth/idp/saml2/logout"/> <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://hogehoge.my.salesforce.com/services/auth/idp/saml2/logout"/> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://hogehoge.my.salesforce.com/idp/endpoint/HttpPost"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://hogehoge.my.salesforce.com/idp/endpoint/HttpRedirect"/> </md:IDPSSODescriptor>
```
2. IDプロバイダのログアウトURL
前述でダウンロードしたメタデータの SingleLogoutServiceのLocationプロパティを使用します
3. 証明書のインポート
前述でダウンロードしたSalesforceの証明書をインポート
4. サービスプロバイダのentityIDとAssertionConsumerService(ACS)の取得
3. 新規接続アプリケーションの作成(Salesforce)
-
新規接続アプリケーションの作成
エンティティIDとACS URLはサービスプロバイダで取得した値を入力
件名種別ではSalesforceログイン成功後にログインしたユーザのどの(カスタム)項目を外部アプリケーションに引き渡すのかを選択
名前ID形式やIdP証明書はダウンロードしたメタデータに合わせて選択してください
トラブルシューティング
認証がうまくいかない場合
Salesforceの「ID プロバイダイベントログ」に認証ログが残りますので、Salesforceでの認証で問題の有無を確認できます