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

微软图形 API 访问令牌问题

刁跃
2023-03-14

我在通过邮递员获取访问令牌时遇到问题。

我正在遵循此过程“流程 2”。http://codematters.tech/getting-access-token-for-microsoft-graph-using-oauth-rest-api/

“Flow 1”对我有用。

这是给定的场景。我正在发送带有正文的帖子请求。

发布 https://login.microsoftonline.com/e0xxxxxx-xxxx-xxxx-xxxx-xxxx09d53164/oauth2/v2.0/token

{

client_id:ID

client_secret:秘密

grant_type:密码

用户名:用户

密码:通过

范围:开放ID

}

响应-

为什么租户是空白的,因为它已填充?

谢谢你的帮助。

共有1个答案

苏鹏鹍
2023-03-14

您发送的网址有误。此参数不应AAD_name,而应为租户

试试这个:

POST: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

client_id=xxxxx
&scope=openid
&username=user
&password=pass
&grant_type=password

有关更多信息,您可以在此处查看。

如果要使用 {{AAD_name}},则需要先在邮递员中设置环境

然后,您可以发送帖子请求,如链接所示。

 类似资料:
  • 当我使用graph explorer(https://developer.microsoft.com/en-us/graph/graph-explorer)调用graph API(如teams API)时,它会自动为我提供一个访问令牌,该令牌具有执行任务(如创建团队和添加人员)的权限和身份验证。

  • 发布https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token http/1.1 但无法访问https://graph.microsoft.com/v1.0/users/{id}/calendars。我得到的信息与此类似:

  • 我正在使用微软图形SDK为我的应用程序(不是用户)获取访问令牌,以便从共享点读取。我一直在关注这个文档,并发布了这个SO问题。链接的SO中的代码是相同的。我能够添加应用程序权限以及在Azure门户中授予它们(通过按下按钮)。问题是,返回使用的令牌中不包含任何角色/scp声明。因此,当使用令牌时,我收到“令牌中需要存在scp或角色声明”消息。 可以肯定的是,在获取访问令牌时,我传递的范围的唯一值是:

  • Azure Active Directory图形Api允许您对登录的用户执行操作。 https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/signed-in-user-operations 这很有意义,因为我从未指定用户。如果使用获得的访问令牌,则会收到错误消息“访问令牌丢失或格式错误”。显然,这不是一个图形API访问令牌。 我如何

  • 访问令牌凭据(以及任何机密的访问令牌属性)在传输和储存时必须保持机密性,并只与授权服务器、访问令牌生效的资源服务器和访问令牌被颁发的客户端共享。访问令牌凭据必须只能使用带有RFC2818定义的服务器身份验证的1.6节所述的TLS 传输。 当使用隐式授权许可类型时,访问令牌在URI片段中传输,这可能泄露访问令牌给未授权的一方。 授权服务器必须确保访问令牌不能被生成、修改或被未授权一方猜测而产生有效的

  • 访问令牌是用于访问受保护资源的凭据。访问令牌是一个代表向客户端颁发的授权的字符串。该字符串通常对于客户端是不透明的。令牌代表了访问权限的由资源所有者许可并由资源服务器和授权服务器实施的具体范围和期限。 令牌可以表示一个用于检索授权信息的标识符或者可以以可验证的方式自包含授权信息(即令牌字符串由数据和签名组成)。额外的身份验证凭据——在本规范范围以外——可以被要求以便客户端使用令牌。 访问令牌提供了

  • 我遇到了很多文章,很多文章建议使用OAuth over API密钥。据我所知,在OAuth中,我们最终获得了访问令牌,它的有效期为很多天。例如,QuickBooks online OAuth令牌的有效期为6个月。 因此,访问令牌等同于API Key。无论谁得到它,都应该像API密钥一样保护它。OAuth调用应该通过HTTPS进行,类似于基于API Key的调用。 相对于OAuth的另一个优势是授权