Azure 调用图形API时访问令牌丢失或格式错误

Azure 调用图形API时访问令牌丢失或格式错误,azure,active-directory,Azure,Active Directory,遵循本指南: 我已经到了调用graph.windows.net以获取用户Azure AD中服务主体的ObjectId的阶段 然而,当我打电话时,我得到了以下信息: {"odata.error":{"code":"Authentication_MissingOrMalformed","message":{"lang":"en","value":"Access Token missing or malformed."},"values":null}} 我已经尝试过用'onmicrosoft.com

遵循本指南:

我已经到了调用graph.windows.net以获取用户Azure AD中服务主体的ObjectId的阶段

然而,当我打电话时,我得到了以下信息:

{"odata.error":{"code":"Authentication_MissingOrMalformed","message":{"lang":"en","value":"Access Token missing or malformed."},"values":null}}

我已经尝试过用'onmicrosoft.com'地址替换clientId(因此graph.windows.net/appname.onmicrosoft.com/…),但仍然收到了相同的消息。

扩展我的评论,当应用程序机密包含需要编码的字符时,我们已经看到了这一点。例如“+”和“=”

如果您没有使用一些可用的客户端帮助程序,或者正在使用Fiddler或Postman进行测试,则在调用graph api之前,您需要对机密进行URL编码,因此看起来它会变成:


“7hIkYG5m7xJQnocThxMc4yPjtbRP7bO41aNC%2bbrEzvo%3d”

只是一个关于赏金的评论:任何解决问题的方法都会得到赏金。你能给我们看看你的代码示例吗?错误很明显,您缺少令牌。因此,您没有发送令牌,或者没有按照API所期望的方式发送它。@如果我们在使用Fiddler检索令牌时遇到此问题,事实证明,这是由于应用程序/客户端密码包含特殊字符,需要作为承载令牌请求的一部分进行编码。我尝试了两种建议的解决方案,不幸的是,它们都不起作用。我仍然希望解决这个问题。你能确认你是如何测试对AzureAD的呼叫的吗,即Fiddler?另外,您能否确认您是否正在尝试获取一个承载令牌,然后调用graph api,或者您是否正在使用最近获取的承载令牌调用graph api?您确定吗?当我这样做时,我得到:“错误”:“无效的客户端”,“错误描述”:验证凭据时出错。提供的客户端密码无效只是为了确保,这是发布到时的客户端密码字段