反馈已提交

网络繁忙

类Oauth2单点登录插件配置实例

  • 文档创建者:小张好像不在线
  • 历史版本:10
  • 最近更新:Carly 于 2023-05-31
  • 1. 概述

    1.1 目的

    结合客户实际的配置文档信息,介绍插件具体的配置步骤和参数。希望降低插件使用用户的配置成本,助力用户自行完成相关配置


    1.2 应用场景

    介绍Oauth 2认证和自定义认证两种模式下,具体的参数配置方法

    2. Oauth2认证模式实例

    Oauth 2认证作为一种通用的认证协议,客户侧需要有统一认证平台。可实现在统一认证平台中,所有完成认证的业务系统之间,进行跨域的单点登录和单点登出,无需重复登录

    2.1 具体配置

    Oauth 2认证模式下:

    首先,需要在插件的初始参数步骤配置中,获取到登录统一认证平台后,携带的code参数;

    接下来,在令牌申请步骤中,通过上一步获取的code参数,得到access_token参数;

    最后,在用户信息步骤中,通过上一步获取的access_token参数,得到用户信息。

    由于信息安全的缘故,以下配置中,部分参数用XXX代替

    2.1.1 初始参数

    1、客户文档信息

    获取code
    请求说明
    请求方式:get 方式
    请求路径:http://[ip]:[port]/sso/oauth/authorize?response_type=code&client_id=[client_id]&redirect_uri=[redirect_uri]

    参数说明

    参数

    参数类型

    必须

    说明

    response_type

    String

    固定值:code

    redirect_uri

    String

    回调地址

    client_id

    String

    自建应用编号

    返回说明

    参数

    参数类型

    必须

    说明

    code

    String

    认证授权码

    2、插件实际配置

    配置说明

    Client id、Client Secret,客户给出,此处用XXX代替

    Token name:code。与配置文档中的response_type一致

    认证接口地址:${"http://IP/sso/oauth/authorize?response_type=code&client_id="+client_id +"&redirect_uri=IP2"}

    1、认证接口地址中的IP和IP2分别为客户提供的实际业务中的统一认证平台地址和重定向地址;

    2、具体配置中的写法规则:

    (1)认证接口地址整体结构与配置文档信息中的请求路径一致;

    (2)${}的写法,表示{}中的内容,有参数引用或者公式计算;

    (3)“”中的内容,为固定内容(如地址中的"http://IP/sso/oauth/authorize?response_type=code&client_id="、"&redirect_uri=IP2"

    (4)参数引用,格式为:+参数(如地址中+client_id ;client_id后面的“+”,用于拼接后面的内容


    按照上述写法规则,认证接口地址也可以写成:

    ${"http://IP/sso/oauth/authorize?response_type=code&client_id=XXX&redirect_uri=IP2"} ——将client_id写成了确定值XXX,所以可以囊括在“”中


    ${"http://IP/sso/oauth/authorize?response_type=code="+client_id +"&redirect_uri”=+requestURL} ——将redirect_uri写成了引用值requestURL,格式为:+requestURL。可以动态识别客户首先访问的决策系统或报表地址

    2.1.2 令牌申请

    1、客户文档信息

    通过code获取access_token

    请求方式:get方式

    请求路径:http:///[ip]:[port]/sso/oauth/accessToken?client_id=[client_id]&client_secret=[client_secret]&grant_type=authorization_code&redirect_uri= [redirect_uri]&code=[code]

    参数说明

    参数

    参数类型

    必须

    说明

    grant_type

    String

    授权模式,固定值:authorization_code

    redirect_uri

    String

    回调地址

    client_id

    String

    自建应用编号

    client_secret

    String

    自建应用客户端密钥

    code

    String

    认证请求成功返回的code

    返回说明

    参数
    参数类型
    说明

    access_token

    String

    访问令牌

    token_type

    String

    令牌类型,bearer类型,大小写不敏感

    expires_in

    String

    过期时间,单位/毫秒,页面可设置

    refresh_token

    String

    更新令牌,可选,用即将过期token换取新token

    scope

    String

    指权限范围,可选,此处为read

    2、插件实际配置

    配置说明

    请求地址:

    get

    ${"http://IP/sso/oauth/accessToken?client_id=XXX&client_secret=XXX&grant_type=authorization_code&redirect_uri=IP2&code="+code}

    请求头、请求体无需配置

    请求结果:access_token:access_token


    1、请求地址整体结构与配置文档信息中的请求路径一致;

    2、“”中的内容,为固定内容,此处为:http://IP/sso/oauth/accessToken?client_id=XXX&client_secret=XXX&grant_type=authorization_code&redirect_uri=IP2&code=

    3、code为引用初始参数步骤中获取的参数值,此处写法为:+code

    2.1.3 用户信息

    1、客户文档信息

    通过access_token获取用户信息

    请求方式:get方式

    请求路径:http://[ip]:[port]/sso/oauth/userInfo?access_token=[access_token]

    参数说明

    参数

    参数类型

    必须

    说明

    access_token

    String

    访问令牌

    返回说明

    参数
    参数类型
    说明

    loginName

    String

    登录用户账号

    更多用户信息

    String

    通过页面自定义配置返回

    2、插件实际配置

    配置说明

    请求地址:

    get

    ${"http://IP/sso/oauth/userInfo?access_token="+access_token}

    请求头、请求体无需配置

    请求结果:fr_login_name:uid,其中参数值uid,为客户侧提供的登录用户值


    1、请求地址整体结构与配置文档信息中的请求路径一致;

    2、“”中的内容,为固定内容,此处为:http://IP/sso/oauth/userInfo?access_token="

    3、code为引用令牌申请步骤中获取的参数值,此处写法为:+access_token


    2.2 效果展示

    访问帆软决策系统时,跳转至客户侧的统一认证平台。登录成功后,再跳转回帆软决策系统

    111111111111.gif

    3.自定义认证模式实例

    自定义认证模式应用于,客户与帆软约定一套加解密逻辑。通过插件配置,解密token参数,得到用户名

    3.1 实例一

    3.1.1 期望效果

    客户部署了蓝凌OA平台,希望可以直接打开OA系统中集成的报表,无需再次输入帆软系统的账号密码;

    背景:客户的帆软决策平台和蓝凌OA的访问地址主域名一致,且蓝凌OA中部署了SSO组件,支持 ltaptoken 认证。

    3.1.2 具体配置

    客户登录蓝凌OA后,会在域名的cookie中,记录一个用户名生成的token。在主域名一致的情况下,可以通过插件读取并解析出用户名;

    通过参数获取的方式实现

    配置说明

    参数名:fr_login_name

    参数值:${LtpaToken(cookie(request, "LtpaToken"))}

    里层的 LtpaToken 表示从cookie中,获取的参数名。
    外层的 LtpaToken 表示,按照 Ltpatoken 逻辑解析出用户名。

    不同客户有不同的参数加解密逻辑,视客户的具体情况,进行参数值的配置

    3.2 实例二

    3.2.1 期望效果

    客户门户系统与帆软系统集成,在门户中点击相应链接,跳转到帆软系统,无需再次输入帆软系统的账号密码

    3.2.2 具体配置

    通过数据请求的方式实现

    客户文档信息插件实际配置

    接口地址:http://192.168.1.1:8080/com.sso.login


    参数提交方式:http get


    访问示例:

    http://192.168.1.1:8080/com.sso.login?token=13dad-987gej-ww3223&Name=amstd


    返回值:

    Json字符串:

    例子:

    成功返回 

    {"result":{"login":true,"userId":"aabbcc}}


    参数说明:

    token:门户访问系统登录时附带的token串,该token验证成功后失效

    Name:amstd(固定值)


    请求地址:get/${ "http://192.168.1.1:8080/com.sso.login?token="+token+"&Name=amstd"}


    请求头、请求体:不配置


    请求结果:

    fr_login_name:result.userId


    注意:1、请求地址中,token配置成动态参数+token;

              2、请求结果中,参数值的写法,参考客户文档,为result.userId


    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持