如何使用Microsoft个人帐户的OAuth对EWS多租户应用程序进行身份验证

bt1cpqcv  于 2022-10-08  发布在  其他
关注(0)|答案(1)|浏览(223)

我有一个功能,可以使用使用基本身份验证的EWS访问用户的日历。

使用OAuth2.0切换到现代身份验证

我注册了一个多租户应用程序,以支持组织和个人Microsoft帐户。

我能够针对组织用户成功进行身份验证,但无法针对Microsoft个人帐户进行身份验证。
错误代码:INVALID_SCOPE
错误说明:为输入参数‘Scope’提供的资源值无效。

作用域https://outlook.office365.com/EWS.AccessAsUser.All

授权地址

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&redirect_uri=https%3a%2f%2fmyapp%2fAuthorization%2f%2fRedirect.aspx
&response_type=code
&response_mode=query
&prompt=login
&scope=https%3a%2f%2foutlook.office365.com%2fEWS.AccessAsUser.All
&state=6a155f24-7065-4f75-9fa9-3c1415acf7dd
&code_challenge=YzuKsJschRNKjuQdbJu5Q2awMmlxmT0QbPD2RI-QKn4
&code_challenge_method=S256

我可以使用EWS访问Microsoft个人帐户吗?还是应该更新代码以使用Microsoft Graph API?

wz3gfoph

wz3gfoph1#

  • 我尝试在我的环境中复制相同的内容,结果如下:*

我注册了一个多租户应用程序,以支持组织和个人Microsoft帐户,如下所示:

我为该应用程序添加了API权限,如下所示:

当我尝试使用组织帐号(以onmicrosoft.com结尾)登录时,通过*地址栏中的code**验证成功,如下所示:

授权地址

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=614xxx03-c5xx-xxxx-9xx8-031b2xxxxxx
&redirect_uri=https://outlook.office365.com/EWS/Exchange.asmx
&response_type=code
&response_mode=query
&prompt=login
&scope=https://outlook.office365.com/EWS.AccessAsUser.All
&code_challenge=Nj9YouqxxxxxxxxxxxxxxYsqlUdn1sga3CR0
&code_challenge_method=S256

响应:

但是,当我尝试使用Microsoft个人帐户(以outlook.com结尾)登录时,我收到了与您喜欢的相同的错误如下:

ERROR=INVALID_SCOPE ERROR_DESCRIPTION=为输入参数‘Scope’提供的资源值无效。

注意,EWS不支持个人Microsoft帐户。因此,您只能使用组织帐户来验证EWS。

要确认这一点,请查看Alfredo Revilla-MSFT在*Microsoft Q&A*中的类似场景。

相关问题