身份提供商概述
通过联邦身份认证获取的访问权限基于临时安全凭证,这些凭证具有有限的有效期,可降低长期凭证泄露带来的安全风险。但是您仍需要结合最小权限原则配置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完成身份验证后,即可根据授权访问华为云资源。该方式还可以提升安全性,因为无需在应用程序中分发或嵌入长期凭证(如访问密钥),而是使用具有时效性的临时安全凭证。
基本概念
| 概念 | 说明 |
|---|---|
| 身份提供商(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概述。