如何使用 PHP 和 Postman 来使用 Azure 应用程序角色

问题描述 投票:0回答:1

有关 Azure 应用程序角色和 PHP 的几个问题。

据我了解,我可以通过 REST API 或 Microsoft Graph 获取应用程序角色。我希望使用 API 路线,并在 Stack Overflow 上找到了一些有帮助的帖子,但我还没有做到这一点。

我希望在 Postman 中设置请求,使其正常工作,然后导出 PHP 代码 (cURL)。最终目标是为我的应用程序服务设置角色,以实现由角色确定的不同访问级别。

我使用的GET请求URL是(填写了订阅ID): https://management.azure.com/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()

我收到身份验证失败的消息,因为我不太明白如何通过 Azure 身份验证来处理此请求 - 我看到有人使用不记名令牌,但我不确定如何执行此操作,也不知道不记名令牌来自哪里?

我已经阅读了相当多的内容,并将继续阅读,但想发布此内容,以防有人有一些示例 PHP 代码、有关不记名令牌的信息,或者可以提供有关邮递员的任何帮助。

谢谢!

我尝试过使用 Postman 但无法进行身份验证。

php azure postman roles php-curl
1个回答
0
投票

注意:如果您想在没有用户交互的情况下调用 API,请使用客户端凭据流。如果您需要用户交互,请使用授权代码流来生成访问令牌。

创建 Azure AD 应用程序并授予 API 权限:

enter image description here

根据您的要求,您可以选择任何令牌授予流程进行身份验证。请参阅此MsDoc

对于示例,我通过 Postman 使用以下参数来使用客户端凭据流程

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
client_secret:ClientSecret
scope:https://management.azure.com/.default
grant_type:client_credentials

enter image description here

注意:您必须为应用程序分配

Reader
角色才能调用API。

enter image description here

使用访问令牌,我能够成功调用API,如下所示:

https://management.azure.com/subscriptions/SUBID/resourceGroups/myresourcegroup1/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01

enter image description here

参考资料:

GitHub - CoasterKaty/PHPAzureADoAuth:使用演示站点的 PHP Azure AD 登录(使用 oAuth) 由 CoasterKaty

Azure AD OAuth 客户端凭据流权限是否可以限制为特定邮箱? - Stack Overflow 由我

© www.soinside.com 2019 - 2024. All rights reserved.