OIDC¶
OIDC(OpenID Connect)是建立在 OAuth 2.0 基础上的一个身份层,是基于 OAuth2 协议的身份认证标准协议。
如果您的企业或组织已有自己的账号体系,同时您的企业用户管理系统支持 OIDC 协议,可以使用全局管理提供的基于 OIDC 协议的身份提供商功能,而不必在 d.run 中为每一位组织成员创建用户名/密码。 您可以向这些外部用户身份授予使用 d.run 资源的权限。
具体操作步骤如下。
-
使用具有 admin 角色的用户登录 d.run。点击左侧导航栏底部的 全局管理 -> 用户与访问控制 。
-
在左侧导航栏选择 身份提供商 ,点击 OIDC 页签。填写表单字段,建立与身份提供商的信任关系后,点击 保存 。
字段 描述 重定向 URL 重定向到 d.run 的 URL 提供商名称 显示在登录页上,是身份提供商的入口 认证方式 客户端身份验证方法。如果 JWT 使用私钥签名,请下拉选择 JWT signed with private key 。具体参阅 Client Authentication。 客户端 ID 客户端的 ID 客户端密钥 客户端密码 客户端 URL 可通过身份提供商 well-known 接口一键获取登录 URL、Token URL、用户信息 URL 和登出 URL 自动关联 开启后当身份提供商用户名/邮箱与 d.run 用户名/邮箱重复时将自动使二者关联
Note
- 当用户通过企业用户管理系统完成第一次登录 d.run 后,用户信息才会被同步至 d.run 的 用户与访问控制 -> 用户列表 。
- 初次登录的用户不会被赋予任何默认权限,需要有管理员给其赋权(管理员可以是平台管理员、子模块管理员或资源管理员)。
- 有关实际操作教程,请参阅 OIDC 操作演示视频,也可参考 Azure OpenID Connect (OIDC) 接入流程。
用户身份认证交互流程¶
用户身份认证的交互流程为:
- 使用浏览器发起单点登录 d.run 的请求。
- d.run 根据登录链接中携带的信息,查找 全局管理 -> 用户与访问控制 -> 身份提供商 中对应的配置信息,构建 OIDC 授权 Request,发送给浏览器。
- 浏览器收到请求后,转发 OIDC 授权 Request 给企业 IdP。
- 在企业 IdP 的登录页面中输入用户名和密码,企业 IdP 对提供的身份信息进行验证,并构建携带用户信息的 ID Token,向浏览器发送 OIDC 授权 Response。
- 浏览器响应后转发 OIDC 授权 Response 给 d.run。
- d.run 从 OIDC 授权 Response 中取出 ID Token,并根据已配置的身份转换规则映射到具体的用户列表,颁发 Token。
- 完成单点登录,访问 d.run。