1

背景:我知道我可以通过使用 /common 端点来支持多个租户。但是,使用 /common 需要应用程序处理响应 id_token,其中 iss(颁发者值)可能因用户而异。

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

我已经在这个应用程序上投入了太多,而转移到其他应用程序真的很困难。此外,该应用程序不会很快支持 /common 端点的行为。所以基本上我不能使用 /common 端点。

问题 :

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

  2. MS 究竟是什么时候提出 /common 方法的,在此之前人们是如何支持多个租户的。

谢谢,

~ 乌尔吉特

4

1 回答 1

1

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

您可以通过在 URL 中指定租户 ID 而不是 common。

任何需要支持 N 租户方案的应用程序都应验证颁发者声明(因为您不需要任何租户),但您需要检查颁发者是否是允许的租户之一。此第 3 方应用程序需要具备执行此操作的能力。任何租户的颁发者 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 声明中的值。

于 2018-11-25T17:23:29.320 回答