Azure AD 与 AWS IAM 集成实现SSO—下(AWS部分)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure AD 与 AWS IAM 集成实现SSO—下(AWS部分)相关的知识,希望对你有一定的参考价值。
再回顾一下架构,我们都要做什么,别乱:
看来在AWS上做的工作要多一些。
登录AWS控制台:
进入到IAM这个服务:
在配置提供程序中,选择SAML,提供商名称自定义,比如WAAD,将刚才下载的元数据文档XML,导入到进去。
创建成功后如下图所示:
然后我们创建策略,目的是通过AAD中的用户(我们以John为例),他可以在AWS上执行什么操作,给他什么权限:
为了测试,我们只赋予它ListRoles的权限,如下图:也就是这个用户通过SSO登录到AWS上,只能查看AWS role的权限,其他的什么都做不了。
把下面JSON字符串COPY进去就可以。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListRoles"
],
"Resource": "*"
}
]
}
创建策略需要填写的信息,自定义即可:
当我们创建好权限之后,最重要的一步就是将IAM role与Azure AD进行集成,这一步就是创建IAM role角色:
选择SAML 2.0 联合身份认证,并选择我们刚刚创立成功的SAML提供商。
然后 选择刚刚创建的策略AzureAD_SSOUserRole_Policy:
创建这个角色如下:
AzureAD_SSOUserRole
然后我们添加一个IAM用户,这个用户是与角色和Azure AD关联的,如何关联呢?是通过这个IAM用户的AK/SK。我们下一步会在Azure的配置中做。
赋予这个用户刚刚创建的策略:
添加用户成功后,注意,一定要保存好这个用户的AK/SK信息,也就是访问密钥ID和私有访问密钥。当然你也可以下载CSV文件。
记住AK/SK,在 Azure AD 用户预配部分输入这些凭据,以便从 AWS 控制台提取角色。
我们回到Azure AD在 Amazon Web Services (AWS) 应用中配置角色预配,
在clientsecret和密钥标记中分别填入:AK/SK信息。
测试通过后保存:
在“设置”部分,为“预配状态”选择“打开”。 再选择“保存” 。如果报错或保存失败,可以返回到Amazon Web Services(AWS)预配中,启动开始预配。
回到添加分配用户,可以将我们在AWS上创建的role分配给在AAD创建的user了。我们也可以添加更多已有的客户关联到这个角色上。
当Azure和AWS都配置和同步完活动目录信息后,剩下就是要测试单点登录,测试的方法就是登录一个SSO平台,然后通过登录AzureAD中的用户,可以直接跳转到AWS平台上并拥有我们赋予他AWS上的资源操作权限。我们通过浏览器的方式(多平台兼容)如下:
浏览器扩展插件,我以Chrome举例,如果你使用其他的浏览器或移动设备(ios或android)请参考:https://docs.microsoft.com/zh-cn/azure/active-directory/user-help/my-apps-portal-end-user-access 添加扩展程序My Apps Secure Sign-in Extension
登录我们创建的User John,选择Amazon Web Service(AWS)应用:
然后直接跳转到AWS管理控制台:
验证权限:我只给John 查看IAM role的权限,其他的都不能做。
访问AWS EC2看一下效果:
参考文档:
https://amazonaws-china.com/cn/blogs/security/how-to-automate-saml-federation-to-multiple-aws-accounts-from-microsoft-azure-active-directory/
https://docs.microsoft.com/zh-cn/azure/active-directory/saas-apps/amazon-web-service-tutorial#test-sso
视频课程:https://edu.51cto.com/sd/59552
以上是关于Azure AD 与 AWS IAM 集成实现SSO—下(AWS部分)的主要内容,如果未能解决你的问题,请参考以下文章
将 Microsoft(个人和工作 Azure AD)OIDC 集成到 AWS Cognito
与 BitBucket 集成时 AWS CodePipeline 的 AWS IAM 访问异常
Java Spring 应用程序 - 与 Azure AD 集成以实现 SSO