零衍课堂 | 仅需三步完成对接外部SSO Server高阶应用

119 阅读3分钟

概述

零衍系统管理平台(KINGPAAS,以下简称“零衍”)是一款以HZERO平台为底座,统一管理企业、用户等身份信息、统一单点身份认证、统一平台主数据管理、统一域名管理、支持登录页和门户自定义配置、支持多种单点协议的企业级应用产品。零衍的单点登录功能里对接外部单点登录服务端目前支持CAS和OAuth2协议。

零衍的统一身份认证功能,多数情况下在系统架构中担任的角色是单点登录服务端,实现目标环境的单点登录。

但是在一些大型客户项目实施的过程中,会发现客户的前期系统建设中已建立过单点登录的服务端,这时候零衍扮演的角色就变成了单点登录客户端。

也就是说在作为单点登录服务端管理其他环境的同时,也作为单点登录客户端被一个单点登录服务端所管理(这里的管理仅指单点登录,没有数据权限等层面)。本文将介绍零衍作为单点登录客户端的时候应该如何配置。

流程配置

接下来,我们将用一个案例介绍如何仅需三步即可完成单点登录配置,实现外部单点登录服务器对接:

确认hskp-auth服务是否引用了单点登录客户端依赖****(如果已经引用依赖,可以忽略)

和客户获取单点登录服务器配置,并进入零衍菜单:“单点配置管理”,创建单点配置并维护数据(本文暂不考虑用户同步操作,假设零衍内的用户和单点登录服务器的用户是一致的)

登录测试:详见以下操作流程

第一步:检查auth服务的依赖

<dependency>
<groupId>org.hskp</groupId>
<artifactId>hskp-authorization-dependencies</artifactId>
<version>${revision}</version>
</dependency>
或者是如下精确的依赖信息均可:
<!-- 单点登录 -->
<dependency>
<groupId>org.hskp</groupId>
<artifactId>hskp-authorization-security-sso-cas</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>org.hskp</groupId>
<artifactId>hskp-authorization-security-sso-oauth2</artifactId>    
<version>${revision}</version>
</dependency>

第二步:根据SSO Server进行单点登录配置

在获取到单点登录服务器的配置之后,新建单点登录配置 (平台管理员:平台管理 > 平台企业管理 > 单点配置管理;租户管理员:产品企业管理 > 单点配置管理)。

我们选择需要配置的企业,以及对应的域名,然后选择对应的协议。

如果是OAuth2协议的单点登录服务器需要选择OAUTH2单点登录类型,准备并填写以下字段。

image.png

如果选择了CAS协议,则需要准备并填写以下字段(JSON格式,指的是用户信息返回的格式为JSON,这里根据情况使用)

image.png

根据客户提供的SSO Server信息完成配置,我们以汉得的CAS3协议为例

第三步:登录认证测试

特别注意

在单点登录时,我们默认是认为 username 和 ${登录名属性}获取的值是一致的匹配关系。也就是说在平台用户管理里该企业下能找到username 相等的一个用户,这样才能顺利登录,否则会提示用户找不到的错误,针对用户同步相关的功能,可以使用零衍的统一用户管理或者LDAP用户同步,本文不再详细介绍。

到这里我们已经能够完整的配置零衍作为客户端的单点登录了。


既然已经看到了这里,那我们顺便观察一下单点登录服务端返回给我们的用户信息,加深一下我们的知识印象,我们可以去找一下user属性,这个就是我们配置的${登录名属性}。

xml格式

这里会有cas: 作为标签头,我们在配置的时候需要忽略。

json格式

以上,就是零衍对接外部单点登录服务器的简单介绍,是否已经解决了您对于单点登录相关的问题?你学会了吗?

零衍致力于系统管理降本增效,让系统管理变得更简单。欢迎联系零衍运营人员申请试用~


操作手册:

汉得焱牛开放平台 文档>技术产品>零衍系统管理平台KINGPAAS

联系邮箱: openhand@vip.hand-china.com

试用零衍管理平台期间,若您有任何问题需要咨询,都可前往焱牛开放平台(open.hand-china.com)提反馈,或将疑问发往联系邮箱,我们有专业人员针对您的问题进行解决回复,有技术精良的研发团队根据您的反馈进行应用优化。期待您的反馈,我们将用心对待每一份回应。