基于统一的IdP实现人员身份的统一认证

更新时间:

通过集中化的身份提供商(Identity Provider,简称 IdP)来进行人员身份的统一认证,能够简化人员身份的管理,确保组织内在云上、云下的人员身份的一致性。当人员结构变更、人员入、离职时,能够在一个地方完成人员身份的配置。 对于云环境的使用者来说,也无需为其颁发额外的用户名和密码(如 RAM 用户名和密码),只需要保管好其在组织内的 IdP 中的身份和凭据即可。对于一些组织而言,通过一些网络上的访问控制措施,使其 IdP 仅能够在企业内网访问,给人员身份的认证过程增加了额外一个限制条件,进一步保障了企业人员身份的安全。

优先级

不推荐做法

  • 不使用联合身份验证和单点登录。员工需要在云上创建单独的用户和登录密码凭证,增加密码泄露风险。

  • 未实现员工身份的自动化生平周期管理。例如,当员工离职时,您需要手动删除其在云上使用的身份。

实施指南

1. 选择合适的SSO方式

阿里云目前支持两种SSO方式:

  • 用户SSO

    阿里云通过IdP颁发的SAML断言确定企业用户与阿里云RAM用户的对应关系 。企业用户登录后,使用该RAM用户访问阿里云资源。更多信息,请参见用户SSO概览

  • 角色SSO

    支持基于SAML 2.0OIDC的两种角色SSO:

    • SAML角色SSO:阿里云通过IdP颁发的SAML断言确定企业用户在阿里云上可以使用的RAM角色。企业用户登录后,使用SAML断言中指定的RAM角色访问阿里云资源。请参见SAML角色SSO概览

    • OIDC角色SSO:企业用户通过IdP签发的OIDC令牌(OIDC Token),调用阿里云API扮演指定角色并换取角色临时身份凭证(STS Token),然后使用STS Token安全地访问阿里云资源。更多信息,请参见OIDC角色SSO概览

建议您优先考虑使用角色SSO的方式,除非您需要使用的云产品中有部分暂时不支持角色访问,此时您需要使用用户SSO的方式。支持角色访问(即通过STS访问)的云产品请参见支持STS的云服务

说明

关于用户SSO与角色SSO的更多比较,请参见SSO方式的适用场景

2. 跟企业IdP进行SSO集成

阿里云提供了多种产品和功能,方便您快速实现企业IdP和阿里云的SSO集成。不同的场景和企业IdP,您需要采取不同的SSO集成方案。您可以将IdP直接和RAM身份进行SSO集成,在一些特定场景下,也可以使用应用身份服务(IDaaS)(Identity as a Service)实现统一SSO登录,具体选择依据如下所示。

直接和RAM身份SSO集成

对于只需要和RAM身份进行SSO集成进行云上资源管控,且IdP支持SAML 2.0协议的场景下,建议您直接使用标准的SAML协议和RAM身份进行SSO集成。根据不同的账号结构选择不同的方案:

以下是常见的IdP跟阿里云RAM身份进行SSO集成的指南:

Microsoft Entra ID

大多数情况下,您只需要和RAM身份进行SSO集成,进行云上资源管控,即您可以直接将Microsoft Entra IDRAM身份进行SSO集成。

Okta

大多数情况下,您只需要和RAM身份进行SSO集成,进行云上资源管控,即您可以直接将OktaRAM身份进行SSO集成。

AD FS

如果您没有在AD FS侧进行二次校验(如MFA)的安全需求,那么您可以直接将AD FSRAM身份进行SSO集成。

飞书

如果您不需要自动同步飞书通讯录,只需要和RAM身份进行SSO集成,进行云上资源管控的话,您可以通过标准的SAML协议直接将飞书和RAM身份进行SSO集成。

  • 单账号场景,您可以使用访问控制 RAM(Resource Access Management)提供的单点登录功能,实现阿里云与企业IdP的集成。

  • 多账号场景,推荐使用云SSO直接跟企业IdP进行SSO集成,实现多个账号统一的身份管理和认证。

