You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向WSO2 OAuth联合认证器传递动态参数

WSO2 OAuth联合认证器动态传递ui_locales参数实现方案

步骤1:服务提供商(SP)端传递动态参数

  • 在SP发起认证请求时,将ui_locales参数作为请求参数动态拼接至认证端点URL。比如根据前端当前语言环境,生成类似https://<IS_HOST>/oauth2/authorize?client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>&response_type=code&ui_locales=ar的请求。
  • 若SP是基于WSO2 IS配置的,进入SP的OAuth/OpenID Connect配置页面,在「认证请求自定义参数」中添加ui_locales,确保该参数能被WSO2 IS正常接收。

步骤2:修改联合认证器逻辑动态拼接acr_values

  • 如果你使用的是自定义联合认证器,需修改其代码逻辑,在认证请求初始化阶段提取ui_locales参数并拼接到acr_values中。示例代码片段:
    // 从认证请求中获取动态传递的ui_locales参数
    String uiLocales = request.getParameter("ui_locales");
    // 基础acr_values模板
    String baseAcrValues = "urn:safelayer:tws:policies:authentication:level:low";
    // 动态拼接参数
    if (uiLocales != null && !uiLocales.trim().isEmpty()) {
        baseAcrValues += "&ui_locales=" + uiLocales;
    }
    // 将拼接后的acr_values设置到认证请求中
    authRequest.setParameter("acr_values", baseAcrValues);
    
  • 编译修改后的代码,替换WSO2 IS部署目录中对应认证器的JAR包,重启服务器生效。

步骤3:配置身份提供商(IdP)支持动态参数

  • 进入WSO2 IS的身份提供商配置页面,找到对应的联合认证IdP(如Safelayer IdP),确认其认证端点允许解析acr_values中动态传入的ui_locales参数,确保IdP能识别并使用该参数切换界面语言。

步骤4:验证功能

  • 从SP发起不同语言的认证请求,分别传入ui_locales=en、ui_locales=ar等参数,检查重定向至IdP的URL中acr_values是否正确包含对应语言参数。
  • 确认IdP界面根据传递的ui_locales参数展示对应语言。

内容的提问来源于stack exchange,提问作者Narayanaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:30:43