use*_*426 9 azure azure-active-directory postman azure-ad-graph-api
我正在尝试调用 graph api 来获取用户信息。我首先使用邮递员获取令牌,然后使用该令牌尝试向图形 api 发出请求
我通过以下发布请求获得了令牌,并有 4 个关键值grant_type, client_id, client_secret and resource.
https://login.microsoftonline.com/{{tenantid}}/oauth2/token
Run Code Online (Sandbox Code Playgroud)
响应是
{
"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "3600",
"expires_on": "1555583717",
"not_before": "1555579817",
"resource": "https://management.azure.com/",
"access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNiIsIng1dCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCIsImtpZCI6IkhCeGw5bUFlNmd4YXZDa2NvT1UyVEhzRE5hMCJ9.yyyyyyyLTBjYjZmZDNiM2UwNCIsInRpZCI6IjM3NGY4MDI2LTdiNTQtNGEzYS1iODdkLTMyOGZhMjZlYzEwZCIsInV0aSI6ImVWTWdDbkU4QWtPVXY3bFQ2QlRSQUEiLCJ2ZXIiOiIxLjAifQ.kxHCm2oGsuUvlXbncXQe7Wb0l-ZENqqG9_P_co0SPdYA3GkhFKDi6sQ7OaaHeDs4S6kN0-Diw5qBOzmFipSA5EUorA7UDbJfiSVVlaEzLY3IX_4WSV4Exc-kLOaX0j7KgvsEQbc5TEk8e4dPfokG98gGPmhy19xLyV84lX1v6DzgXINzP8gPkGmqR_J7iVFQ3m-Y18dHlxDpqQMTKxvQGnrsa7rflyxGUwEwwFZJH8t5NRv_mjQOIQBuosfhMAH88l-J8zEmXWLFqEzFBBWrz9UxT6X-XxRQZW4WBSoHTKd3vuBcEo6kUclfe4G7COOvI4zG0-j10mmGziKlzjNVMw"
}
Run Code Online (Sandbox Code Playgroud)
然后我使用令牌发出 GET 请求
https://graph.windows.net/{{company}}/users/{{email}}?api-version=1.6
Run Code Online (Sandbox Code Playgroud)
和标题
Key Value
Authorization Bearer {{token}}
Run Code Online (Sandbox Code Playgroud)
但它因这个错误而失败
{
"odata.error": {
"code": "Authentication_MissingOrMalformed",
"message": {
"lang": "en",
"value": "Access Token missing or malformed."
}
}
}
Run Code Online (Sandbox Code Playgroud)
向 graph api 发出请求的正确方法是什么?
Md *_*ron 13
根据您的情况更新答案
好吧,我从头开始展示步骤。确保您准确完成以下步骤。
步骤:1:申请注册
转到您的 Azure 门户并单击azure active directory。现在单击App registrations并输入应用程序的名称。确保您已选择Web app / API应用程序类型。不管放什么,Sign on URL都没有任何影响。
请参阅下面的屏幕截图:
步骤:2 应用程序配置
通过单击settings选项配置您的应用程序设置。复制Application Id您的客户端 ID。生成您的client_secret菜单Key。现在单击Required permission 选项并单击Add新窗口。选择Select an API选择Microsoft Graph然后选择它。
请参阅下面的屏幕截图
这样您的 Azure 门户配置就已全部设置完毕。
步骤:3 令牌访问流程
为了获取令牌,我使用OAuth 2.0 Client Credentials Grant Flow。让我们启动,POSTMAN输入您的令牌端点,如下所示:
https://login.microsoftonline.com/`YourTenantNameOrID`.onmicrosoft.com/oauth2/token
Run Code Online (Sandbox Code Playgroud)
以正确的格式输入以下数据:
grant_type:client_credentials
client_id:您的门户应用程序 ID
client_secret:您的应用程序密钥
资源: https: //graph.microsoft.com/
注意:我正在使用 Microsoft Graph API,因此资源选择了 //graph.microsoft.com/
请参阅屏幕截图以了解更多详细信息
步骤:4 检查您的代币声明
您可以通过验证 JWT 上的声明来确保您的令牌包含所需信息。您可以使用https://jwt.io/来验证您的令牌。
请参阅下面的索赔图片:
步骤:5 访问您的 Microsoft Graph API 资源
例如: https: //graph.microsoft.com/v1.0/users
您已完成,单击“发送”并按预期检查您的回复。有关详细信息,请参阅屏幕截图。
请求格式:
API 的响应:
注意:确保您具有资源访问权限,除非您收到访问被拒绝的错误。
欲了解更多信息,您可以查看这里
如果您还有任何困惑,请随时在评论栏中提问。谢谢您,编码愉快!
| 归档时间: |
|
| 查看次数: |
23115 次 |
| 最近记录: |