说明

需要注意的是,没有出现在上述指南中的IdP,并不代表该IdP一定无法跟阿里云进行SSO集成,只要支持SAML 2.0协议的IdP(如Google Workspace、Auth0、Keycloak等)都可以跟阿里云的RAM身份进行SSO集成。

使用IDaaS进行SSO集成

以下场景,建议您使用应用身份服务(IDaaS)(Identity as a Service)实现统一SSO登录。更多关于IDaaS的信息和产品费用,请参见什么是IDaaS EIAM?

  • 您在阿里云上有多个用户体系,比如:RAM身份、堡垒机用户、无影云桌面用户等,需要实现和企业IdP的统一SSO集成。此时,您可以使用IDaaS作为不同用户体系之间的桥接。

  • 您的IdP不支持标准的SAML协议,比如:钉钉、企微或者其他支持LDAP协议的IdP。此时,您可以使用IDaaS和钉钉、企微、LDAP IdP集成绑定,再通过IDaaS桥接到其他云上用户体系。

  • 您希望实现IdP用户的自动同步,但是您的IdP不支持标准SCIM协议,比如:飞书。此时,您可以使用IDaaS作为桥接,实现将IdP的用户自动同步为云上身份。

  • 出于安全考虑,您需要在用户登录时进行二次认证,比如多因素认证MFA,但是您的IdP不支持。此时,您可以通过IDaaS使用MFA进行二次身份验证。

  • 您企业内当前没有一个企业IdP,需要一个IdP的场景满足多个应用集成的场景,您可以把IDaaS作为您企业内的IdP使用。

说明

如果您没有上述的场景,建议优先考虑直接将企业IdP和阿里云的RAM身份集成,简化架构和维护成本。

针对常见的企业IdP,您可以参考以下实施步骤,实现企业IdP和阿里云的SSO集成。

Microsoft Entra ID

如果您满足以下任意一个场景,建议您使用应用身份服务(IDaaS)(Identity as a Service)实现Microsoft Entra IDSSO集成:

  • 在阿里云上有多个用户体系,比如RAM身份、堡垒机用户、无影云桌面用户等,需要实现和Microsoft Entra ID的统一SSO集成

详细实施步骤如下:

  • SSO单点登录:

    • 首先您需要将IDaaSMicrosoft Entra ID集成绑定,实现Microsoft Entra ID通过OIDC协议登录到IDaaS用户。具体操作,请参考绑定Microsoft Entra ID(Azure AD)

    • 然后将IDaaS和其他用户体系进行SSO集成,比如RAM用户、RAM角色、堡垒机用户、无影云桌面用户等等。如此,通过IDaaS作为不同用户体系间的桥接,实现多个用户体系的统一SSO集成登录。您可以参考以下几个常见的身份场景进行SSO集成配置。

      说明

      更多用户体系的SSO集成,请参考IDaaS常用应用配置

  • 用户/组自动同步:

    • 首先您需要将Microsoft Entra ID的账户同步为IDaaS账户。在将IDaaSMicrosoft Entra ID集成绑定时,您可以在选择场景中,开启自动创建账户,当Microsoft Entra ID通过OIDC登录时,如果Microsoft Entra ID账户未绑定IDaaS账户,则可自动创建IDaaS账户。后续每次通过OIDC登录都将更新账户信息。

    • 然后将IDaaS账户同步到其他用户体系,实现企业IdP到多个用户体系的自动用户同步。具体操作,请参考账户同步-事件回调

    说明

    需要注意的是,IDaaS目前不支持组同步。

Okta

如果您满足以下任意一个场景,建议您使用应用身份服务(IDaaS)(Identity as a Service)实现OktaSSO集成:

  • 在阿里云上有多个用户体系,比如RAM身份、堡垒机用户、无影云桌面用户等,需要实现和Okta的统一SSO集成

