跳到主要内容
版本:6.0.0

单点登录-OAuth 2.0

1. OAuth 2.0 概述

OAuth 是一种单点登录的协议,通过配置即可实现观远数据与OAuth 认证服务提供方之间的认证授权,用户可通过已采购或自有搭建的统一账户登录平台登录观远数据。

2. OAuth 2.0 标准化配置步骤

2.1 准备工作

(1) 确认使用的统一认证服务是否提供为标准OAuth2协议,如果不是则可能需要定制化开发。

(2) 确认观远数据平台OAuth的认证回调地址 (认证服务器配置应用时需要此信息)

  ${BI 服务地址}/standard-oauth2/authenticate    

(3) 认证服务器提供以下信息 

  • 认证服务器地址:认证服务提供方地址,一般供用户输入帐密/扫码的页面(获取Code)

如:http://xxx.guandata.com/auth/realms/guandata/protocol/openid-connect/auth

  • AccessToken获取地址:向认证服务提供方请求Token的URL(使用Code换取Token)

如:http://xxx.guandata.com/auth/realms/guandata/protocol/openid-connect/token

  • 用户信息获取地址:向认证服务提供请求用户信息的URL(使用Token换取用户信息)

如:http://xxx.guandata.com/auth/realms/guandata/protocol/openid-connect/userinfo

  • 登出地址(可选):将当前用户从SSO登出的地址

  • ClientID: 认证方客户端ID

  • ClientSecret: 认证方客户端密码

  • BindKey:返回的用户信息中用来和BI用户匹配的字段,如email 

(3) 确保BI服务器与SSO认证服务器网络联通。

2.2 修改配置

(1)进入管理员设置-系统集成-SSO页面,选择单点登录方式为:OAuth

(2)编辑OAuth配置

  • 认证协议(Protocol):OAuth 2.0

  • ClientId: 认证方客户端Id

  • ClientSecret: 认证方客户端密码

  • 身份认证地址(AuthorizationURL):认证服务提供方地址,一般为供用户输入帐密/扫码的页面地址

  • 回调地址(选填,取决于认证服务接口是否需要redirect_uri参数):   ${BI 服务地址}/standard-oauth2/authenticate  

  • AccessToken获取地址(AccessTokenURL):向认证服务提供方请求Token的URL(使用Code换取Token)Token支持在请求Header中传输
  • 获取用户信息地址(ApiURL):向认证服务提供方请求用户信息的url(使用token换取用户信息)。token可以以${accessToken}格式在地址url或header或Post body中传入。

    方式三:支持在请求Post body中传参,需JSON行中包含${accessToken},如:

  • 用户信息字段(UserIDKey):用户信息中用来和BI用户映射的字段,如email 

(3)默认登录地址和登录重定向(可选)

  • 默认登录地址为:${BI服务地址}/standard-oauth2/authenticate

  • 如果您提供了登出URL,则打开登出重定向开关,并将地址配置为您提供的LogoutURL(一般需要配置为单点登出地址)

如果用户信息字段的值与已经创建的用户账号不一致,需要在BI中配置隐射关系表。 

3. 测试流程

  • 访问${BI服务地址}/standard-oauth2/authenticate,自动跳转到SSO登录认证页面 ,如Keycloak:

  • 输入正确的帐密后,跳转回BI,并确认登录用户为SSO表中绑定的SSO用户

  • 如果配置了登出地址,在BI中选择登出,会在SSO中登出且回到SSO登录页面