从未经身份验证的客户端访问onenote内容

时间:2017-09-04 16:46:57

标签: azure azure-active-directory microsoft-graph onenote onenote-api

Microsoft Office 365已在公立学校部门得到大量采用。我正在编写一个应用程序,让教师与家长就课堂活动,日程安排等进行沟通,使用Onenote进行内容,使用Outlook / Exchange日历进行日程安排。由于我所写的学校系统中的教师大量采用了Onenote,因此使用onenote笔记本作为可从客户端应用程序访问的信息的后端是有意义的。我坚持如何使用Azure AD进行身份验证。这是一个场景,我想在Graph,AD,Azure等上导航所有MS文档时提供一些建议。由于似乎有10种方法可以做所有事情,所以有点压倒性。

  • 客户端是由家长在iOS或Android设备上安装的移动应用。
    • 家长可以查看学校级别的信息,以及班级信息,文件,照片等。应用程序中父母的部分不需要身份验证。学校工作人员将为内容创建日历和笔记本。
    • 每位教师都会创建一个专用笔记本,其中的部分和页面将显示在移动应用中的“页面”上。学校会构建应用程序将访问的笔记本和日历ID列表。
    • node.js应用程序充当移动应用程序的REST api,通过msGraph充当Office Live的REST客户端,或直接打开onenote api
    • 学校系统IT为我的node.js应用程序提供了对每个学校列出的任何和所有Onenote笔记本和Outlook日历的读取权限。
    • 或者,每位教师都可以授权我的应用程序访问他们的笔记本和日历,类似于其他应用程序集成的工作方式(docusign等),但最好是我希望它可以通过IT在整个组织的单点完成管理员

根据这些设计指南,我的应用程序和Azure AD中需要实现哪种身份验证方法才能让我的应用程序访问这些资源而无需最终用户,父母的AD身份验证? MSDN上的许多冲突的示例项目,文章和howtos让我完全不知所措。

1 个答案:

答案 0 :(得分:2)

您需要对Microsoft Graph OneNote API进行应用级访问。以下是https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service

的参考资料

阅读日历和笔记本,你需要Calendars.Read和Notes.Read.All" application"权限