详细实施步骤如下:

  • SSO单点登录:

    • 首先您需要将IDaaSOkta集成绑定,实现Okta通过OIDC协议登录到IDaaS用户。具体操作,请参考绑定Okta

    • 然后将IDaaS和其他用户体系进行SSO集成,比如RAM用户、RAM角色、堡垒机用户、无影云桌面用户等等。如此,通过IDaaS作为不同用户体系间的桥接,实现多个用户体系的统一SSO集成登录。您可以参考以下几个常见的身份场景进行SSO集成配置。

      说明

      更多用户体系的SSO集成,请参考IDaaS常用应用配置

  • 用户/组自动同步:

    • 首先您需要将Okta的账户同步为IDaaS账户。在将IDaaSOkta集成绑定时,您可以在选择场景中,开启自动创建账户,当Okta通过OIDC登录时,如果Okta账户未绑定IDaaS账户,则可自动创建IDaaS账户。后续每次通过OIDC登录都将更新账户信息。

    • 然后将IDaaS账户同步到其他用户体系,实现企业IdP到多个用户体系的自动用户同步。具体操作,请参考账户同步-事件回调

    说明

    需要注意的是,IDaaS目前不支持组同步。

AD FS

如果您满足以下任意一个场景,建议您使用应用身份服务(IDaaS)(Identity as a Service)实现AD FSSSO集成:

  • 在阿里云上有多个用户体系,比如RAM身份、堡垒机用户、无影云桌面用户等,需要实现和AD FS的统一SSO集成

  • 您需要在用户登录时进行二次认证,比如多因素认证MFA。

  • 需要将AD中的用户同步到阿里云上,并且希望使用托管的产品功能或方案进行同步,而非开源自建方案。

详细实施步骤如下:

  • SSO单点登录:

    • 首先您需要将IDaaSAD集成绑定。具体操作,请参考绑定AD

      • 如果您的AD FS部署在阿里云上,只允许在VPC私网内进行通信,请创建专属端点,并在IDaaS绑定AD时,选择专属端点作为IDaaS的网络端点。详见:网络端点

        说明

        您需要使用企业版实例才可选购专属端点,详见,专属端点计费说明

  • 然后将IDaaS和其他用户体系进行SSO集成,比如RAM用户、RAM角色、堡垒机用户、无影云桌面用户等等。如此,通过IDaaS作为不同用户体系间的桥接,实现多个用户体系的统一SSO集成登录。您可以参考以下几个常见的身份场景进行SSO集成配置。

    说明

    更多用户体系的SSO集成,请参考IDaaS常用应用配置

  • 用户/组自动同步:

    • 首先您需要将AD的用户同步为IDaaS账户。在将IDaaSOkta集成绑定时,您可以在第二步:选择场景中,开启增量同步,IDaaS将监听AD的用户或组织数据,每10分钟左右执行一次同步,将有变动的数据导入到IDaaS中。如果单次增量同步的数据量较大,可能会延迟处理。建议定期执行一次全量同步,以确保对齐两边数据。

    • 然后将IDaaS账户同步到其他用户体系,实现企业IdP到多个用户体系的自动用户同步。具体操作,请参考账户同步-事件回调

    说明

    需要注意的是,IDaaS目前不支持组同步。

LDAP IdP

如果您的IdP只支持LDAP协议,您需要使用IDaaS进行SSO集成。

  • SSO单点登录:

    • 首先您需要将IDaaSLDAP IdP集成绑定。具体操作,请参考绑定OpenLDAP

    • 然后将IDaaS和其他用户体系进行SSO集成,比如RAM用户、RAM角色、堡垒机用户、无影云桌面用户等等。如此,通过IDaaS作为不同用户体系间的桥接,实现多个用户体系的统一SSO集成登录。您可以参考以下几个常见的身份场景进行SSO集成配置。

      说明

      更多用户体系的SSO集成,请参考IDaaS常用应用配置

  • 用户/组自动同步:

    • 首先您需要将LDAP IdP的用户同步为IDaaS账户。在将IDaaSLDAP IdP集成绑定时,您可以在第二步:选择场景中,开启定时校验,由于LDAP不支持查询增量数据,IDaaS将于每日凌晨自动全量同步LDAP来源节点下的全量数据。

    • 然后将IDaaS账户同步到其他用户体系,实现企业IdP到多个用户体系的自动用户同步。具体操作,请参考账户同步-事件回调

    说明
    • IDaaS目前不支持组同步。

    • LDAP不支持查询增量数据,开启定时校验后,IDaaS将于每日凌晨自动全量同步LDAP来源节点下的全量数据。

