当前位置: 首页 > 知识库问答 >
问题:

访问被拒绝。请检查凭据,然后重试

水睿
2023-03-14

我尝试按照此权限指南在node.js上使用Microsoft Graph API(https://graph.microsoft.com/v1.0/me/calendarView)访问日历事件,但收到错误响应:

{
   "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "7c2...",
      "date": "2016-07-13T21:19:11"
    }
}

调用是使用 :

request({url : 'https://graph.microsoft.com/v1.0/me/calendarview',  qs : queryParams, 'auth': {'bearer': token}}, function (error, response, body) {
    ...
});

请求具有有效令牌和对…/me/via的调用

request({url : 'https://graph.microsoft.com/v1.0/me/', 'auth': {'bearer': token}}, function (error, response, body) {
    ...
});

退货:

{"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"id":"<valid_id>",
"businessPhones":[],
"displayName":"<valid_name>",
"givenName":"<valid_name>",
"jobTitle":"<valid_title>",
"mail":"<valid_email>",
"mobilePhone":"<valid_cell>",
"officeLocation":null,
"preferredLanguage":"en-US",
"surname":"<valid_name>",
"userPrincipalName":"<valid_email>"}

因此,我假设这是在我创建了两个应用程序(一个用于节点服务器,一个用于 Web 客户端应用程序)https://manage.windowsazure.com/ 上设置的权限的问题。我正在使用护照进行身份验证,并使用客户端 ID 和密钥进行 Web 客户端应用程序。

var AzureOAuthStrategy = require('passport-azure-oauth').Strategy;
passport.use(new AzureOAuthStrategy({
    clientId:     config.live.clientID,
    clientSecret: config.live.clientSecret,
    tenantId:     config.live.tenant,
    resource:     'https://graph.microsoft.com/', 
    redirectURL:  config.live.callbackURL
},
function(accessToken, refreshToken, profile, done) {

以下是我在节点应用程序上为“其他应用程序的权限”设置的内容:

    < li>Windows Azure Active Directory: < ul > < li >委派的权限 < ul > < li >阅读所有用户的完整配置文件 < li >登录并阅读用户配置文件
  • 委派的权限
    • 完全访问用户日历
    • 读取用户日历
    • 委派权限
      • 访问

      下面是我在web客户端应用程序上为“其他应用程序的权限”设置的内容:

      • Microsoft图形:
        • 应用程序权限
          • 在所有邮箱中读写日历
          • 读取所有邮箱中的日历
          • 登录用户
          • 读取用户联系人
          • 拥有对用户日历的完全访问权限
          • 读取用户日历
          • 登录并阅读用户资料
          • 应用程序权限
            • 在所有邮箱中读写日历
            • 读取所有邮箱中的日历
            • 读取用户和共享日历
            • 读写用户和共享日历
            • 读取所有用户的基本配置文件
            • 读取用户配置文件
            • 读取用户联系人
            • 读取用户日历
            • 应用程序权限:无
            • 委托权限
              • 登录并阅读用户资料

              我不能100%确定azure管理门户中设置的权限和特定endpoint访问之间的关系。我已经阅读了API scope文章,但是那篇文章中的讨论对于我的需要来说有点太概念化了。

              最终,我尝试访问租户 ID 中的所有可保留资源并将其写入事件。

共有1个答案

孙化
2023-03-14

我能够通过删除然后通过 https://manage.windowsazure.com/ 重新生成应用程序,然后更新客户端 ID 和密钥来解决此问题。事后,我能够从应用程序列表中删除本机客户端(节点)应用程序,并且仍然可以使调用正常工作。

虽然我没有使用飞雪提供的参考https://jwt.io/,但我认为它对于将来调试Azure到API权限将是无价的。

 类似资料:
  • 我正在尝试用office 365 API构建我的第一个应用程序,但有一个大问题。 我正试图通过Office 365 API和Azure Active Directory获取用户的主要信息,为此我正在做: 1)获取访问令牌。对https://login.windows.net/common/oauth2/token令牌的http post请求: 头:内容类型:应用程序/x-www-表单-乌伦编码 发

  • 我不熟悉使用EWS管理的API。 以下是我在使用EWS API时遇到的问题:EWS API -模拟更新由服务帐户之外的任何其他用户创建的日历项目,引发错误“访问被拒绝”。请检查凭据,然后重试。 详细信息:1.我正在使用服务帐户,例如。abc@xyz.onmicrosoft.com.此用户是全局管理员,并且还分配了ApplicationImpersonation角色。(登录Online Office

  • 我按照这个链接创建我的第一个docker映像,它成功了,现在我正试图从这个链接将这个映像推送到我的docker存储库中。但每当我试图将此图像推入存储库时,就会出现这种类型的错误。 有人能给我一些关于这个问题的提示吗?任何帮助都将不胜感激。 注意:我已成功登录docker

  • 我正在使用jdbc和Tomcat服务器。它已经完美运行了一个星期,它突然崩溃了。我还注意到我什至不需要密码即可从命令行登录mysql。这是我的代码: 下面是catalina.out的堆栈跟踪:

  • 我有以下代码: 当我试图保存一个文件时,我得到了以下错误 原因是什么?我该如何解决?我对这个文件夹有读写权限。

  • 问题内容: 这是我的编辑从第27行到第39行的代码: 我认为我的问题可能与Win7教授有关:(访问被拒绝) 如何解决这个问题,或者我需要做些什么或阅读才能使它起作用? 谢谢你不燃烧。 我只是更改了文件夹选项,使我获得完整的(Access …),现在我只需要弄清楚为什么在运行javac VendingMachine.java时为什么没有得到任何输出,我想是有一个新问题。 问题答案: 您的工作目录为。