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举例,如果你使用其他的浏览器或移动设备(iosandroid)请参考: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部分)的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建一套Azure AD与ADFS集成身份的环境

将 Microsoft(个人和工作 Azure AD)OIDC 集成到 AWS Cognito

与 BitBucket 集成时 AWS CodePipeline 的 AWS IAM 访问异常

Java Spring 应用程序 - 与 Azure AD 集成以实现 SSO

Azure AD B2C 与企业 (Azure?) AD 帐户集成

如何搭建一套Azure AD与ADFS集成身份的环境