【问题标题】:How can I pass multiple acr_values to IdentityServer?如何将多个 acr_values 传递给 IdentityServer?
【发布时间】:2019-07-10 23:16:11
【问题描述】:

我有一个 IdentityServer4 和一个 javascript 客户端,它们使用 oidc-client.js 库向我的 IdentityServer 进行身份验证。我有一个特定的情况,我需要传递两个 acr 值:idp:{providerName}tenant:{tenantName}。 在配置对象中使用 oidc-client.js 库,我将 arc_values 字符串传递为acr_values: "tenant:lado"acr_values: "idp:Google"。如果我尝试发送字符串列表acr_values: ["idp:Google","tenant:lado"] 并尝试在 IdentityServer 中访问它,我只会得到租户并且它的值是:Google,tenant:lado。如您所见,仅检测到 idp,但它合并了所有内容。如何实现发送 2 个单独的 acr_values 的预期效果?

【问题讨论】:

    标签: identityserver4 oidc-client-js


    【解决方案1】:

    acr 值必须以空格分隔为单个字符串,例如:“idp:Google tenant:lado”。这也在“acr_values”请求参数列表下的规范here 中进行了描述。

    第一个冒号之后的所有内容都被解析为“idp”acr 值的原因是,oidc 客户端库使用“encodeURIComponent”序列化数组,并导致数组值使用逗号分隔符连接。 IdentityServer 在解析 acr 值时假设它们是空格分隔的,因此它无法将值分开。

    【讨论】:

      猜你喜欢
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 2015-05-15
      • 2018-08-01
      • 1970-01-01
      相关资源
      最近更新 更多