教程 1:应用使用 EnOS 账号登录 - OIDC

本篇文章以 Jenkins 遵守 OIDC 协议通过SSO Server登录为例:

前提条件

  • 拥有一个EnOS系统管理员账号,拥有对单点登录全部操作权限,参考策略,角色,与权限

  • 拥有一个EnOS OU 管理员账号,由系统管理员授权拥有对单点登录的操作权限,参考策略,角色,与权限

  • 拥有 Jenkins 管理员账号,开通 Jenkins 管理员账号请联系运维人员。

步骤

步骤一:在SSO Server上注册jenkins客户端

  1. 在 EnOS 管理控制台中选择 单点登录 > 客户端配置

  2. 点击 新建客户端,提供如下信息:

    • 客户端配置信息:

      • 客户端协议:OIDC。

      • 客户端ID:enos-oidc

      • 客户端密码:自动生成

      • Login Redirect URLhttp://localhost:8080/securityRealm/finishLogin (OIDC协议中SP侧接收auth code的地址)

      • Logout Redirect URLhttp://localhost:8080 (SSO用户的登出重定向到 Jenkins 登录页面)

      • Base URL

      • 默认身份提供方:EnOS 管理控制台

      • Authentication Code Flow:打开

    • Scope配置:选择 emailprofile

  3. 点击 保存 ,新建客户端完成。

步骤二:配置 Jenkins 客户端

  1. 安装 Jenkins 客户端 openId插件: a. Jenkins 管理员登录到 Jenkins客户端,进入路径 Manage Jenkins > Manage Plugins > Available,勾选 OpenIDOpenID Connect Authentication,点击 Download now and install after restart。 b. 下载完成后,勾选 Restart Jenkins when installation is complete and no jobs are running,重启 Jenkins 客户端。

  2. 再次登录到 Jenkins客户端,进入路径 Manage Jenkins > Configure Global Security,勾选 Enable security,在 Security Realm 栏勾选 Login with Openid Connect,并填写以下项:

    • Client id:enos-oidc。即步骤一内的客户端ID

    • Client secret:即第一步内自动生成的客户端密码

  3. 填写完成后,在 Configuration mode 栏勾选 Automatic configuration,并填写以下项:

    • Well-known configuration enpointhttps://sso登录环境域名/ssoserver/.well-known/openid-configuration

  4. 配置完成后,点击 Save

    http://localhost:8080/jenkins/configureSecurity/

步骤三:验证登录

登录 Jenkins客户端,地址自动跳转到:https://sso登录环境域名/auth-service/login 登录页面。

在客户端(基于 OIDC 实现)代码中加入对应配置

如需配置其他客户端,可以在客户端代码中加入对应配置:

  • 客户端的 Issuer Url: https://sso登录环境域名/ssoserver

  • Client id:即步骤一内的 客户端ID

  • Client secret:即第一步内自动生成的 客户端密码

  • Login Redirect Url:接收认证结果返回的地址,必须和第一步中的Login Redirect Url相匹配。

  • Logout redirect url:成功登出后 SSO Servier会将用户浏览器重定向去往该地址。

验证登录

登录客户端,地址自动跳转到 https://sso登录环境域名/auth-service/login,在此以EnOS账号登录成功后,客户端就会依照OIDC协议取得 Auth Token 并完成登录。