【问题标题】:Azure AD B2C SSO between Apps应用之间的 Azure AD B2C SSO
【发布时间】:2018-11-20 20:34:56
【问题描述】:

我们正在尝试为我们的几个应用实施 SSO,以使用户能够登录一次,然后在应用之间无缝切换。为此,我们使用 Azure AD B2C 来存储我们的用户,并且已经能够使用我们的第一个应用程序实现登录。然而,当用户切换到另一个应用程序时,我们现在面临问题:似乎没有将用户发送到登录策略并让他/她重复登录过程,就无法在第二个应用程序中授权用户。

这是我们目前正在做的事情:

  1. 用户被发送到配置的登录策略 (https://login.microsoftonline.com/mytennant.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_webapp1_login&somemore=parameters) 并登录。
  2. 用户使用id_tokencode 参数被发送回我们的WebApp1,我们使用这些参数在WebApp1 中生成用户会话
  3. 当用户访问 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


【解决方案1】:

您不能使用从不同策略生成的代码。 (请参阅“p”参数下的文档 - Get Token。)

您对第二个网络应用使用不同的策略是否有原因?您可以在 B2C 中创建一个新应用程序,并使用与应用程序 1 相同的策略来定位它。或者您需要为第二个应用程序重复步骤 1 和 2 并依赖 SSO 配置。

【讨论】:

  • 我们对不同应用使用不同策略的原因是我们要求用户在通过策略注册时输入应用特定的数据。我们能够使用相同的策略和 client-id/client-secret 获得令牌。但是,由于我们也想为 API 使用 SSO 功能(将 code 作为 api-token 传递),我们无法真正将用户重定向到登录页面。
猜你喜欢
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 2021-12-11
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
相关资源
最近更新 更多