この記事の最新版が、以下に公開されております。
http://blog.serverworks.co.jp/tech/2018/09/14/connect-onelogin-saml/
宮澤です。
今回はAmazon Connectのユーザー認証を、シングル・サイン・オン サービスのOneLoginと連携してSAML認証を行う手順を紹介します。
1.Amazon Connectの作成
Amazon Connectの画面に移動し"今すぐ始める"を押します。
"SAML2.0 ベースの認証"を選択して、アクセスURLを入力して"次のステップ"を押します。
このタイミングで、管理者を作成する場合は"新しい管理者の追加"を選択して、項目を入力します。
作成しない場合は”これをスキップ”を押して”次のステップ”を押します。
次にテレフォニーオプションを設定します。
今回は発着信両方ともConnectを使う想定なので、両方ともチェックして"次のステップ"を押します。
ログの保存先の設定が表示されますが、デフォルト設定を利用するため"次のステップ"を押します。
Connectの構成確認画面が表示されるので、問題がなければ"インスタンスの作成"を押します。
ユーザー作成
Connectの管理画面から、作成したインスタンスを選択します。
”概要 > 管理者としてログイン”を押します。
"ユーザー > ユーザー管理 > 新しいユーザーの追加"を押します。
ユーザー情報を確認し、問題なければ"ユーザーの作成"を押します。
ユーザーを作成する際、OneLogin上に存在するユーザーと姓、名、メールアドレスが一致するように作成してください。
作成するユーザー情報が表示されるので、問題がなければ”ユーザーの作成”を押します。
2.AWSアカウントとOneLoginをSAML設定
OneLogin側でコネクタ作成
Connectと連携するためのOneLoginのコネクタは、カタログに公開されていないものを利用します。
今回記載している内容で設定を行う場合は、弊社にお問い合わせください。
今回利用するコネクタを開き、Display NameにOneLogin上の表示名を設定し"SAVE"を押します。
SAVEを押すと以下の画面に遷移するので、"MORE ACTIONS>SAML Metadata"を押してXMLファイルをダウンロードします。
※後ほどAWSマネジメントコンソールの設定で利用します。
AWS側のIDプロバイダ設定
IDプロバイダの作成
マネジメントコンソールにログイン後IAMの画面に移動し、"IDプロバイダー>プロバイダの作成"を押します。
プロバイダタイプは"SAML"を選択し、プロバイダ名を任意で設定します。
メタデータドキュメントは、先程OneLoginからダウンロードしたファイルを指定して"次のステップ"を押します。
最後に確認画面が表示されるので、問題なければ"作成"を押します。
IAM ポリシーの作成
ConnectをSAML経由で利用する場合、以下のIAMポリシーをロールに付与する必要があるので、任意の名前で以下の2つを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": [ "arn:aws:connect:RegionID:AccountNumber:instance/ConnectInstanceID/user/${aws:userid}" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement2", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": "*", "Condition": { "StringEquals": { "connect:InstanceId": "ConnectInstanceID" } } } ] }
IAM Roleの作成
IAMの画面で"ロール > 新しいロールの作成"を押します。
”SAML2.0 フェデレーション”を選択し、"SAMLプロバイダー"の値を先ほど作成した、IDプロバイダーを指定します。
そして、”プログラムによるアクセスとAWSマネジメントコンソールによるアクセスを許可する”を選択して"次のステップ:アクセス権限"を押します。
該当IAMロールで利用する権限を設定します。
先程作成した2つのIAMポリシーを選択して"次のステップ : 確認"を押します。
最後に、ロール名を入力して"ロールの作成"を押します。
OneLoginのParameter設定
OneLoginのコネクタ設定画面に戻り"Parameters"タブを開きます。
ParametersタブではSAML認証を行うときに利用する以下の3つの用に設定します。
- Amazon Username UsernameAWS上でのユーザーの表示名) : Email
- Role : arn:aws:iam::アカウントナンバー:role/作成し/作成しロール名,arn:aws:iam::アカウントナンバー:saml-provider/作成したIDプロバイダ名
- RoleSessionName(AWS上でのユーザーの表示名) : Email
次に"Configuration"タブに移動し、”RelayState”に以下のようにURLを入力します。
https://region-id.console.aws.amazon.com/connect/federate/instance-id
OneLoginからCCPへ直接アクセスさせる場合は、以下のURLを指定します。
https://region-id.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fconnect%2Fccp
最後に"Access"タブを押して、Connectを利用するユーザーが指定されているRoleを指定し"SAVE"を押します。
3.ログイン確認
OneLoginからConnectのAWSアカウントにログインします。
SAMLログインが実行され、以下のダッシュボードに移動することができます。
注意事項
SAMLベースでConnectを作成すると、以下のような通常のログインURLは利用できない状態になります。
https://ConnectAlias.awsapps.com/connect/login
また、Amazon Connectセッションは、ユーザーがログインしてから10時間後に失効します。
10時間後、ユーザーは現在通話中であっても自動的にログアウトされてしまいます。
エージェントに10時間以上ログインさせる予定の場合は、セッションが終了する前に、Amazon ConnectおよびOneLoginからログアウトした後、再度ログインする必要があります。
※これにより、トークンに設定されたセッションタイマーがリセットされます。