GSuiteの認証を利用してAmazonConnectにログインするための認証設定手順、いわゆるシングルサインオンになる。
よいこと。
AmazonConnectのユーザーのパスワードなどを管理しなくてよくなる。オペレーターはGSuiteからログインできる。
だがしかし、AmazonConnectのユーザーの追加/削除はしなければならないぞ。
ここに設定方法が書いてあるんだがいまいちわかりづらいので雑に残しておく。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/configure-saml.html
1. SAML2.0でAmazonConnectインスタンスの作成(AWS側)
AmazonConnectのインスタンス作成時に何でID管理するかを選択できる。
そこでSAML2.0ベースの認証を使うようにする。
後から変えることができないので注意
2. ユーザーカスタム属性の追加(GSuite側)
AWS側に渡す値を格納するためのカスタム属性の追加をする。
具体的にはAWSのRole名とsaml-provider名を入れる。
GSuiteの既存フィールド(役職など)を使ってもよいが、あとあと困る可能性があるよ。
そのほかにセッション時間なども設定できる。
今回はAWSSAMLRoleって名前でカスタム属性を追加した。
3. SAMLアプリを追加する(GSuite側)
admin.google.comにてSAMLアプリを追加する。
AWSのテンプレートがあるのでそれを選択。
https://aws.amazon.com/SAML/Attributes/RoleSessionName はメインのメールアドレス、https://aws.amazon.com/SAML/Attributes/Role は↑で追加したAWSSAMLRoleを設定。
開始URLはまだ空欄でおk
SAMLのIDPメタデータをダウンロードできるのでしておく。(2019/1/20現在、後からDLできない。証明書のリンクになっている。バグってる?気をつけろ。)
4. IAMのIDプロバイダーの作成(AWS側)
IAMのIDプロバイダーを追加する。プロバイダーのタイプはSAMLで、プロバイダ名は適当、メタデータドキュメントに↑でDLしたIDPメタデータをアップロードする。
- SAML フェデレーションのロールとポリシーの作成(AWS側)
1つロールを作って、ポリシーを↓の通りに設定する。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/configure-saml.html#enable-saml-federation
権限はなくておk。
6. GsuiteのSAMLアプリの開始URLにとび先URLを設定する(AWS側)
こいつ。
https://us-east-1.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fconnect%2Fccp
https://us-east-1.console.aws.amazon.com/connect/federate/instance-id?destination=%2Fconnect%2Fccp
のリージョン部分とinstance-id(AmazonConnectのインスタンスID)を置き換える。
7. ユーザーを作る(AmazonConnect)
AmazonConnectにGSuiteのメールアドレスのユーザーを作成する。
8. ログインしてみる。(GSuite側)
Googleの右上の□が9個のメニューボタンにSAMLアプリで追加したアプリがあるので、ログインしてみる。
まとめ
SAMLを理解していないからなのかややこしい。
5.のロールをいじるとAmazonConnect側のユーザーを一度消して作り直さないと認証できないので注意してくれ。(その旨のエラーメッセージがでない。)
もし躓いてしまったら、GsuiteのSAMLアプリの開始URLを空欄にしておけば、AAWSのconsoleまででログイン処理が止まるので、そこまでを確認するのがよいと思う。
そうすればGoogle側の設定はある程度できているので、フェデレーションとAmazonConnectユーザーの問題となる。