Azure AD - 获取用户的个人资料照片,OAUTH访问失败

时间:2018-01-11 22:23:42

标签: azure azure-active-directory

我尝试在使用EWS连接到Office 365的电子邮件应用上下文中访问已登录用户的个人资料照片。

该应用已在portal.azure.com上注册,具有以下必需权限:

  1. Office 365 Exchange Online - >通过Exchange Web服务以登录用户身份访问邮箱
  2. Windows Azure Active Directory - >登录并阅读用户个人资料
  3. EWS部分工作正常,我能够签署用户,获取访问权限和刷新令牌,并使用"授权:Bearer access_token"执行EWS操作。

    我遇到问题的部分是获取用户的个人资料照片。

    这是我要去的文档:

    https://msdn.microsoft.com/en-us/office/office365/api/photo-rest-operations

    我尝试使用的API端点是:

    获取https://outlook.office.com/api/v2.0/me/photo

    ... with"授权:Bearer access_token"报头中。

    上述API会返回此响应:

      

    HTTP 403   {"错误":{"代码":" ErrorAccessDenied","消息":"访问被拒绝。   检查凭据,然后重试。"}}

    可能出现什么问题?

    1. 根据上述文档,使用user.read范围可以获取用户的照片。
    2. "登录并阅读用户个人资料"上面提到的权限有一个工具提示说" User.Read",所以我认为这是正确的范围
    3. Azure AD User.Read permission / scope

      我尝试在jwt.io上解码我的访问令牌,它有:"scp": "full_access_as_user" - 我的User.Read范围在哪里,或者"完全访问"包括" user.read"?

      有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是因为您尝试使用v2端点Rest API,但您没有使用v2端点注册应用程序。

User Photo API仅适用于Azure AD v2身份验证终结点,非Azure AD和Oauth:

enter image description here

您需要转到Microsoft Application Registration Portal注册您的申请。有关详细信息,请参阅this document

答案 1 :(得分:0)

仅供记录:

由于我们无法使用OAUTH2 API -

  • 因为我们的应用程序已经使用EWS(Exchange Web服务)......

我们最终使用GetUserPhoto命令和用户(帐户)自己的电子邮件地址。

工作正常。