有关 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 但无法进行身份验证。
注意:如果您想在没有用户交互的情况下调用 API,请使用客户端凭据流。如果您需要用户交互,请使用授权代码流来生成访问令牌。
创建 Azure AD 应用程序并授予 API 权限:
根据您的要求,您可以选择任何令牌授予流程进行身份验证。请参阅此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
注意:您必须为应用程序分配
Reader
角色才能调用API。
使用访问令牌,我能够成功调用API,如下所示:
https://management.azure.com/subscriptions/SUBID/resourceGroups/myresourcegroup1/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01
参考资料:
GitHub - CoasterKaty/PHPAzureADoAuth:使用演示站点的 PHP Azure AD 登录(使用 oAuth) 由 CoasterKaty