页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

CAS是一种开放授权协议,它允许用户授权第三方应用访问他们在另一个服务提供方上的数据,而无需分享他们的凭据(如用户名、密码)。这种协议非常适合用于实现单点登录(SSO),使用户在多个应用之间无缝切换,无需重复登录。

前置条件:

1、统一登录平台使用标准CAS2.0或3.0协议,希望单点登录到Smarrbi系统。

2、统一登录平台跟Smarrbi系统用户一致;可参考 用户同步 做用户同步

3、部署CAS单点登录扩展包,下载:xxxx,参考:部署扩展包

适用场景:

1、统一登录平台通过连接单点登录到BI系统首页。

2、统一登录平台通过连接单点登录打开BI系统集成页面,包括打开资源、创建资源、打开模块等。

3、统一登录平台通过连接单点登录打开BI系统移动端首页

4、未登录时,浏览器输入BI系统连接自动跳转到统一登录平台的登录页面。

5、通过BI系统前端注销则注销整个统一登录平台。


信息

本扩展包是CAS单点登录的新版本,和旧的CAS扩展包不兼容

注:如果部署新的CAS V2,先把旧的扩展包禁用或者删除,同时把config配件界面的加密类型及登录验证类设置修改。


CAS单点登录流程

单点登录使用限制及主要能力

1、支持PC端及集成页面、插件端、移动端APP的单点登录。插件登录系统需进行

插件/移动端APP登录系统需进行"登录配置插件"才可以成功登录,详情参考电子表格实现CAS登录验证

2、可通过界面配置登录流程中涉及的接口地址及接口参数等。

...

5、如果CAS登录改造较多,有更多特殊配置,可尝试使用 自建协议配置实现。 自建协议配置实现

单点登录配置

入口

入口:运维设置/单点登录-CAS协议配置;需要操作权限:"运维设置/模块配置与管理"(操作权限参考操作权限

使用流程

1、获取统一登录平台中CAS服务器的协议版本号及服务器地址,并记录备用。

2、设置需要应用CAS单点登录的页面范围,如果未选择相应的页面,则打开该页面会继续使用BI系统的账号密码进行登录验证。

当应用范围列表中未包含需要单点登录处理的页面时,可通过"自定义"添加需要单点登录的其它页面。

Image Modified

3、配置CAS服务器信息(依据第一步获取的信息填写):包括Server地址、登录地址、注销地址,非特殊情况下,可按如下示例填写:
       server地址:https://服务器地址/cas
       登录地址:https://服务器地址/cas/login
       注销地址:https://服务器地址/cas/logout

4、可选择配置登录用户属性:
在一些特殊场景下,CAS返回的用户信息中,唯一的登录账号并非CAS中的 4、可选择配置登录用户属性:在一些特殊场景下,CAS返回的用户信息中,唯一的登录账号并非CAS中的 name 属性值,而是其他属性,例如:mobile(手机号),此时直接指定用于登录BI产品的用户属性信息。

        

5、可选择配置登录用户处理规则:

        5.1、当BI系统的用户未实时跟统一登录的用户同步时,会出现登录用户在BI系统中不存在的情况。

...

                5.3.1、当前只支持分配到固定的用户组或角色,不支持动态同步用户组。

Image Added


6、可选择配置逃生通道:

        6.1、逃生通道允许用户绕开CAS登录协议,直接使用BI系统账号密码登录,主要是解决CAS服务异常、BI系统单点登录配置错误等导致无法正常登录BI系统的异常情况。

...

2、选择参数来源及参数值:可配置静态值、用户界面输入的账号/密码

Image Modified

8、验证单点登录是否成功:有以下几种方式验证

8.1、打开浏览器独立新窗口,直接在地址栏中输入BI系统的访问连接,正常跳转到统一登录平台登录页,输入统一登录的账号密码后,正确跳转回BI系统,则成功

...

8.3、如果单点登录不成功,可基于具体的错误提示信息进行调整。

插件端/移动端APP登录特殊处理配置示例

基于CAS的授权码模式接口使用流程,由于每个接口在不同项目中的具体配置参数不太一致,示例中会说明依据的接口说明,项目需要根据自己的接口说明做调整。原始接口说明 

接口传递的密码需要加密并且需要多传appcode参数

...

Image Added

 背景:客户那边的接口中,有个密码需要加密,,通过目前的配置没法满足BI产品配置:Image Removed
        可以通过先配置【上个接口返回】获取到前面的token,再自定义一个Java处理类,放到扩展包中
Image Removed
        然后在【接口入参高级配置】中配置自定义的类名,进行拼接参数
Image Removed
自定义Java处理类代码示例:
Image Removed

Image Added

 再自定义一个Java处理类(处理密码加密逻辑),放到扩展包中;然后在【高级】配置中配置自定义的类名,比如:

自定义Java处理类代码示例:
图xx
客户可自行按照示例编写Java类,并编译为.class文件,再放置到扩展包的对应目录下。(扩展包的本质为zip压缩包)