MS应用程序-支持多个租户而不使用/ common端点

时间:2018-11-25 16:26:06

标签: azure azure-ad-b2c azure-ad-b2b

背景: 我知道我可以通过使用/ common端点来支持多个租户。但是,使用/ common要求应用程序处理响应id_token,每个用户的iss(发出者值)可能会发生变化。

我的问题是,我正在使用一个第三方应用程序,该应用程序将处理来自/ common端点的OpenId响应。并且该第三方应用程序将响应中的iss值与/ common进行比较,因此将响应视为invalid_token。

我已经在这个应用程序上投入了太多资金,要迁移到其他应用程序确实很困难。此外,该应用很快将不支持/ common端点的行为。因此,基本上我不能使用/ common端点。

问题:

  1. 除了/ common端点之外,还有其他方法可以支持多个租户吗?

  2. MS何时才提出/ common方法,以及人们在此之前如何支持多个租户。

谢谢

〜Urjit

1 个答案:

答案 0 :(得分:1)

公共端点的目的是允许用户通过任何租户登录。

您可以在应用中通过在URL中指定租户ID(而不是common)来重定向用户以登录到任何租户。

任何需要支持N租户方案的应用都应验证发行人的声明(因为您不需要任何租户),但是您需要检查发行人是否是允许的租户之一。此第三方应用程序将需要具有执行此操作的能力。任何租户的发行者URI为https://sts.windows.net/tenant-id/

通过转至租户的OpenId配置,可以找到要批准的租户的发行者URI。我的测试租户的租户在这里:https://login.microsoftonline.com/joonasapps.onmicrosoft.com/.well-known/openid-configuration

找到“发布者”属性,例如https://sts.windows.net/52a7d760-d554-4751-bb71-cc3585633f2e/

这是该租户发出的代币中的iss索赔中的值。