我正在使用 microsoft graph api 应用程序来提取员工信息,但我不是 Azure 管理员。我的组织中的管理员已授予我附加权限。即使有严格的权限也会出现错误, 代码:Authorization_RequestDenied 消息:权限不足,无法完成操作。
我正确地获取了客户端。 您能帮忙解决这个错误吗?
注意:要访问用户信息,需要通过传递
范围来生成访问令牌。User.Read.All
创建了 Microsoft Entra ID 应用程序:
使用以下端点生成访问令牌:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
&client_id=ClientID
&response_type=token+id_token
&redirect_uri=https://jwt.ms
&response_mode=fragment
&scope=openid offline_access User.Read.All
&state=12345
&nonce=12345
访问令牌和ID令牌已成功生成:
如果您使用 ID 令牌来访问用户信息,您将收到
401
错误,因此 使用访问令牌来获取用户详细信息。
解码访问令牌并确保 aud 是 Microsoft Graph 并且
User.Read.All
范围存在:
通过上述访问令牌,我能够成功访问令牌用户信息:
https://graph.microsoft.com/v1.0/users?$select=DisplayName,EmployeeId,employeeHireDate,employeeLeaveDateTime,employeeType