概述
OAuth 2.0是一种开放授权协议,它允许用户授权第三方应用访问他们在另一个服务提供方上的数据,而无需分享他们的凭据(如用户名、密码)。这种协议非常适合用于实现单点登录(SSO),使用户在多个应用之间无缝切换,无需重复登录。OAuth2.0协议定义了四种授权模式,Smartbi主要支持授权码模式(Authorization Code Grant)
前置条件:
...
注意 |
---|
本扩展包是OAuth 2.0的新版本,和旧的OAuth 2.0扩展包不兼容 注:如果部署新的OAuth 2.0 V2,先把旧的扩展包禁用或者删除 |
名词解释
- 统一登录平台:统一登录平台是企业或组织用于集中管理用户身份认证与权限控制的系统,用户通过一次登录即可访问所有授权的内部或外部应用,无需重复输入账号密码。
- OAuth 2.0: 是统一登录平台实现身份认证与授权流程的核心协议之一,统一登录平台可以使用OAuth 2.0或其它协议。
- Client ID:OAuth 2.0授权服务器颁发的应用ID。
- Client Secret:OAuth 2.0授权服务器颁发的应用密钥。
- Code:在OAuth 2.0授权码模式中,授权服务器生成的短期有效的授权码
- Access Token:访问用户资源的令牌,一般有较短的有效期。
单点登录流程(授权码模式(Authorization Code))
单点登录使用限制及主要能力
- 只支持PC端及集成页面单点登录,不支持插件端(电子表格、分析报告)及移动端APP;移动端可通过集成页面实现单点登录。
- 可通过界面配置登录流程中涉及的接口地址及接口参数等。
- 支持自定义配置分配给Smartbi服务器的应用ID(Client ID),应用密钥(Client Secret)
- 支持自定义灵活配置接口
- 包括:重定向统一登录地址、用授权码换取Access Token接口地址、用Access Token获取用户接口地址、统一注销地址
- 支持灵活配置接口入参、并可通过扩展方式支持入参的特殊处理(比如入参特殊加密,加前缀等)
- 可配置参数名称、参数设置方式(request、header、cookie等)、参数来源等
- 支持登录用户处理:用户不存在时的处理逻辑可配置,包括新建用户/不允许登录等
- 支持逃生通道:允许部分或全部用户使用逃生通道,或者直接禁用逃生通道
- 支持多套统一登录系统单点登录同一套Smartbi应用(多套系统的接口地址及入参不同,可单独配置)
单点登录配置
入口
入口:运维设置/单点登录-OAuth2协议配置;需要操作权限:"运维设置/模块配置与管理"(操作权限参考操作权限)
使用流程
1、在"统一身份管理平台"注册Smartbi应用;获取应用ID,应用密钥,并记录备用。
...
- 通过第二步中添加的Smartbi访问入口,如果能正常单点登录到Smartbi,则成功。
- 打开浏览器独立新窗口,直接在地址栏中输入Smartbi的访问连接(见第二步说明),正常跳转到统一登录平台登录页,输入统一登录的账号密码后,正确跳转回Smartbi,则成功;
- 如果配置了统一注销接口,在Smartbi中点击注销,会调用OAuth2接口登出,并回到统一登录平台登录页
- 如果单点登录不成功,可基于具体的错误提示信息进行调整。
接口配置示例
基于oauth2的授权码模式接口使用流程,由于每个接口在不同项目中的具体配置参数不太一致,示例中会说明依据的接口说明,项目需要根据自己的接口说明做调整。
获取授权码接口
- 接口定义:
- smartbi配置:
用授权码换取Token接口
- 接口定义:
- smartbi配置:
用Token获取用户接口
- 接口定义:
- smartbi配置: