Identityserver4 如何将多个acr_值传递给IdentityServer?

Identityserver4 如何将多个acr_值传递给IdentityServer?,identityserver4,oidc-client-js,Identityserver4,Oidc Client Js,我有一个IdentityServer 4和一个javascript客户端,它使用oidc-client.js库通过我的IdentityServer进行身份验证。我有一个特殊情况,需要传递两个acr值:idp:{providerName}和tenant:{tenantName}。 使用配置对象中的oidc-client.js库,我将arc_值字符串传递为acr_值:“tenant:lado”或acr_值:“idp:Google”。如果我尝试发送字符串列表acr_值:[“idp:Google”,“t

我有一个IdentityServer 4和一个javascript客户端,它使用oidc-client.js库通过我的IdentityServer进行身份验证。我有一个特殊情况,需要传递两个acr值:
idp:{providerName}
tenant:{tenantName}

使用配置对象中的oidc-client.js库,我将arc_值字符串传递为
acr_值:“tenant:lado”
acr_值:“idp:Google”
。如果我尝试发送字符串列表
acr_值:[“idp:Google”,“tenant:lado”]
并尝试在IdentityServer中访问它,我只会得到租户,它的值为:
Google,tenant:lado
。正如您所看到的,只检测到idp,但它合并了所有内容。如何实现发送两个单独acr_值的预期效果?

acr值必须以单个字符串分隔,如:“idp:Google租户:lado”。规范中“acr_值”请求参数列表下也描述了这一点

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