Amazon ConnectとOneLoginをSAML連携してユーザー認証を設定してみた

記事タイトルとURLをコピーする

この記事の最新版が、以下に公開されております。
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からログアウトした後、再度ログインする必要があります。
※これにより、トークンに設定されたセッションタイマーがリセットされます。