Azure AD B2C并发访问令牌请求
为什么我们需要多个令牌请求: 我们正在为SPA使用隐式流从Azure AD B2C获取访问令牌,以访问受B2C保护的API。我们需要访问多个API,这些API都在B2C中注册为不同的应用程序,因此每个API都有不同的受众。由于他们都是不同的受众,B2C不支持针对多个受众的单个令牌请求,因此我们必须发出多个令牌请求 B2C设置的背景信息 我们支持本地帐户登录,以及使用其他Azure广告身份提供商的社交登录。我们还为我们的B2C(身份体验框架)使用定制策略 问题 此问题发生在使用Azure AD登录社交登录的用户身上。用户以前登录过 当发出多个请求时,我们注意到google chrome中的以下网络跟踪: 上面的跟踪显示:Azure AD B2C并发访问令牌请求,azure,azure-active-directory,azure-ad-b2c,azure-ad-b2b,Azure,Azure Active Directory,Azure Ad B2c,Azure Ad B2b,为什么我们需要多个令牌请求: 我们正在为SPA使用隐式流从Azure AD B2C获取访问令牌,以访问受B2C保护的API。我们需要访问多个API,这些API都在B2C中注册为不同的应用程序,因此每个API都有不同的受众。由于他们都是不同的受众,B2C不支持针对多个受众的单个令牌请求,因此我们必须发出多个令牌请求 B2C设置的背景信息 我们支持本地帐户登录,以及使用其他Azure广告身份提供商的社交登录。我们还为我们的B2C(身份体验框架)使用定制策略 问题 此问题发生在使用Azure AD登录
会话管理提供程序
... 为简洁起见删除。。。
所做的更改是使用默认会话提供程序
但是为什么外部会话提供程序不会禁止重新验证?元数据AlwaysFetchClaimsFromProvider
设置为false也不会抑制重新身份验证
但是使用这种解决方法会给我们带来另一个问题,这是在单独的问题中提出的。我认为需要重定向来测试会话(sessioncookies只发送到从该域提供服务的页面)。双重重定向可能是由社交组件引起的,因为它不是AzureAD登录(不确定)@eckes是的重定向需要针对Azure AD idp进行身份验证(获取令牌),但问题是b2c一直在这样做。我设法修改了b2c自定义策略,将Azure广告声明存储在会话cookie中,以防止其重定向,但出现了另一个问题,stringCollection声明(声明数组)被序列化为List.ToString()在反序列化时无法恢复原始值的情况下。您能否将更新作为您自己问题的答案?我几乎错过了它,因为当我最初读它的时候,我略读了一下,就像“哦,不,宝贝,这一切都错了”。。。然后我意识到这是一个更新,它为你工作。这对我有用!谢谢