Microsoft Graph API 增量权限

Microsoft Graph API Incremental Permisisons

我可以使用 msgraph-sdk-javascript 库进行增量权限吗?例如,用户仅使用配置文件登录,但随后授权访问其电子邮件帐户或日历。

如您所见here,Microsoft Graph JavaSciprt SDK 不包含身份验证库。它只是对象调用和序列化的更高级别的包装器。

您有责任获取访问令牌并将其提供给图书馆。您可以通过这种方式传递令牌:

var client = MicrosoftGraph.Client.init({
  authProvider: done => {
    //first parameter takes an error if you can't get an access token
    done(null, "PassInAccessTokenHere");
  }
});

Microsoft 正在经历身份验证和授权端点的重要转变(v1 与 v2)。其中一个主要区别是 v2 支持范围(与 v1 中的资源相反),它为 incremental consent 提供支持。

Microsoft 当前维护两个身份验证库:

  • Adal.js 以 v1 端点为目标(不支持增量同意)
  • MSAL.js 以 v2 端点为目标(并支持增量同意)

最后,v2 在支持的流程和支持的 API 方面有 set of limitations

我建议您在做出选择之前阅读大量有关该主题的内容,以确保您不会在项目进行到一半时陷入 "something is missing in that version" 的死胡同。