钉钉/企业微信

如果您使用钉钉或者企业微信管理员工身份,您需要使用IDaaS进行SSO集成。

  • SSO单点登录:

  • 用户/组自动同步:

    • 首先您需要将钉钉/企微通讯录的员工同步为IDaaS账户。

      • 在将IDaaS和钉钉集成绑定时,您可以在第一步:选择场景中,开启增量同步,启用后,IDaaS 调用钉钉接口,监听钉钉通讯录事件。钉钉通讯录有变动,可实时将变动数据同步到 IDaaS 中。

      • 在将IDaaS和企微集成绑定时,您可以在步骤三:选择场景中,开启定时校验,由于企业微信不支持查询增量数据,IDaaS将于每日凌晨自动全量同步企业微信来源节点下的全量数据。

    • 然后将IDaaS账户同步到其他用户体系,实现企业IdP到多个用户体系的自动用户同步。具体操作,请参考账户同步-事件回调

    说明
    • IDaaS目前不支持组同步。

    • 企业微信不支持查询增量数据,IDaaS将于每日凌晨自动全量同步企业微信来源节点下的全量数据。

    • 配置用户同步时,支持在钉钉/企微侧设置同步范围,在同步范围中的通讯录员工才会被同步到IDaaS中。需要注意的是,钉钉/企微侧的可见范围的变更,不会触发IDaaS的增量同步。只有通讯录里的员工新增、删除(从通讯录里完全删除)、更新时,才会触发增量同步,否则您需要手动触发全量同步。如果有需要,您可以参考解决方案《基于函数计算实现从IdPIDaaS的人员定时同步方案》定时自动进行全量同步。

飞书

如果您满足以下任意一个场景,建议您使用应用身份服务(IDaaS)(Identity as a Service)实现飞书的SSO集成:

  • 在阿里云上有多个用户体系,比如RAM身份、堡垒机用户、无影云桌面用户等,需要实现和飞书的统一SSO集成

  • 您希望实现飞书用户的自动同步。

详细实施步骤如下:

  • SSO单点登录:

    • 首先您需要将IDaaS和飞书集成绑定。具体操作,请参考绑定飞书

    • 然后将IDaaS和其他用户体系进行SSO集成,比如RAM用户、RAM角色、堡垒机用户、无影云桌面用户等等。如此,通过IDaaS作为不同用户体系间的桥接,实现多个用户体系的统一SSO集成登录。您可以参考以下几个常见的身份场景进行SSO集成配置。

      说明

      更多用户体系的SSO集成,请参考IDaaS常用应用配置

  • 用户/组自动同步:

    说明
    • IDaaS目前不支持组同步。

    • IDaaS目前不支持飞书数据的增量同步。

注意事项

需要特别注意的是,如果您实现了企业IdP到阿里云RAM用户的自动同步,当您在IdP侧删除了某个用户,那么SCIM同步过来的RAM用户也会被删除,此时如果该RAM用户创建有AccessKey,那么也会被一并删除,有可能导致您使用该AccessKey的业务功能受损。因此,建议您严格遵守身份的单一职责原则:

  • 对于员工登录阿里云控制台使用的RAM用户,不要创建AccessKey。

  • 使用单独的RAM用户,创建AccessKey给应用程序调用阿里云API使用,同时关闭该RAM用户的控制台登录。具体操作,请参见修改控制台登录设置

相关资源

相关方案