Azure InviteRedirectURL不适用于AAD来宾用户invite

Azure InviteRedirectURL不适用于AAD来宾用户invite,azure,azure-active-directory,microsoft-graph-api,Azure,Azure Active Directory,Microsoft Graph Api,我有一个Azure Active Directory和一个SPA应用程序注册 我正在使用Microsoft Graph端点邀请来宾用户访问广告 图形邀请Api 后续文件- 请求URL-(请求后) 请求正文- { invitedUserDisplayName: "John Doe", invitedUserEmailAddress: "johndoe@org.com", inviteRedirectUrl: "https:

我有一个Azure Active Directory和一个SPA应用程序注册

我正在使用Microsoft Graph端点邀请来宾用户访问广告

图形邀请Api

后续文件-

请求URL-(请求后)

请求正文-

{
    invitedUserDisplayName: "John Doe", 
    invitedUserEmailAddress: "johndoe@org.com",
    inviteRedirectUrl: "https://example.com",
    "sendInvitationMessage": true,
    "invitedUserMessageInfo": {
      "customizedMessageBody": ""
    }
 }
这会在invitedUserMailAddress发送AAD邀请,并在邮件中发送一个赎回链接。 (这还会将来宾用户条目添加到my AAD中的用户列表中,邀请状态为待定接受)

现在,如果用户点击邮件中的赎回链接, 它们已成功重定向到inviteRedirectUrl (用户的邀请状态从待定接受更改为AAD中已接受)

我的问题- 但是,如果用户试图直接登录到或我的SPA(不接受发送到其电子邮件的邀请/在接受邀请之前) 系统会提示他们“查看权限”页面,以便将其添加到AAD中,但在此之后 它们不会重定向到inviteRedirectUrl

我正在使用inviteRedirectUrl跟踪用户的邀请状态(在调用inviteRedirectUrl时更改邀请状态), 如果用户直接尝试登录到我的SPA,我无法做到这一点


如果有人试图直接登录,这是不调用inviteRedirectUrl的理想行为吗?还是可以通过某种方式进行补救?

我认为这种行为是正常的,正如juunas在评论中提到的,您可以使用graph api查询用户并了解邀请批准状态


您可以请求图形api,如:
https://graph.microsoft.com/v1.0/users/{userId}?$select=externalUserState
。字段
externalUserState
显示邀请批准状态的状态。

我认为这种行为是正常的,正如juunas在评论中提到的,您可以使用graph api查询用户并了解邀请批准状态


您可以请求图形api,如:
https://graph.microsoft.com/v1.0/users/{userId}?$select=externalUserState
。字段
externalUserState
显示邀请批准状态。

SPA是一个多租户应用程序,但通过选择“任何组织目录中的帐户”选项,您可以确保尝试访问您的SPA应用程序的用户是某个AAD租户的一部分,如我在前面的评论中所述

但在查看错误时,它显示“用户帐户”sample@user.com“来自身份提供程序'live.com'在租户'My tenant'中不存在”由于您在任何组织目录中创建了多租户应用程序类型帐户的用户,因此会引发该问题,但是,您尝试使用的用户可能是outlook.com或hotmail.com,他们是live.com帐户的一部分。要支持live.com用户使用您的多租户应用程序,您可以选择“任何组织目录(任何Azure AD目录-Multitenant)中的帐户”和个人Microsoft帐户(例如Skype、Xbox):


选择该选项将使您获得与live帐户中的用户相同的体验,用户也可以访问您的多租户SPA,而不必成为您租户的一部分。但对于您,多租户应用程序类型肯定为“任何组织目录中的帐户”“,您当然需要将live.com用户作为来宾用户添加到您的租户或其他AAD租户才能访问您的SPA。

SPA是一个多租户应用程序,但通过选择“任何组织目录中的帐户”选项,您可以确保尝试访问您的SPA应用程序的用户,是某AAD租户的一部分,正如我在前面的评论中提到的

但在查看错误时,它显示“用户帐户”sample@user.com“来自身份提供程序'live.com'在租户'My tenant'中不存在”由于您在任何组织目录中创建了多租户应用程序类型帐户的用户,因此会引发该问题,但是,您尝试使用的用户可能是outlook.com或hotmail.com,他们是live.com帐户的一部分。要支持live.com用户使用您的多租户应用程序,您可以选择“任何组织目录(任何Azure AD目录-Multitenant)中的帐户”和个人Microsoft帐户(例如Skype、Xbox):


选择该选项将使您获得与live帐户中的用户相同的体验,用户也可以访问您的多租户SPA,而不必成为您租户的一部分。但对于您,多租户应用程序类型肯定为“任何组织目录中的帐户”“,您当然需要将live.com用户作为来宾用户添加到您的租户或其他AAD租户中,才能访问您的SPA。

我还注意到,直接访问目标租户中的应用程序与单击“邀请接受”链接不同。如果用户不是AAD/个人MS帐户,他们实际上无法通过直接访问应用程序(仅通过链接)来接受邀请。这可能是你无法影响的。您还可以通过图形API查询用户/设置更改通知等来跟踪邀请批准。我还注意到,直接访问目标租户中的应用程序与单击邀请接受链接的行为不同。如果用户不是AAD/个人MS帐户,他们实际上无法通过直接访问应用程序(仅通过链接)来接受邀请。这可能是你无法影响的。您还可以通过Graph API查询用户/设置更改通知等方式跟踪邀请批准。谢谢,我检查了Graph API,它运行良好。话虽如此,我认为invite RECOME端点对重定向URI有不同的行为是没有意义的。您好@AbhishekSharma,当您说用户在被添加为租户的来宾用户之前直接尝试访问此SPA时,他们仍然能够访问该应用程序,但我有一个问题,此SPA是否在AAD中注册为多租户应用程序?如果是,则t