SAML IDプロバイダーとしてSalesforceを設定する
以下の手順を完了して、SAML IDプロバイダーとしてSalesforceを設定します。
Salesforceの証明書とメタデータを取得します。
Auth0をサービスプロバイダーとして設定します。
SalesforceIDプロバイダ(IdP)を設定します。
Salesforceのユーザーに権限を付与します。
Salesforce IdPへの接続をテストします。
前提条件
Salesforce.comのアカウントを登録します。IDプロバイダーサポートが含まれているいずれかのアカウントタイプを選択する必要があります。
Salesforceの証明書とメタデータを取得する
Salesforceアカウントにログインします。
Salesforceドメインを作成します。
Salesforceのドメイン
https://{yourDomain}.my.salesforce.com
にログインし、右上にある[Setup(設定)]をクリックします。クイック検索ボックスに「Single Sign-On Settings(シングルサインオン設定)」と入力し、[Single Sign-On Settings(シングルサインオン設定]を選択してから[Edit(編集)]をクリックします。
SAML SSO設定を表示するには、[SAML Enabled(有効なSAML)]を選択します。
デフォルトの証明書を選択し、[Save(保存)]をクリックします。
[Download Certificate(証明書のダウンロード)]をクリックして、IDプロバイダーの証明書をダウンロードします。
[Download Metadata(メタデータのダウンロード)]をクリックして、IDプロバイダーのメタデータをダウンロードします。
Auth0をサービスプロバイダーとして設定する
SSOのためにSalesforceのIDプロバイダーと通信するサービスプロバイダーとして、Auth0を設定します。
[Dashboard] > [Authentication(認証)] > [Enterprise(エンタープライズ)]に移動し、[SAML]をクリックします。
[Create Connection(接続を作成)]をクリックします。
設定ウィンドウで、以下の情報を入力します。
設定 説明 Connection Name(接続名) 接続の名前。たとえば、SFIDP。 Email Domains(メールドメイン) ユーザーがログインに使用するメールドメイン名を入力します。たとえば、ユーザーが abc-example.com
のメールドメイン名を持っている場合は、それをこのフィールドに入力します。複数のドメインを入力できます。Sign In URL(サインインURL) Salesforceからダウンロードしたメタデータファイルを開き、 SingleSignOnService
バインディングを含む行を見つけます。この行のlocation
属性の値は、サインインURLです。次のようになります:https://{sf-account-name}.my.salesforce.com/idp/endpoint/HttpRedirect
で{sf-account-name}
はSalesforceドメイン名です。Sign Out URL(サインアウトURL) サインインURLに入力したのと同じURLを入力します。 [Certificate(証明書)]では、Salesforceからダウンロードした証明書を次のコマンドで.pem形式に変換します。
openssl x509 -in original.crt -out sfcert.pem -outform PEM
ここで、original.crt
はダウンロードした.crtファイルのファイル名です。[UPLOAD CERTIFICATE(証明書をアップロード)]をクリックし、先ほど作成した
.pem
ファイルを選択します。(上記の例ではsfcert.pem
です)。残りのフィールドは、今は無視してかまいません。[Save(保存)]をクリックします。
[CONTINUE(続行)]をクリックします。ウィンドウが開き、Auth0サービスプロバイダーのSAMLメタデータが表示されます。このウィンドウは開いたままにしておいてください。設定を完了するには、この情報の一部をSalesforceに入力する必要があります。
Auth0のSAML接続用のメタデータにアクセスするには、URL構文のhttps://{yourDomain}/samlp/metadata?connection={yourConnectionName}
を使用します。
IDプロバイダーとしてSalesforceを設定する
Auth0からSAMLベースの認証要求を受信し、応答できるように、Auth0のメタデータを使用してSalesforceを設定します。
salesforce.comにアクセスします。
[Setup(設定)] > [Manage Apps(アプリの管理)]に移動します。[Connected Apps(接続アプリ)]をクリックします。
新しい接続アプリを作成し、以下のフィールドに入力します。
設定 説明 Entity ID(エンティティID) urn:auth0:YOUR_TENANT:YOUR_CONNECTION_NAME
ACS URL https://{yourDomain}/login/callback
Subject Type(サブジェクトタイプ) Persistent ID
Name ID Format(名前のID形式) emailAddress
があるものを選ぶIssuer(発行者) https://{your-saleforce-domain}.my.salesforce.com
[Save(保存)]をクリックして設定を完了します。
Salesforceのユーザーに権限を付与する
salesforce.comにアクセスし、[Setup(設定)]をクリックします。
[Manage Users(ユーザーの管理)]で[Profiles(プロファイル)]をクリックします。
スクロールダウンして、[Standard User(標準ユーザー)]というプロファイル(2ページ目)を見つけます。
[Edit(編集)]をクリックしてプロファイルを編集します。
[Connected App Access(接続アプリのアクセス)]セクションまでスクロールダウンします。
接続アプリの名前の横にあるボックスにチェックマークを入れて、このプロファイル用に有効にします。
[Save(保存)]をクリックします。
[Manage Users(ユーザーの管理)]で[Users(ユーザー)]をクリックします。
[Edit(編集)]をクリックして、テストユーザーを編集し、プロファイルを[Standard User(標準ユーザー)]に設定します。Salesforceの別のプロファイルを使用するには、そのプロファイル用の接続アプリを有効にし、Salesforce IDプロバイダー経由でログインするすべてのユーザーがそのプロファイルを持っていることを確認します。
Salesforceへの接続をテストする
Auth0 Dashboardの[Authentication(認証)] > [Enterprise(エンタープライズ)]セクションに移動します。[SAMLP Identity Provider(SAMLP IDプロバイダー)]を選択します。
先ほど作成したSAML接続の[Try(試行)]ボタンをクリックします。これで、Auth0からSalesforceのログインページにリダイレクトされるはずです。
Salesforceのログイン画面が表示されたら、Salesforceアカウントを作成した際に指定した資格情報でログインします。
SAMLの設定に問題がなければ、[It works!!!(有効!!!)]と表示されたAuth0ページにブラウザーがリダイレクトされます。このページには、Salesforce IDプロバイダーからAuth0に送信されたSAML認証アサーションの内容が表示されます。
有効にならなかった場合は、上記のステップを再度確認し、以下のトラブルシューティングのセクションを参照してください。
SSOをトラブルシュートする際は、多くの場合インタラクションのHTTPトレースをキャプチャして、それをHARファイルに保存することが役立ちます。詳細については、HARファイルの生成と分析をお読みください。
httpトレースツールを入手したら、ログインシーケンスを最初から最後までキャプチャし、GETのシーケンスをトレースで分析します。元のサイトからIDPへのリダイレクト、ログインする必要がある場合は資格情報の投稿、そしてコールバックURLへのリダイレクトが表示されます。HARファイルにはSAML応答も含まれます。
ブラウザーでCookieとJavaScriptが有効になっていることを確認してください。
Salesforceのユーザープロファイルに、Salesforce IDP経由でログインする権限があることを確認してください(上記セクション4を参照)。