Amazon Connect 使用SAML2 IDP登陆
Amazon Connect 使用SAML2 IDP登陆
Amazon Connect可以为企业提供呼叫中心服务,是企业接入用户的一个非常好的选择。本文将讨论如何在Amazon Connect中启用基于SAML2.0的IDP登陆。
创建Amazon Connect实例
前提: 你需要有一个已经绑定了信用卡的AWS账户
本文的账户选择的数据中心是法兰克福,所以示例的region都是eu-central-1
我们需要有一个Amazon Connect的实例,具体创建步骤如下:
-
登陆AWS后,在AWS Management Console选择Amazon Connect服务
-
点击页面中间的Get started以开始创建实例
-
选择SAML 2.0-based authentication的方式进行用户身份认证,自己起一个自己喜欢的实例明,然后Next Step
-
后续的步骤比较简单,跟着走就好了,不需要特殊设置,直到完成。完成后页面会跳转到Amazon Connect的欢迎页。
-
后续就是申请电话号码,创建接线员账户,配制电话路由规则等,大家可以自行查阅AWS官方文档,这里不再赘述。
配制IDP
不同的IDP配制起来可能不太一样,但是基本都是交换应用程序的metadata.xml与IDP的metadata.xml里面的信息。本文以AWS自己的SSO服务为例。
-
进入AWS的SSO服务,
-
创建一个Application用来服务我们创建的Amazon Connect实例,创建的参数都可以使用默认配置,除了RelayState需要使用:https://
region-id
.console.aws.amazon.com/connect/federate/instance-id
-
完成之后可以把通过点击AWS SSO metadata模块下的Download metadata file下载下来
启用IAM管理
启用AWS的IAM服务,在Identify Providers面板选择Create Provider创建一个新的IDP,类型选择SAML,metadata文件是上一部中我们下载下来的xml文件。
然后,创建一个Policy,创建步骤:
-
在IAM面板,选择Policies,然后点击Create Policy
-
在Create Policy页面选择JSON面板,输入以下内容:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement2",
"Effect": "Allow",
"Action": "connect:GetFederationToken",
"Resource": "*",
"Condition": {
"StringEquals": {
"connect:InstanceId": "<这里是你的amzon connect实例的id>"
}
}
}
]
}
`connect:InstanceId`是你的amazon connect实例的id,你可以在amazon connect服务页面,选中你的实例,在instace的overview页面中ARN的最后一部分就是你的instance id
- 点击Review Policy然后给你的策略起个名字,选择Create Policy就创建好了
然后我们需要创建一个role,并与刚刚创建的策略关联起来,具体步骤如下:
-
在IAM面板,选择Roles,然后点击Create Role
-
在Create Role页面选择SAML2 Federation,在SAML Provider中选择我们创建的IDP,允许变成和控制台访问
- 在Attach Permissions Policies面板中勾选我们刚刚创建的Policy,然后下一步,然后Review,没问题的话起个名字,一个Role就创建好了。
更新IDP中我们创建的Application的配置
现在,回到我们在SSO中为amazon connect创建的application,在Attributes Mapping面板中,添加下面两个字端:
-
Key: https://aws.amazon.com/SAML/Attributes/RoleSessionName Value: ${user:email}
-
Key: https://aws.amazon.com/SAML/Attributes/Role Value: <IAM role ARN>,<IAM identity provider ARN>
保存。
添加用户
至此,我们就完成了所有基本配制,下面就是用户的管理。
amazon connect
进入amazon connect的用户管理面板添加用户,由于启用了IDP,这时候是不需要为用户创建密码的
SSO
在SSO服务的Directory面板中添加用户,你可以使用AWS的directory服务,也可以使用自己的directory服务。
NOTE:
amazon connect中创建的用户的用户名和SSO中创建的用户的邮箱必须要相同,才可以从SSO映射过去。
测试
这时候,我们再次打开amzon connect的登陆页面,发现它并没有帮我们跳转到登陆页面,而是出现了以下情况:
image-20191004165819843.png这是因为Amazon Connect不会自己初始化SSO请求的流程,必须从IDP端发起,在这个例子中,我们可以通过SSO服务中,directory面板中的User portal URL来登陆(这一点真的很菜!)。