keycloak 微服务认证_VMware vRA8集成KeyCloak认证

a588e0279d11818cf63580c8c417db36.png

概述

企业中一般都有自己的单点登录认证(SSO)服务器负责业务系统(移动端、应用服务器、Web等)的认证,而VMware产品通常与vIDM集成,这样企业就有两个SSO服务器,用户体验非常不好;

伴随信息化的发展,企业内部的管理系统也越来越多,每次都进行登录,影响使用和运维效率,更有用户每套系统一套账户和密码,只能靠Excel记录了,不仅登录繁琐,且存在安全隐患;所以一套统一身份认证系统和单点登录系统能够帮助企业更好的控制权限,提高安全性和用户体验。

实现效果

用户无论是访问业务系统(例如:OA、Email)还是访问信息化管理系统(例如:vRA、vRLi、vRops)都统一通过Keycloak(也可以是其他SSO平台)进行认证,认证通过后,再访问其他系统,就不再需要进行登录,支持单点登录和单点注销。

提示:Keycloak必须使用SSL,我的环境中是通过Nginx反向代理KeyCloak,并通过ACME申请免费的Let’s Encrypt证书,关于Keycloak的部署、LDAP集成配置和证书本手册不进行介绍,可以参考我之前写的Blog。

登录流程概述

  1. 用户通过浏览器访问vRA8;
  2. vRA8将认证转发给vIDM;
  3. vIDM将认证转发给KeyCloak;
  4. KeyCloak检测到用户未认证,重定向到登录页面;
  5. 用户通过账户密码完成认证;
  6. 浏览器重定向会vRA8页面;
  7. 完成认证;

注销流程概述

  1. 用户通过vRA8页面注销;
  2. 注销转发给vIDM;
  3. vIDM转发给KeyCloak进行注销;
  4. Keycloak完成注销,并返回Client中预设的注销后重定型URL;
  5. 用户返回到vRA登录页面;

单点登录流程概述

  1. 用户通过企业应用系统完成了KeyCloak登录认证;
  2. 用户访问vRA8;
  3. 浏览器将认证转发给vIDM;
  4. vIDM将认证转发给KeyCloak;
  5. KeyCloak检测到用于已认证,返回认证成功;
  6. 浏览器打开vRA8页面;
  7. 完成单点登录;

登录vIDM获取服务提供商(SP)元数据

登录到VMware Identity Manager(简称vIDM),进入到管理控制台->目录->Web应用程序->设置。

24315b538e1da9c85605f8696d0af4de.png

点击”服务提供商(SP)元数据”。

ce32d773378f61b39d230be3613d91ec.png

我们需要获取到SP的两个URL地址,后续在配置KeyCloak中使用。

https://mgmt-vidm.corp.local/SAAS/API/1.0/GET/metadata/sp.xml

https://mgmt-vidm.corp.local/SAAS/auth/saml/response

16c2ec8eb265bf8f140bddf329cc400e.png

添加KeyCloak客户端

登录KeyCloak管理控制台,进入Clients页面,添加Client,按下图进行配置。

提示,本示例采用vRA8单租户模式,如果您使用多租户模式,需要为每个租户添加Client。

5813bce2b915b2dd21db154efc660d27.png
0cafe77ce76b9a796d96ce56da2286c1.png

从KeyCloak获取元数据(Metadata)

进入到Realm Settings,点击SAML 2.0 Identity Provider Metadata链接

044c4c349f2a7ba698173f032921c956.png


按照下图拷贝Metadata内容。

注意,不是完整的内容。

制作vIDM可识别的IDP元数据

打开一个在线xml格式化工具,并按照下图进行修改,再进行格式化。

931c5595dde99981e1aa80c83f47ca9a.png

vIDM中配置KeyCloak集成

登录到vIDM管理控制台,身份和访问管理->身份提供程序->添加身份提供程序->创建第三方IDP

571b5a3f6e92939715e4ce3a2566b844.png

粘贴上一步生成的Metadata后点击处理IDP元数据,修改SAML身份验证请求绑定为“HTTP POST”,其实配置什么都可以;

注意1:我使用userName作为身份传递,如果使用email需要修改vIDM和KeyCloak中的ID策略;注意2:要选择启用“单点注销”,使用单点注销功能,配置留空,是为了使用KeyCloak中的配置;

ea884b0ef1bc08ba127b318c6a35d0d5.png
989e5f7ec568d3186adce62168af0c08.png

(可选)添加域用户到管理员组中

(重要)一旦修改了认证方法后,vIDM的本地用户无法登录,将失去vIDM的管理权限,所以建议将AD用户添加到Super Admin组中,避免尴尬;

1026b8e1da080a2db5a9f11f1a2e3c69.png

修改vIDM默认认证策略,转到到KeyCloak认证

进入身份访问管理->策略->编辑默认策略,更改第一认证方法为keycloak-unspecified

b13210f9ed9d17169b7220f0490f898d.png
8a886e4afb354e1c149f4fa57b043b39.png

验证vRA8认证

完成默认认证策略修改后,打开一个新浏览器(或打开隐私窗口),访问vRA8登录地址,成功转发到KeyCloak认证,输入认证信息后,跳转回vRA8页面。

提示1:推荐换一个浏览器,这样即使配置错误,当前浏览器也可以继续修改vIDM配置;

提示2:如果出现异常无法打开vIDM管理控制台,可通过 https://mgmt-vidm.corp.local/auth/0 进行登录;

提示3:虽然认证调整是工作的,但如果您的vRA8、vIDM和KeyCloak使用自签名证书,用户依然需要手工点击“忽略警告”,推荐采用企业CA签名证书,或者购买受信任证书。

c347b7b2ef9ea53a9074743aa5ae7fa9.png
e552758184cdcbbf6faa80415663f897.png

完成

至此,我们完成了vRA8与KeyCloak单点登录集成,可以极大提升用户使用体验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值