Azure ad b2c 我们如何处理OIDC身份验证令牌?缓存它还是将其发送到用户代理?

Azure ad b2c 我们如何处理OIDC身份验证令牌?缓存它还是将其发送到用户代理?,azure-ad-b2c,openid-connect,Azure Ad B2c,Openid Connect,我们真的很难理解如何支持OIDC在B2C(或任何提供商提供的OIDC)中工作 我们认为我们理解协议的(某些)部分……但被其他部分完全弄糊涂了 想知道是否有人可以看看下面的图表,并(希望)纠正后的更正 我们的问题是: 在将用户发送到IdP并将会话记录Guid id保存为Nonce之前创建会话记录是否正确? 在重新发行代币时,临时代币会保持不变吗 有没有可能变成DoS攻击向量,攻击受保护的资源URL?或者应该使用WAF提前停止请求 我们已经对此争论了一段时间——但是从IdP获得的Auth_令牌

我们真的很难理解如何支持OIDC在B2C(或任何提供商提供的OIDC)中工作

我们认为我们理解协议的(某些)部分……但被其他部分完全弄糊涂了

想知道是否有人可以看看下面的图表,并(希望)纠正后的更正

我们的问题是:

  • 在将用户发送到IdP并将会话记录Guid id保存为Nonce之前创建会话记录是否正确?
    • 在重新发行代币时,临时代币会保持不变吗
    • 有没有可能变成DoS攻击向量,攻击受保护的资源URL?或者应该使用WAF提前停止请求
  • 我们已经对此争论了一段时间——但是从IdP获得的Auth_令牌是私有的,不应该与用户代理共享吗(换句话说,它是IdP会话令牌,而不是应用会话令牌)?
    • 如果是私有的,我们是否应该发回服务器上生成的应用程序会话令牌
  • 但是要调用另一个服务,我们应该缓存我们得到的Auth_令牌,以便我们可以使用它调用ServiceB?(或者我们现在完全上错了树?)

  • 当ServiceB调用失败(例如,没有足够的作用域)时,会发生什么?ServiceA是否将UserAgent发送回IdP,并在IdP中获得新的Auth_令牌,客户端(即ServiceA)使用该令牌替换其先前缓存的Auth_令牌,然后再次尝试调用ServiceB

  • 最后(我们对此有很多争论)。是否支持ServiceA返回Cookie和BearerToken,以便客户端可以使用BearerToken进行后续API调用…或者客户端在调用ServiceA的API时应该使用Cookie进行自身身份验证

我们知道这是很多问题。但是我们想不出一种方法来把我们面临的问题分解成更小的离散问题。整个事情现在让我们感到困惑

谢谢。非常喜欢

到目前为止,我们构建的序列图可在此处查看:

PS:如果有帮助,可以从这里重新编辑和嵌入上述图像(图像底部的文本/图像链接):

请参阅,其中显示了令牌验证逻辑如何与OpenID Connect和B2C一起工作

在将用户发送到之前创建会话记录是否正确 IdP,并将会话记录Guid id另存为Nonce

是的,这应该是正确的

在重新发行代币时,临时代币会保持不变吗

我不完全确定您的意思,但在ID令牌的nonce声明中,该值将保持不变,因此应该是这样

见>

为您的案例打电话给客户支持可能是值得的,因为有很多问题可能最好直接针对产品团队。我会跟进这些问题,然后再回复你