背景: 我知道我可以通过使用/ common端点来支持多个租户。但是,使用/ common要求应用程序处理响应id_token,每个用户的iss(发出者值)可能会发生变化。
我的问题是,我正在使用一个第三方应用程序,该应用程序将处理来自/ common端点的OpenId响应。并且该第三方应用程序将响应中的iss值与/ common进行比较,因此将响应视为invalid_token。
我已经在这个应用程序上投入了太多资金,要迁移到其他应用程序确实很困难。此外,该应用很快将不支持/ common端点的行为。因此,基本上我不能使用/ common端点。
问题:
除了/ common端点之外,还有其他方法可以支持多个租户吗?
MS何时才提出/ common方法,以及人们在此之前如何支持多个租户。
谢谢
〜Urjit
答案 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索赔中的值。