我已经使用PHP创建了一个Azure Web App。我启用了AAD身份验证,并且所有这些都可以解决,您必须以公司用户身份登录才能访问该站点。
然后,我使用App Registration --> Manifest
创建了新的应用程序角色。我已经为自己分配了该角色,然后注销并重新启动,并且在$_SERVER
变量中找不到该角色的任何引用。我可以找到我的用户名,令牌,principal_id等,但是没有任何内容引用我刚刚创建的AppRole。
我的问题是,如何获得已分配登录用户的应用程序角色?我发现的唯一文档是.net或真正古老的Azure经典产品。
有什么想法吗?
答案 0 :(得分:1)
基于official documentation,已定义的AppRole将在id_token中返回。
要获取用户的id_token,可以使用Azure AD OAuth 2.0 authorization code flow,并将openid添加到作用域。在这里,我使用邮递员来获取access_token和id_token:
然后我可以获取id_token
通过分析id令牌,您可以获得用户的角色:
答案 1 :(得分:0)
我想到将Microsoft Graph API用于此类操作的最简单方法。
以下是示例Github Repo供参考:
https://github.com/Azure-Samples/active-directory-php-graphapi-directoryextensions-web
要获得用户角色,您只需在图形api下方调用即可:
src="<?php echo get_stylesheet_directory_uri(); ?>/images/sample.jpg"
您可以查看下面的文档以获取更多参考:
https://docs.microsoft.com/en-us/graph/api/user-list-memberof?view=graph-rest-1.0&tabs=http
总体来说,流程是这样的:
示例响应如下:
GET /me/memberOf
or
GET /users/{id | userPrincipalName}/memberOf
希望有帮助。