gpt4 book ai didi

azure - 外部用户访问我的 Office 365 第三方应用程序 : "a User account is not registered for the account"

转载 作者:行者123 更新时间:2023-12-02 06:59:07 29 4
gpt4 key购买 nike

我正在编写一个应用程序来访问 Office 365 中用户的数据(电子邮件、联系人、日历)。因此我需要为外部用户启用对我的访问。

我已按照此处的 Microsoft Office 说明 ( http://msdn.microsoft.com/en-us/library/azure/dn132599.aspx#BKMK_MultiT ) 进行操作,并在 Azure 门户中将我的应用程序定义为 Multi-Tenancy 。

然后我必须使用 Oauth2 来访问数据 ( http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-online-in-office-365.aspx )

当我按照上面链接中的步骤操作时,我在第一个 get 请求(授权请求)的响应中收到错误:

请求已发送:

GET_https://login.windows.net/{key_provided}/oauth2/authorize?response_type=code&client_id={client_id_of_my_app}&redirect_uri={redirec_uri_of_my_app}&resource=https:%2f%2foutlook.office365.com%2f&state=5fdfd60b-8457-4536-b20f-fcb658d19458

回复:

{redirec_uri_of_my_app}error=access_denied&error_description=AADSTS50034%3a+User+account+is+not+registered+for+the+account.%0D%0ATrace+ID%3a+3d9957b5-3d26-4193-b56a-0fbecd216499%0D%0ACorrelation+ID%3a+3ff14789-ca86-47f1-a02b-baaf084c416e%0D%0ATimestamp%3a+2014-08-14+19%3a11%3a15Z&state=5fdfd60b-8457-4536-b20f-fcb658d19458

我可以为我的帐户的用户完美检索身份验证代码和访问 token ,但不能为外部用户检索。

有人知道如何解决这个问题吗?

谢谢!

最佳答案

您正在将 OAuth 请求发送到 Azure AD 的租户特定终结点。请注意 Url 的 {key_provided} 部分 - 该部分代表 Azure AD 租户的租户 ID 或注册域名。如果登录的用户不是该租户中的用户,Azure AD 会引发此错误。

像您这样的 Multi-Tenancy 应用程序有两个选项:

  1. 自行执行主领域发现,并将 SSO 请求发送到正确的 Azure AD 特定于租户的终结点:当新的 Azure AD 组织注册您的应用程序时,记录其租户 ID 和注册的域名。在您的登录页面上,询问用户的电子邮件地址,并尝试使用电子邮件后缀来发现他们属于哪个组织。
  2. 使用 Azure AD 的公共(public)端点。使用“common”代替 URL 的 {key_provided} 部分。在这种情况下,Azure AD 将确定用户的租户并登录用户。您的应用程序将收到的 token 仍然来自用户的租户(iss 声明)。

2 is more convenient for apps. However #1 has an advantage when the user's Organization has customized their sign-in page with the company logo etc - in the case of #1 the user will directly be taken to the customized and familiar sign-in page.

I recommend a combination of the two: try determining the user's organization and sending them to the tenant specific SSO endpoint. If you're not able to - send them to the common endpoint.

希望这有帮助。

关于azure - 外部用户访问我的 Office 365 第三方应用程序 : "a User account is not registered for the account",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25316175/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com