亚马逊AWS官方博客

通过 Okta 集成 IAM Identity Center 实现对 Amazon QuickSight 的统一身份认证

1.概述

在企业环境中,一般会使用统一身份认证来访问各个内部应用,以便提供良好的登录体验。本文介绍了如何使用 Okta 作为身份提供商(IdP),通过 亚马逊云科技IAM Identity Center实现对 Amazon QuickSight 的统一身份认证访问。

2.Okta介绍

Okta是一家领先的身份与访问管理服务提供商,成立于2009年,提供基于云的安全解决方案。其核心功能包括单点登录、多因素认证和用户生命周期管理,帮助企业简化登录流程、增强安全性并降低IT管理成本。

Okta单点登录(SSO)功能允许用户使用一组凭证安全访问多个应用程序,无需重复登录。它集成了数千种云和本地应用,简化了用户体验,同时通过集中身份验证提高了安全性。

3.Amazon QuickSight介绍

Amazon QuickSight是亚马逊云科技的云端商业智能服务,提供直观的数据可视化和分析功能,能与亚马逊云科技生态系统(如S3、Redshift、RDS)及多种外部数据源无缝集成。它采用按用户计费模式,并内置机器学习功能,可自动生成数据洞察,并提供可在任何设备上访问的交互式仪表板。QuickSight的企业级安全性和可扩展性使组织能轻松共享和嵌入分析内容,无需管理复杂基础设施即可快速从数据中获取价值。

4.总体架构

身份验证流程:

  1. 用户发起登录
  2. Okta 进行身份验证并发送 SAML 断言
  3. IAM Identity Center 映射到权限集
  4. 用户获得对 QuickSight 的联合访问权限
  5. QuickSight 使用分配的权限访问数据源

5.准备工作

本部分将在Okta中创建用户和组来模拟后续的登录操作。实际生产环境中可以结合Active Directory等方式来集成企业现有用户体系。

5.1.创建用户

进入Okta管理界面,在Directory的People下创建多名测试用户。

5.2.创建组

然后在Groups下创建三个Group:quicksight-reader,quicksight-admin,quicksight-author,分别对应QuickSight的Reader, Admin和Author三种角色.

创建好组之后,把用户分配到相应的组中。

6.部署过程

本部分将在Okta中创建IAM Identity Center应用,用于完成认证。此过程需要同时操作Okta管理界面和Amazon Web Services的控制界面。

6.1.创建应用

在Okta的管理界面中到Applications栏目,点击Browse App Catalog,查找IAM Identity Center,点击该图标:

然后点击Add Integration按钮:

输入Application label,用来标识此应用:

6.2.修改IAM Identity Center

打开亚马逊云科技的控制台,进入IAM Identity Center。(此处已省略创建IAM Identity Center的初始步骤。)在Settings中,点击Actions,选择Change identity source:

在下一步的界面中,记录IAM Identity Center Assertion Consumer Service (ACS) URL和IAM Identity Center Issuer URL。前者是SAML断言的接收端点,在Okta完成用户认证后会把包含用户身份信息的SAML断言发送到此地址。后者用于唯一标识SAML服务提供商,此处就是IAM Identity Center实例。

6.3.为Okta应用配置登录选项

转到Okta新创建的应用中,点击Sign On栏目,点击Edit,在Advanced Sign-on Settings下填写上个步骤记下的两个URL。同时把Application username format改成Email。这样后续在IAM Identity Center看到同步过来的用户名就是Email格式。

点击Save之后,在下方的SAML Signing Certificates中,点击Actions,选择View IdP metadata,此时会弹出新页面,右键选择Save Page As,保存成文件metadata。

转到刚才的亚马逊云科技控制台,在Identity provider metadata下,点击Choose file,选择上文保存的metadata文件:

确认文件被正确加载,点击Next:

在最后Review and confirm界面,输入ACCEPT完成修改:

6.4.为Okta应用配置同步

此步骤要配置Okta将用户和组同步到IAM Identity Center的能力。

继续在IAM Identity Center的Settings下,点击Actions,选择Manage provisioning。

在Automatic provisioning中创建Access token,记录下该token和SCIM endpoint。这里解释一下SCIM:SCIM(System for Cross-domain Identity Management)是一个开放标准协议,它定义了一套RESTful API标准,旨在简化用户身份在不同系统间的创建、更新、删除和查询操作。

接下来回到Okta界面,进入Provisioning,点击Configure API Integration,然后在Base URL和API Token处填入上文记录的SCIM endpoint和Token的值。填完之后,点击Test API Credentials,如果验证成功,则可以继续下面操作。

如果顺利完成验证,则可以继续确认To App栏目中,Create Users, Update User Attributes和Deactivate Users都已经Enable了。这样保证在Okta这边用户的变化可以及时同步到IAM Identity Center中。

6.5.  分配组和同步组信息

在Okta界面中进入Assignments,点击Assign,选择Assign to Groups。然后选择这三个quicksight的组。

这时再点击左边Filters下People,就可以看到分配的组的成员列表。

接下到Push Groups界面,点击Push Groups按钮,选择Find groups by name,依次把三个quicksight的组添加进去,查看Push Status状态,等都变成Active。

这时转到亚马逊云科技控制台,在IAM Identity Center的Groups里面,就可以看到同步过来的三个quicksight的组了,可以注意到它们都是Created by SCIM。这就表明这些组都是从Okta同步过来的。

同时检查Users,也可以看到Okta的用户被同步过来了。

至此,Okta和IAM Identity Center的集成就已经完成了,接下来我们可以把Okta和QuickSight关联起来。

6.6.订阅QuickSight

在亚马逊云科技的控制台,转到QuickSight界面,这里演示还没订阅QuickSight的初始状态。

填写Account name,Email后,在Authentication Method中选择IAM Identity Center,然后在Admin group, Author group和Reader group中分别 选择quicksight-admin, quicksight-author和quicksight-reader。

这样就完成了QuickSight的订阅。

7.测试

从IAM Identity Center的Settings里面,找到access portal URL,类似: https://start.home.awsapps.cn/directory/d-xxxxxxx

之后,浏览器就会被重定向到Okta的认证页面:

完成登录后,浏览器会再转入到QuickSight的界面(现在叫做Quick Suite):

8.注意事项

  • QuickSight分配权限的时候必须按照Group,所以必须把Okta的Group使用Push Groups功能同步过来,。
  • Okta 与 IAM Identity Center 的同步依赖 SCIM 协议。

9.总结

本文详细演示了如何将Okta和亚马逊云科技的IAM Identity Center集成,为QuickSight提供登录集成,已方便在企业环境中通过统一身份认证来简化登录过程。这种集成方式同样适用于其他支持 SAML协议的 亚马逊云科技的 服务,为企业提供统一、安全的访问体验。

*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。

本篇作者

周平

西云数据高级技术客户经理,致力于大数据技术的研究和落地,为亚马逊云科技中国客户提供企业级架构和技术支持。