Microsoft graph api Microsoft Graph-401,/beta/education/classes的未知错误/

Microsoft graph api Microsoft Graph-401,/beta/education/classes的未知错误/,microsoft-graph-api,microsoft-teams,microsoft-graph-edu,Microsoft Graph Api,Microsoft Teams,Microsoft Graph Edu,我正试图向Microsoft Graph beta教育端点发出请求,以获取一个测试结果 提出的请求是: /beta/education/classes/{class-id}/assignments 我在Azure广告中设置了阅读作业和花名册的权限,并授予了它们 我使用ADAL.NET使用客户端凭据获得访问令牌,并且该令牌似乎具有读取分配的正确应用程序权限: { "aud": "https://graph.microsoft.com/", "iss": "https://sts.wind

我正试图向Microsoft Graph beta教育端点发出请求,以获取一个测试结果

提出的请求是:

/beta/education/classes/{class-id}/assignments
我在Azure广告中设置了阅读作业和花名册的权限,并授予了它们

我使用ADAL.NET使用客户端凭据获得访问令牌,并且该令牌似乎具有读取分配的正确应用程序权限:

{
  "aud": "https://graph.microsoft.com/",
  "iss": "https://sts.windows.net/5cf890b2-6a94-452f-8c29-9f7365b68ba0/",
  "iat": 1520000639,
  "nbf": 1520000639,
  "exp": 1520004539,
  "aio": "...",
  "app_displayname": "...",
  "appid": "...",
  "appidacr": "1",
  "e_exp": 262800,
  "idp": "https://sts.windows.net/5cf890b2-6a94-452f-8c29-9f7365b68ba0/",
  "oid": "bd0154f3-2626-40c1-82a5-39bc8879729c",
  "roles": [
    "EduRoster.Read.All",
    "EduAdministration.Read.All",
    "EduRoster.ReadBasic.All",
    "EduAssignments.Read.All"
  ],
  "sub": "...",
  "tid": "...",
  "uti": "...",
  "ver": "1.0"
}
但是,在Fiddler中,当我使用令牌发出请求时,它返回
401 unauthorized
,主体如下:

{
  "error": {
    "code": "UnknownError",
    "message": "",
    "innerError": {
      "request-id": "bf6cd2e1-53a6-472a-b038-2b035eb8f7db",
      "date": "2018-03-02T14:41:41"
    }
  }
}
似乎只有那个端点我无法访问,因为
/v1.0/education/users/{user id}/classes
工作正常并返回正确的响应

编辑

端点似乎出于某种原因不允许应用程序权限,尽管这些权限似乎是适用的。我认为这种能力将来会出现

我已尝试重新使用委派权限。这一次,scp的外观如下:

"scp": "AllSites.Read Calendars.Read Contacts.Read Directory.Read.All EduAdministration.Read EduAssignments.ReadWrite EduRoster.Read EduRoster.ReadBasic email Files.Read full_access_as_user Group.Read.All Mail.Read MyFiles.Read Notes.Read Notes.Read.All Notes.ReadWrite.CreatedByApp profile Sites.Read.All Sites.Search.All Tasks.Read TermStore.Read.All User.Read User.Read.All User.ReadBasic.All"
已授予EduAssignments权限。请求现在返回403:

{
  "error": {
    "code": "",
    "message": "Access denied.",
    "innerError": {
      "request-id": "02f6d0d4-8867-4e43-94a4-d29f3a1e03f7",
      "date": "2018-03-02T20:47:06"
    }
  }
}
根据文件,这似乎是出于设计。这些权限仅允许用户访问其所属类的作业。如果我加入一个类,那么我可以查看它的作业

然而,我想要的是能够查看任何班级的作业,而不仅仅是我所属的班级。从中,有一些应用程序权限用于执行我想要的操作:

教育作业。阅读。全部:阅读带分数的课堂作业。允许应用程序读取所有用户的作业及其分数


但是,该端点根本不支持它们。

根据文档,您不能使用应用程序权限调用该端点。它需要是用户身份下的委托呼叫

不支持应用程序

您可以调用
/v1.0/education/users/{user id}/classes
的原因是,它只允许使用角色调用应用程序:

edutroster.Read.All,edutroster.ReadWrite.All


你有一个,所以成功了。

在文档中遗漏了这一点。我已经更新了我的问题