云服务器内容精选
-
两者的区别 虚拟用户SSO和 IAM 用户SSO的区别有身份转换方式、IAM用户身份、IAM侧权限分配3个方面的区别: 1、身份转换方式:虚拟用户SSO通过身份转换规则进行Idp用户和IAM用户的身份转换。IAM用户SSO使用外部身份ID来进行身份转换,Idp用户的IAM_SAML_Attributes_xUserId值与IAM用户的外部身份ID一一对应,一个或多个具有相同IAM_SAML_Attributes_xUserId值的Idp用户均可跳转至对应ID值的SP用户。因此,使用IAM用户SSO登录,请务必在Idp侧断言中设置IAM_SAML_Attributes_xUserId,在SP侧设置IAM用户外部身份ID。 2、IAM侧用户身份:虚拟用户SSO无法在IAM用户列表中找到Idp用户对应的IAM用户,跳转时系统临时为其自动创建虚拟用户信息。IAM用户SSO则在IAM用户列表中存在Idp用户对应的绑定外部身份ID的IAM子用户。 3、IAM侧权限分配:虚拟用户SSO中,Idp用户跳转后的权限取决于身份转换规则,规则中说明跳转后临时生成的虚拟用户拥有哪些用户组权限。IAM用户SSO中,Idp用户跳转后直接集成IAM子用户所在用户组的权限。 图1 IAM用户SSO与虚拟用户SSO的区别
-
使用联邦身份认证的优势 管理用户简单 使用联邦身份认证前,管理员需要在企业管理系统和华为云分别为用户创建账号。 使用联邦身份认证后,企业管理员只需要在企业管理系统中为用户创建账号,用户即可同时访问两个系统,降低了人员管理成本。 用户操作方便 使用联邦身份认证前,用户访问企业管理系统和华为云时需要使用两个系统的账号登录。 使用联邦身份认证后,用户在本企业管理系统中登录即可访问两个系统。 图1 使用联邦身份认证的优势
-
基本概念 表1 基本概念 概念 说明 身份提供商(Identity Provider,简称IdP) 负责收集、存储用户身份信息,如用户名、密码等,在用户登录时负责认证用户的服务。在企业与华为云联邦身份认证的过程中,身份提供商指企业自身的身份提供商,目前常用的第三方IdP有Microsoft Active Directory(AD FS)、Shibboleth。 服务提供商(Service Provider,简称SP) 服务提供商通过与身份提供商IdP建立信任关系,使用IdP提供的用户信息,为用户提供具体的服务。在企业与华为云联邦身份认证的过程中,服务提供商指华为云。 联邦身份认证 身份提供商IdP与服务提供商SP建立信任关系并完成交互流程,实现用户单点登录的过程,称之为联邦身份认证。 单点登录(Single Sign-On,简称SSO) 用户在身份提供商IdP系统登录后,就可以通过跳转链接访问已建立互信关系的服务提供商SP系统,这一过程称之为单点登录。如:企业管理系统与华为云建立互信关系后,企业管理系统中的用户通过华为云提供的登录入口,使用已有的账号密码在企业管理系统中登录后,即可跳转访问华为云。华为云支持两类单点登录方式,分别是虚拟用户SSO和IAM用户SSO。 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协议进行联邦身份认证,因此与华为云建立联邦身份认证的企业IdP必须支持SAML2.0协议。 OIDC OIDC是OpenID Connect的简称,是一个基于OAuth 2.0协议的身份认证标准协议。IAM支持使用OIDC1.0协议进行联邦身份认证,因此与华为云建立联邦身份认证的企业IdP必须支持OIDC 1.0协议。关于OIDC的详细描述请参见:欢迎使用OpenID Connect。 OAuth 2.0 OAuth 2.0是Open Authorization 2.0的简称,是一种开放授权协议,授权框架支持第三方应用程序以自己的名义获取访问权限。
-
SSO方式 目前IAM支持两类SSO方式,分别是虚拟用户SSO和IAM用户SSO。选择SSO方式请参见虚拟用户SSO与IAM用户SSO的适用场景。 虚拟用户SSO 企业IdP用户登录华为云后,系统为其自动创建虚拟用户信息,并根据您配置的身份转换规则为其授予访问权限。 IAM用户SSO 企业IdP用户登录华为云后,系统将自动匹配外部身份ID绑定的对应IAM子用户,从而拥有该子用户所在用户组的权限。 目前IAM支持两种联邦登录的形式,分别是浏览器页面单点登录(Web SSO)和调用API接口。 浏览器页面单点登录(Web SSO):浏览器作为通讯媒介,适用于普通用户通过浏览器访问华为云。您可以从IdP侧或SP侧发起Web SSO: IdP侧发起登录:配置企业管理系统登录入口后,通过企业管理系统单点登录华为云。 SP侧发起登录:通过华为云提供的企业联邦用户登录入口,输入对应华为云用户名称,选择身份提供商,跳转至企业管理系统进行登录认证。 调用API接口:开发工具/应用程序作为通讯媒介,例如OpenStack Client、ShibbolethECP Client,适用于企业或用户通过API调用方式访问华为云。 表2 联邦认证方式 SSO方式 支持协议 是否支持Web SSO 是否支持API调用 从IdP侧发起登录 从SP侧发起登录 多个IdP 虚拟用户SSO SAML 2.0与OIDC 是 是 支持 支持 支持 IAM用户SSO SAML 2.0 是 是 支持 支持 不支持
-
注意事项 企业IdP服务器的时间需要和华为云的时间、时区一致,即都使用GMT时间(Greenwich Mean Time),否则会导致联邦身份认证失败。 由于联邦用户的身份信息(如邮件地址、手机号码)保存在企业IdP中,是企业IdP映射到华为云的虚拟用户,因此,联邦用户通过身份提供商功能访问华为云时有以下约束: 如果账号开启了敏感操作保护(登录保护或操作保护),对联邦用户不生效,即联邦用户在执行敏感操作时,不需要二次验证。 不支持创建永久访问密钥(AK/SK),支持通过用户或委托token来获取临时访问凭证(临时AK/SK和securitytoken),具体方法请参见:获取临时AK/SK和securitytoken。 如需使用永久AK/SK,只能由账号或是实体IAM用户创建密钥,共享给联邦用户。由于密钥表示用户所拥有的权限,因此建议由与联邦用户同在一个用户组的实体IAM用户创建并分享密钥。
-
请求示例 修改编程访问配置 PUT /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config { "openid_connect_config" : { "access_mode" : "program", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } } 修改编程访问和管理控制台访问配置 PUT /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config { "openid_connect_config" : { "access_mode" : "program_console", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "authorization_endpoint" : "https://accounts.example.com/o/oauth2/v2/auth", "scope" : "openid", "response_type" : "id_token", "response_mode" : "form_post", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } }
-
响应示例 状态码为 200 时: 请求成功。 { "openid_connect_config" : { "access_mode" : "program_console", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "authorization_endpoint" : "https://accounts.example.com/o/oauth2/v2/auth", "scope" : "openid", "response_type" : "id_token", "response_mode" : "form_post", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } }
-
响应参数 状态码为 200 时: 表5 响应Body参数 参数 参数类型 描述 openid_connect_config object OpenID Connect配置详情。 表6 OpenIDConnectConfig 参数 参数类型 描述 access_mode String 访问方式。 program_console: 支持编程访问和管理控制台访问方式。 program: 支持编程访问方式 idp_url String OpenID Connect身份提供商标识,对应ID token中iss字段。 client_id String 在OpenID Connect身份提供商注册的客户端ID。 authorization_endpoint String OpenID Connect身份提供商授权地址。 访问方式为program方式时返回null。 scope String 授权请求信息范围。 访问方式为program方式时返回null。 枚举值: openid email profile 说明: 此字段必选值“openid”。 最少1个值,最多10个值,之间使用空格分割。 例如: "openid" 、"openid email"、 "openid profile"、 "openid email profile"。 response_type String 授权请求返回的类型。 访问方式为program方式时返回null。 枚举值: id_token response_mode String 授权请求返回方式。 访问方式为program方式时返回null。 枚举值: fragment form_post signing_key String OpenID Connect身份提供商ID Token签名的公钥。
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 openid_connect_config 是 object OpenID Connect配置详情。 表4 openid_connect_config 参数 是否必选 参数类型 描述 access_mode 否 String 访问方式。 program_console: 支持编程访问和管理控制台访问方式。 program: 支持编程访问方式 idp_url 否 String OpenID Connect身份提供商标识,对应ID token中iss字段。 最小长度:10。最大长度:255。 client_id 否 String 在OpenID Connect身份提供商注册的客户端ID。 最小长度:5。最大长度:255。 authorization_endpoint 否 String OpenID Connect身份提供商授权地址。 访问方式为program_console必选。 最小长度:10。最大长度:255。 scope 否 String 授权请求信息范围。 访问方式为program_console必选。 枚举值: openid email profile 说明: 此字段必选值“openid”。 最少1个值,最多10个值,之间使用空格分割。 例如: "openid" 、"openid email"、 "openid profile"、 "openid email profile"。 response_type 否 String 授权请求返回的类型。 访问方式为program_console必选。 枚举值: id_token response_mode 否 String 授权请求返回方式。 访问方式为program_console必选。 枚举值: fragment form_post signing_key 否 String OpenID Connect身份提供商ID Token签名的公钥。 最小长度:10。最大长度:30000。 格式示例: { "keys":[ { "kid":"d05ef20c4512645vv1..." , "n":"cws_cnjiwsbvweolwn_-vnl...", "e":"AQAB", "kty":"RSA", "use":"sig", "alg":"RS256" } ] }
-
SAML 2.0 安全断言标记语言(Secturity Assertion Markup Language 2.0,缩写为SAML 2.0)是一个由一组协议组成,用来传输安全声明的XML框架。SAML2.0是由标准化组织OASIS提出的用于安全操作的标准,是很多身份提供商 (IdP)使用的一种开放标准,关于SAML2.0的详细描述请参见:SAML 2.0技术概述。IAM支持使用SAML2.0协议进行联邦身份认证,因此与华为云建立联邦身份认证的企业IdP必须支持SAML2.0协议。 IAM身份中心将SAML IdP功能添加到您的IAM身份中心存储或外部身份提供商应用程序,然后用户可以单点登录到支持SAML的服务,包括华为云管理控制台和第三方应用程序。但是SAML协议没有提供查询IdP来了解用户和用户组的方法,因此您必须将这些用户和用户组配置到IAM身份中心来获取这些用户和用户组。
-
响应示例 状态码为 201 时: 请求成功。 { "identity_provider": { "remote_ids": [], "enabled": true, "id": "ACME", "sso_type": "iam_user_sso", "links": { "self": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/identity_providers/ACME", "protocols": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/identity_providers/ACME/protocols" }, "description": "Stores ACME identities." } }
-
请求示例 创建身份提供商并且启用。 PUT https://iam.myhuaweicloud.com/v3/OS-FEDERATION/identity_providers/{id} { "identity_provider": { "sso_type": "iam_user_sso", "description": "Stores ACME identities.", "enabled": true } }
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 identity_provider 是 Object 身份提供商信息。 表4 identity_provider 参数 是否必选 参数类型 描述 sso_type 否 String 身份提供商类型。当前支持如下两种: virtual_user_sso:联邦登录跳转后映射为虚拟用户。 iam_user_sso:联邦登录跳转后映射为实际存在的IAM用户。如果选择该类型,请确保您已在华为云创建IAM用户。 默认配置为virtual_user_sso类型,同一个账号下两种类型不能同时存在,且iam_user_sso最多只能创建一个。 description 否 String 身份提供商描述信息。 enabled 否 Boolean 身份提供商是否启用,true为启用,false为停用,默认为false。
-
注意事项 在开始部署SCIM之前,我们建议您先查看以下有关它如何与IAM身份中心配合使用的重要注意事项。有关适用于您的IdP的其他配置注意事项,请参阅常用的身份提供商。 如果您要配置主电子邮件地址,则每个用户的此属性值必须是唯一的。在某些IdPs情况下,主电子邮件地址可能不是真实的电子邮件地址。例如,它可能是一个看起来只像电子邮件的通用主体名称(UPN)。它们IdPs可能具有包含用户真实电子邮件地址的辅助或 “其他” 电子邮件地址。您必须在IdP中配置SCIM以将非NULL的唯一电子邮件地址映射到IAM身份中心主电子邮件地址属性。而且您必须将用户的非空唯一登录标识符映射到IAM身份中心用户名属性。检查您的IdP是否有一个既是登录标识符又是用户的电子邮件名称的单一值。如果是,您可以将该IdP字段映射到IAM身份中心主电子邮件和IAM身份中心用户名。 要使SCIM同步正常运行,每个用户都必须指定名字、姓氏、用户名和显示名称值。如果某个用户缺少这些值中的任何一个,则不会配置该用户。 如果您需要使用第三方应用程序,则首先需要将出站SAML主题属性映射到用户名属性。如果第三方应用程序需要可路由的电子邮件地址,则必须向您的IdP提供电子邮件属性。 SCIM配置和更新间隔由您的身份提供商控制。只有在您的身份提供商将更改发送到IAM身份中心后,对身份提供商中的用户和群组所做的更改才会反映在IAM身份中心中。有关用户和群组更新频率的详细信息,请咨询您的身份提供商。 目前,SCIM未提供多值属性(例如给定用户的多个电子邮件或电话号码)。尝试使用SCIM将多值属性同步到IAM身份中心将失败。为避免失败,请确保仅为每个属性传递一个值。如果您的用户具有多值属性,请移除或修改您的IdP的SCIM中用于连接到IAM身份中心的重复属性映射。 验证您的externalId IdP上的SCIM映射对应于一个唯一的值,该值始终存在且对您的用户而言更改的可能性最小。例如,您的IdP可能会提供不受姓名和电子邮件等用户属性更改影响的保证标识符objectId或其他标识符。如果是这样,则可以将该值映射到SCIM externalId字段。这样可以确保在您需要更改用户名或电子邮件时,您的用户不会丢失他们的华为云权利、任务或权限。 尚未分配到应用程序或帐号的用户无法配置到IAM身份中心。要同步用户和群组,请确保将他们分配给代表您的IdP与IAM身份中心连接的应用程序或其他设置。
-
条件组合示例 多个条件间,以“逻辑与”的方式组合。 以下示例表示该规则仅对既不属于IdP的“idp_user”也不属于IdP的“idp_agent”用户组的联邦用户生效。对于生效用户:在IAM中的用户名为UserName,所属用户组为“admin”。 [ { "local": [ { "user": { "name": "{0}" } }, { "group": { "name": "admin" } } ], "remote": [ { "type": "UserName" }, { "type": "Groups", "not_any_of": [ "idp_user" ] }, { "type": "Groups", "not_any_of": [ "idp_agent" ] } ] } ] 以上规则等同于: [ { "local": [ { "user": { "name": "{0}" } }, { "group": { "name": "admin" } } ], "remote": [ { "type": "UserName" }, { "type": "Groups", "not_any_of": [ "idp_user", "idp_agent" ] } ] } ]
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格