应用之间的Azure AD B2C SSO

时间:2018-06-11 14:41:09

标签: azure single-sign-on azure-active-directory azure-ad-b2c

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

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

  1. 用户被发送到配置的登录策略(https://login.microsoftonline.com/mytennant.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_webapp1_login&somemore=parameters)并登录。
  2. 用户通过我们用于在WebApp1中生成用户会话的id_tokencode参数发送回我们的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
  4. 但是,在执行第3步时,我们总是会从Azure中收到以下错误:

      

    AADB2C90088:尚未为此端点发出提供的授权。   实际值:B2C_1_webapp1_login和预期值:   B2C_1_webapp2_login

    错误很明显,但我们只是不知道如何解决这个问题。我们一遍又一遍地阅读文档,但无法找到解决此问题的线索。

    所以任何帮助都将受到高度赞赏。如果需要任何进一步的信息,请告诉我,我很乐意添加它们。

    谢谢,

    Moritz的

1 个答案:

答案 0 :(得分:0)

您不能使用从其他策略生成的代码。 (请参阅“p”参数下的文档 - this answer。)

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