2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

AmazonConnectとSalesforceのSSOをOktaを利用して実装してみた

◆何を作ったのか

  • コールセンターのオペレータ等がAmazonConnectとSalesforce両方にログインするのは不便なので、Oktaを利用してSSOにて1回のログインで済む様にしました。

◆なぜOkta

  • Oktaは世界的にはスタンダードなクラウドSSOツールであり、無料トライアルが可能であることから利用しました。(今回はフリートライアル30日版にて作成しました)

◆ユーザシナリオ

image.png

①オペレータはOktaにログインします。
②Oktaの画面からAmazonConnectやSalesforceにログイン無しで入ることができます。

◆作成手順

AmazonConnectの設定、Salesforceの設定を簡単に記載します。

AmazonConnectの設定

  1. AWSでAmazon Connectのインスタンスを作成 【AWS設定】
     まずは、Amazon ConnectのコンソールからOktaと連携する新しいインスタンスを作成します。 ID管理は SAML 2.0 ベースの認証 を選択してください。(途中で変更できないので注意!!)
    image.png


    Amazon Connect インスタンスにユーザーを追加します。AmazonConnectのログイン名とOktaユーザー名を合わせます
    image.png

  2. Oktaでメタデータを取得【Okta設定】
     Oktaのログイン用URLへアクセスし右上の管理を選択。(場合によってはマルチファクター認証を求められることがありますが、基本は指示に従って設定してください。)
    image.png
     アプリケーションー>Add Applicationで、[Amazon Web Service ]を選択し、Your AWS Login URL にAWSマネジメントコンソールのURLを入力して次へ
    image.png
    SIGN ON METHODSで[SAML 2.0]を選択し、[Identity Provider Metadata]リンクの内容(xmlファイル)をファイルとしてローカルマシンに保存します
    image.png
    この画面は、この後も使用するので閉じないように注意してください

  3. AWSでOkta用のIAM IDプロバイダーとロールを作成 【AWS設定】
     IAM管理画面から、IDプロバイダを作成します。その際、Oktaで保存したメタデータ(xmlファイル)をアップロードします。
     次に、ロールを作成します。エンティティの種類に[SAML2.0 フェデレーション]、SAMLプロバイダーに追加したIDプロバイダーをそれぞれ選択します
    image.png
    特定の Amazon Connect インスタンス内のすべてのユーザーに対してフェデレーションが有効化されるようにアクセス権限を設定します。設定手順は以下を参照
    ID プロバイダーと AWS の間で SAML フェデレーションを有効にする
    ポリシーの作成から下記のようにJSONを記載してください。arnの部分はSSOしたいAmazonConnectのarnの末尾に/user/${aws:userid}を追記してください。
    image.png

  4. OktaでAmazonConnectへSSOするアプリケーションを設定 【Okta設定】
     Oktaでメタデータを取得で使用した画面に戻って、[Default Relay State]にAmazon Connect インスタンスをポイントするように設定します。
    リレーステートに使用する URL は、次のとおりです。

https://region-id.console.aws.amazon.com/connect/federate/instance-id

region-id を、Amazon Connect インスタンスを作成したリージョン名 (たとえば、米国東部を指す us-east-1) で置き換えます。instance-id をAmazonConnectのインスタンス ID で置き換えます。
image.png
[Identity Provider ARN]に、IAM で作成したIDプロバイダーのARNとロールのARNをカンマ区切りで入力して、アプリケーションの設定は完了です。
image.png
追加したアプリケーションにユーザを割り当てたら終了です。
image.png

Salesforce.com を追加

さらに、Salesforceを追加してみます。

  1. Salesforceでマイドメイン・ユーザを追加【SFDC設定】
     [設定]→[会社の設定]→[私のドメイン]にて自分のドメインを作成してください。[設定]→[ユーザインターフェース]→[サイトおよびドメイン]→[ドメイン]で、ドメイン名を確認できます。
     [設定]→[ユーザ]→[ユーザ]にてユーザを追加します。Salesforceのユーザ名とOktaユーザー名は同一としてください。
    image.png

  2. Oktaで証明書を取得【Okta設定】
     アプリケーション追加で、[Salesforce.com]を選択しカスタムドメインに先ほど作成したカスタムドメインを入力して次へ
     SIGN ON METHODSで[SAML 2.0]を選択し、[View Setup Instructions]選択すると新たに画面が起動します。起動元の画面はこの後も使用するので閉じないように注意してください
    image.png
     起動した画面から、[Identity Provider Certificate]リンクの内容をファイルとしてローカルマシンに保存します。同時に[Issuer], [Identity Provider Login URL], [Custom Logout URL] の値を保存しておきます。
    image.png

  3. Salesforceでシングルサインオンの設定【SFDC設定】
     Salseforceの[設定]>[ID]>[シングルサインオン設定] 画面で、SAML シングルサインオン構成を新規作成します。
     IDプロバイダ証明書の[ファイルを選択]で、Okataの証明書ファイルを選択します。発行者、IDプロバイダのログインURL、カスタムのログアウトURLに、2)で保存した値をそれぞれ入力し、エンティティIDにはドメイン名(https://【customDomain】.my.salesforce.com)を設定して保存します。
    URLの最後に/を入れるとエラーになるので注意してください。
    image.png
    保存すると、エンドポイントのログインURLが表示されるので値を保存します。
    image.png

  4. OktaでSalesforceへSSOするアプリケーションを設定【Okta設定】
     Oktaの画面に戻り、[Login URL]に、先ほど保存したエンドポイントのログインURLを設定して、アプリケーションの設定は完了です。
    image.png
    追加したアプリケーションにユーザを割り当てたら終了です。
    image.png

◆完成

 Oktaの自分のURLにログインすると、下記のような画面になります。
image.png
 それぞれのアプリ名をクリックするだけでログインできるようになりました!

参考にさせていただいたサイト

https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/configure-saml.html
https://dev.classmethod.jp/cloud/aws/configure-saml-for-amazon-connect/
https://www.fnifni.net/aws%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%ABokta%E3%81%A7sso%E3%81%99%E3%82%8B/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?