我决定从旧的azure portal创建应用程序并将应用程序设置为多租户。
我为令牌和OAuth 2.0授权端点(https://login.microsoftonline.com/<my tenant id>/oauth2/token
)设置了OAuth 2.0令牌端点(https://login.microsoftonline.com/<my tenant id>/oauth2/authorize
)以进行授权。
如果我尝试使用任何已注册的Office 365用户ID进行授权,而不是我用来登录azure的用户,那么我会收到此错误:
来自身份提供商“https://sts.windows.net/49322bd9-93ea-4911-a8e4-1aa10bc5b680/”的用户帐户“tester1 @tescore.onmicrosoft.com”在租户'mary'中不存在,并且无法访问应用程序'8adfad2b-f28a-40a6-8698-8b53ac506132'承租人。该帐户需要首先作为外部用户添加到租户中。注销并使用其他Azure Active Directory用户帐户重新登录。
如果我手动将此用户添加到azure中,那么我将获得访问令牌,但事实并非如此。这必须发生在运行时,因为我的应用程序是多租户。你能说出我可能出错的地方吗?
答案 0 :(得分:3)
您需要使用https://login.microsoftonline.com/common/oauth2/authorize
端点。
这是允许从任何Azure AD租户登录的通用端点。您不应在多租户应用程序中使用特定于租户的端点。
至于获取访问令牌,您必须使用已登录用户的租户ID。这样您就可以获得仅在其租户中有效的访问令牌。