SalesforceからAmazon Connectへシングルサインオンする
📅 2020-07-18
Amazon ConnectとSalesforce連携は非常にニーズがあります。CTI連携に関しては、Amazon Connect CTI Adapter v4 for Salesforce Lightning(2020/07時点)がよく知られていますが、ID管理においてもSalesforceを活用することができます。
SalesforceアカウントはIdPとしても使用することができ、SalesforceアカウントからシングルサインオンでAmazon Connectにログインすることができます。
Amazon Connectインスタンスを作成する
ID管理方式はインスタンス作成時にのみ設定できるので、「SAML 2.0 ベースの認証」を指定してAmazon Connectインスタンスを作成します。その他の設定はお好みで問題ありません。
SalesforceでIdPを有効にする
Salesforceの設定→ID プロバイダ へアクセスします。
IDプロバイダが有効になっていない場合は、「ID プロバイダを有効化」ボタンをクリックします。
IDプロバイダを有効にしたら、「メタデータのダウンロード」をクリックしてIdPメタデータをダウンロードします。
SAML認証のためのIAM設定
Amazon Connectインスタンスを作成したAWSコンソールのIAMにアクセスします。
IDプロバイダの作成
ID プロバイダーへアクセスし、「プロバイダの作成」をクリックします。
- プロバイダーのタイプ:SAML
- プロバイダ名:SalesforceConnect
- メタデータドキュメント:先程ダウンロードしたメタデータファイルを指定
上記設定にてIDプロバイダーを作成します。
作成したIDプロバイダーARNを保存しておきます。
IAMポリシーの作成
ポリシーへアクセスし、「ポリシーの作成」をクリックします。
JSONタブをクリックし、以下のJSONを参考にして入力します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": "connect:GetFederationToken",
"Resource": [
"arn:aws:connect:ap-northeast-1:741648256786:instance/8adc27e5-f488-4250-8b6d-72a6fec8700b/user/${aws:userid}"
]
}
]
}
変更点はResourceの箇所で、
"Amazon ConnectのインスタンスARN/user/${aws:userid}"
として入力します。
ポリシー名は「SalesforceConnectPolicy」で作成します。
IAMロールの作成
ロールへアクセスし、「ロールの作成」をクリックします。
「SAML 2.0 フェデレーション」を選択し、SAML プロバイダーでは上記で作成した「SalesforceConnect」を選択します。
「プログラムによるアクセスと AWS マネジメントコンソールによるアクセスを許可する」を選択してください。
ポリシーのアタッチでは、上記で作成した「SalesforceConnectPolicy」のみを選択します。
ロール名は「SalesforceConnectRole」で作成します。
作成したIAMロールARNを保存しておきます。
Salesforce上で接続アプリケーションの作成
Salesforceの設定→アプリケーションマネージャへアクセスします。
「新規接続アプリケーション」をクリックします。
- 接続アプリケーション名:任意の名前を入力します
- API 参照名:自動的に上記を元に設定されます
- 取引先責任者 メール:責任者のメールアドレスを入力します
- SAML の有効化:チェックを入れます
- エンティティ ID:SalesforceConnect
- ACS URL: https://signin.aws.amazon.com/saml
- 件名種別:「永続ID」を選択します
「保存」をクリックして接続アプリケーションを作成します。
接続アプリケーションの属性設定
Salesforceの設定→接続アプリケーションを管理するへアクセスし、上記で作成したアプリケーションを選択します。
最下部のカスタム属性の「新規」をクリックします。属性を2つ作成します。
- 属性キー:https://aws.amazon.com/SAML/Attributes/RoleSessionName
- 属性値:$User.Email
上記設定で1つ目のカスタム属性を作成します。
再度「新規」をクリックします。
- 属性キー:https://aws.amazon.com/SAML/Attributes/Role
- 属性値:以下の値を設定します。どちらも上記で作成したリソースのARNです
‘IDプロバイダー ARN’ & ‘,’ & ‘IAMロールARN’
また、「Idp-init のログイン URL」をコピーしておきます。
Amazon ConnectへのSSO設定
この時点で、上記でコピーしたIdp-init のログイン URLへアクセスするとAWSコンソールへサインインできると思います。アクセスできない場合は設定を見直してください。
Amazon Connect管理画面へアクセスし、Amazon Connectユーザーを作成します。
この時、ログイン名にはSalesforceでログインする際のメールアドレスを指定します。
最後に、Salesforceの接続アプリケーション設定にて、「開始 URL」を設定します。
「開始 URL」は、上記でコピーした「Idp-init のログイン URL」に「RelayState」を追加します。
Idp-init のログイン URL&RelayState=https://ap-northeast-1.console.aws.amazon.com/connect/federate/**Amazon ConnectのインスタンスID**?destination=%2Fconnect%2Fccp-v2
以下が設定例です。入力し、「保存」をクリックします。
Salesforceからシングルサインオンする
作成した接続アプリケーションへのアクセス権限を与えるため、Salesforceの設定→プロファイルからアクセス権限を追加します。
ここまでできると、アプリケーションランチャーから作成した接続アプリケーションをクリックすると、新規タブでAmazon ConnectのCCPが表示されます。
SalesforceからAmazon Connectへのシングルサインオンの設定は完了です。お疲れさまでした。
まとめ
SalesforceからAmazon Connectへシングルサインオンすることで、すでに使用しているSalesfroceの認証情報を利用することができます。ID管理方式は後から変更することができないので、インスタンス作成時にしっかりと検討することが重要です。
Salesforce画面からCCPにダイレクトにアクセスできるのは便利ですね!