【发布时间】:2018-11-20 20:34:56
【问题描述】:
我们正在尝试为我们的几个应用实施 SSO,以使用户能够登录一次,然后在应用之间无缝切换。为此,我们使用 Azure AD B2C 来存储我们的用户,并且已经能够使用我们的第一个应用程序实现登录。然而,当用户切换到另一个应用程序时,我们现在面临问题:似乎没有将用户发送到登录策略并让他/她重复登录过程,就无法在第二个应用程序中授权用户。
这是我们目前正在做的事情:
- 用户被发送到配置的登录策略 (https://login.microsoftonline.com/mytennant.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_webapp1_login&somemore=parameters) 并登录。
- 用户使用
id_token和code参数被发送回我们的WebApp1,我们使用这些参数在WebApp1 中生成用户会话 - 当用户访问 WebApp2 时,我们从 Step2 发送
code,并在 WebApp2 中使用它从 Azure AD B2C (https://login.microsoftonline.com/mytennant.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_webapp2_login) 请求访问令牌
但是在执行第 3 步时,我们总是从 Azure 收到以下错误:
AADB2C90088:尚未为此端点颁发所提供的授权。 实际值:B2C_1_webapp1_login 和预期值: B2C_1_webapp2_login
错误很明显,但我们只是不知道如何解决这个问题。我们一遍又一遍地阅读文档,但找不到解决此问题的线索。
因此,我们将不胜感激任何帮助。如果需要任何进一步的信息,也请告诉我,我很乐意添加它们。
谢谢,
莫里茨
【问题讨论】:
-
伙伴,你找到解决办法了吗?我正在使用相同的场景解决完全相同的问题...
-
好吧,是也不是——我们决定对所有应用只使用一种策略。因此,这个问题不再困扰我们了。但是,我认为您可以(而不是我们尝试使用代码)直接将 id_token 作为承载发送到您的 api?
标签: azure single-sign-on azure-active-directory azure-ad-b2c