使用使用Microsoft图表

问题描述:

我试图用通过OAuth2验证程序的微软图形API但是我努力工作,如何使用委托权限,并且不需要用户登录委托上的后台权限。使用使用Microsoft图表

我很高兴到应用程序与自己进行一次认证,但是这将会在守护进程/服务的运行,不会通过用户进行交互。因此,我不能使用Microsoft描述Delegated Permissions的方式,因为首先使用/authorize,然后可以拨打/token

我知道你可以使用密钥/token,但似乎只使用应用程序权限而不是委托 - 这是我有权访问的。

有没有办法使用委托权限,就好像我是一个用户,但不必每次使用一个登录页面的用户进行身份验证?

这是不可能的。术语“授权”在此处是非常有意的,因为它意味着“用户已将其权限授予您的应用程序,因此您可以代表那个用户”。应用程序权限不会被委派,因为上下文中没有user将其访问权委托给您。

大部分的微软图形功能,可工作在应用和委托作用域所以在很多情况下你仍然可以执行相同的场景。有一些注意事项,如使用速记/me,当没有用户验证时(而不是用户需要使用/users[{id}])则不存在。然而,有些情况下,没有相应的应用范围,并且这些情况经常被用来缩小差距。

+0

如此以来应用程序的权限需要管理员的批准和授权访问的所有项目(不完美适用于大型广告),如果我已经设置委托权限的应用程序,但仍然使用API​​令牌方法我将能够使用/用户[{id}]但仅限于我的用户有权访问的内容? – Dom

+0

如果您已请求需要管理员同意的委托权限(即User.Read.All),并且您已收到来自管理员的同意,则是。一旦“用户”通过OAUTH,他们将有权执行对'/ me'和'/ users {别人而不是我'端点的呼叫。他们仍然不能执行他们不会的功能(例如,如果'user'不能正常编辑其他'users',那么你的应用程序将无法做到这一点)。 –

+0

并且没有办法不使用仅限管理员没有用户通过用户界面登录应用程序的所有应用程序权限? – Dom