首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在javascript中使用Microsoft Authentication Library (MSAL)获取个人Microsoft帐户的联系人?

如何在javascript中使用Microsoft Authentication Library (MSAL)获取个人Microsoft帐户的联系人?
EN

Stack Overflow用户
提问于 2019-06-03 16:48:05
回答 1查看 410关注 0票数 0

我已经使用Azure AD仪表板实现了MSAL库,授予了user.read,user.read.all,contacts.read,contacts.read.all,openid,profile,directory.read.all的权限。租户(同一组织中的帐户)能够登录他们的帐户,并能够使用访问令牌获取他们的联系人。当我尝试任何微软个人帐户时,登录工作良好,能够获得访问令牌,但当我使用端点(https://graph.microsoft.com/v1.0/me/contacts)进行microsoft Graph api调用时,我得到了401Authorated错误。

当我检查请求的响应对象以获取访问令牌时,对于租户,响应包括范围数组,如下所示:

代码语言:javascript
运行
AI代码解释
复制
scopes: Array(13)
0: "Calendars.Read"
1: "Calendars.Read.Shared"
2: "Calendars.ReadWrite"
3: "Calendars.ReadWrite.Shared"
4: "Contacts.Read"
5: "Directory.AccessAsUser.All"
6: "Directory.Read.All"
7: "openid"
8: "profile"
9: "User.Read"
10: "User.Read.All"
11: "User.ReadBasic.All"
12: "email"

对于个人账户,它是:

代码语言:javascript
运行
AI代码解释
复制
scopes: Array(2)
0: "openid"
1: "profile"

不知何故,个人帐户无法获得管理员授予的作用域的权限。

我的已注册应用程序还支持以下帐户类型:

代码语言:javascript
运行
AI代码解释
复制
Accounts in any organizational directory and personal Microsoft accounts (e.g. Skype, Xbox, Outlook.com)
All users with a work or school, or personal Microsoft account can use your application or API. This includes Office 365 subscribers.

下面是我的代码中用于登录用户的配置:

代码语言:javascript
运行
AI代码解释
复制
let msalConfig = {
  auth: {
    clientId: <client_id>
};
let signinScopes = ['user.read.all', 'contacts.read'];

以及我发出访问令牌请求时传递的作用域:

代码语言:javascript
运行
AI代码解释
复制
let tokenRequest = {
          scopes: ["user.read.all"]
        };

当我传递下面的令牌时,它会给出错误“请求被拒绝,因为请求的一个或多个作用域未经授权或已过期。用户必须首先登录并授予客户端应用程序对所请求作用域的访问权限。”

代码语言:javascript
运行
AI代码解释
复制
 var tokenRequest = {
          scopes: ["user.read.all", "contacts.read"]
        };

我希望获得所有在Microsoft帐户中注册的联系人。

EN

回答 1

Stack Overflow用户

发布于 2019-06-03 18:10:22

您不能为微软(又称个人)帐户申请user.read.all

作用域请求应如下所示:

代码语言:javascript
运行
AI代码解释
复制
scopes: ["user.read", "contacts.read"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56431511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档