更新时间:2026-07-01 GMT+08:00
分享

身份提供商概述

IAM支持基于SAML2.0、OIDC协议的单点登录。如果您已经有自己的企业身份系统,同时您的用户需要使用您账号内的云服务资源,可以通过IAM的身份提供商功能,实现用户通过企业身份系统单点登录华为云,这一过程称之为联邦身份认证。作为最佳实践,建议通过与外部身份提供商(IdP)的联邦身份认证来管理用户对华为云资源的访问,而不是在华为云账号中为每个用户单独创建IAM用户。通过使用外部IdP,您可以在华为云之外集中管理用户身份,并为这些用户授予访问华为云资源的权限。这种方式特别适用于已经具备企业身份系统的组织,同时也适用于需要访问华为云资源的移动应用程序或Web应用程序场景。

通过联邦身份认证获取的访问权限基于临时安全凭证,这些凭证具有有限的有效期,可降低长期凭证泄露带来的安全风险。但是您仍需要结合最小权限原则配置IAM信任委托权限,并对身份提供商进行严格的访问控制与审计。

如果您在未启用IAM Identity Center的情况下使用单个华为云账号,可以将IAM与外部身份提供商(IdP)集成,由IdP通过SAML2.0或OpenID Connect(OIDC)向华为云提供身份信息。常见的SAML身份提供商包括Shibboleth和Active Directory Federation Services,常见的OIDC身份提供商包括Google、Microsoft Entra ID和Github Actions等。

使用身份提供商后,您可以使用IdP提供的登录系统或用户身份管理功能。外部用户通过IdP完成身份验证后,即可根据授权访问华为云资源。该方式还可以提升安全性,因为无需在应用程序中分发或嵌入长期凭证(如访问密钥),而是使用具有时效性的临时安全凭证。

基本概念

下面为您介绍身份提供商的一些基本概念。
表1 基本概念

概念

说明

身份提供商(Identity Provider,简称IdP)

负责收集、存储用户身份信息,如用户名、密码等,在用户登录时负责认证用户的服务。在企业与华为云联邦身份认证的过程中,身份提供商指企业自身的身份提供商,目前常用的第三方IdP有Microsoft Active Directory(AD FS)、Shibboleth。

服务提供商(Service Provider,简称SP)

服务提供商通过与身份提供商IdP建立信任关系,使用IdP提供的用户信息,为用户提供具体的服务。在企业与华为云联邦身份认证的过程中,服务提供商指华为云。

联邦身份认证

身份提供商IdP与服务提供商SP建立信任关系并完成交互流程,实现用户单点登录的过程,称之为联邦身份认证。

单点登录(Single Sign-On,简称SSO)

用户在身份提供商IdP系统登录后,就可以通过跳转链接访问已建立互信关系的服务提供商SP系统,这一过程称之为单点登录。如:企业身份系统与华为云建立互信关系后,企业身份系统中的用户通过华为云提供的登录入口,使用已有的账号密码在企业身份系统中登录后,即可跳转访问华为云。

SAML 2.0

安全断言标记语言(Security Assertion Markup Language 2.0,缩写为SAML 2.0)是一个由一组协议组成,用来传输安全声明的XML框架。SAML2.0是由标准化组织OASIS提出的用于安全操作的标准,是很多身份提供商 (IdP)使用的一种开放标准,关于SAML2.0的详细描述请参见:SAML 2.0技术概述。IAM支持使用SAML2.0协议进行联邦身份认证,与华为云完成SAML联邦身份认证的企业IdP也需要支持SAML2.0协议。

SAML断言(SAML assertion)

SAML协议中用来描述认证请求和认证响应的核心元素。例如:用户的具体属性就包含在认证响应的断言里。

信任(Trust)

建立在SP和IdP之间的互信机制,通常由公钥和私钥来实现。SP通过可信的方式获取IdP的SAML元数据,元数据中包含IdP签发SAML断言的签名验证公钥,SP则使用公钥来验证断言的完整性。

OIDC

OIDC是OpenID Connect的简称,是一个基于OAuth 2.0协议的身份认证标准协议。IAM支持使用OIDC1.0协议进行联邦身份认证,与华为云完成OIDC联邦身份认证的企业IdP也需要支持OIDC 1.0协议。关于OIDC的详细描述请参见:欢迎使用OpenID Connect

OIDC令牌

OIDC可以给应用签发代表登录用户的身份令牌,即OIDC令牌(ID Token)。OIDC令牌用于获取登录用户的基本信息。

客户端ID

应用在外部身份提供商(IdP)注册时,会生成一个客户端ID(Client ID)。当您向IdP请求签发OIDC令牌时,必须使用该客户端ID,OIDC令牌中的aud(Audience)字段会携带该值。在华为云中创建OIDC身份提供商时,需要配置该客户端ID;在使用OIDC令牌调用STS获取临时安全凭证时,华为云会校验令牌中aud字段的值是否与已配置的客户端ID一致。只有校验通过,才允许切换到对应的信任委托。

验证指纹

为了防止颁发者URL被恶意劫持或篡改,您需要为外部身份提供商(IdP)配置基于HTTPS CA证书生成的验证指纹。在华为云中,系统会自动计算该指纹,但建议您在本地使用工具(例如OpenSSL)自行计算OIDC IdP的证书指纹,并与平台计算结果进行比对。如果两者不一致,则可能存在中间人攻击或证书被篡改的风险,应立即停止配置并重新验证颁发者URL的真实性,确保填写的指纹准确无误。

颁发者URL

颁发者URL由外部身份提供商提供,统一使用 OIDC令牌。颁发者URL必须以https开头,符合标准URL格式,但不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。

临时安全凭证

STS(Security Token Service)是华为云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时安全凭证。

信任委托SSO

IAM 支持基于SAML 2.0和OIDC的两种信任委托SSO:

  • SAML信任委托SSO:华为云通过IdP颁发的SAML断言确定企业用户在华为云上可以使用的IAM信任委托。企业用户登录后,使用SAML断言中指定的IAM信任委托访问华为云资源。请参见基于SAML协议的信任委托SSO概述
  • OIDC信任委托SSO:企业用户通过IdP签发的OIDC令牌(ID Token),调用华为云API切换指定信任委托并换取信任委托临时安全凭证(STS Security Token),然后使用临时安全凭证安全地访问华为云资源。更多信息,请参见基于OIDC协议的信任委托SSO概述

相关文档