为了账号安全,请及时绑定邮箱和手机立即绑定

Azure AD Go SDK 守护程序应用程序列表用户返回“访问令牌丢失或格式错误”

Azure AD Go SDK 守护程序应用程序列表用户返回“访问令牌丢失或格式错误”

Go
有只小跳蛙 2022-06-13 10:39:59
我正在尝试通过图形 API Go SDK 检索用户详细信息。我有一个守护程序应用程序,它已设置有足够的权限,我已通过curl如下所示验证:获取令牌curl \  -X POST \  -H "Content-Type: application/x-www-form-urlencoded" \  --data 'client_id={client_id}&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret={client_secret}&grant_type=client_credentials' \https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token要求curl -X GET \ -H "Authorization: Bearer XYZ...." \"https://graph.microsoft.com/v1.0/users"我成功获得了用户列表。但是,当我通过 Go SDK 尝试此操作时,它失败了。我已经按照https://github.com/Azure/azure-sdk-for-go#more-authentication-details设置了身份验证所需的环境变量:- `AZURE_TENANT_ID`: Specifies the Tenant to which to authenticate.- `AZURE_CLIENT_ID`: Specifies the app client ID to use.- `AZURE_CLIENT_SECRET`: Specifies the app secret to use代码func main() {    authorizer, err := auth.NewAuthorizerFromEnvironment()    if err != nil {        fmt.Println(err)    }    client := graphrbac.NewUsersClient(os.Getenv("AZURE_TENANT_ID"))    client.Authorizer = authorizer    if _, err := client.List(context.Background(), "", ""); err != nil {        fmt.Println("list users", err)    }}错误list users graphrbac.UsersClient#List: Failure responding to request: StatusCode=401 -- Original Error: autorest/azure: Service returned an error. Status=401 Code="Unknown" Message="Unknown service error" Details=[{"odata.error":{"code":"Authentication_MissingOrMalformed","message":{"lang":"en","value":"Access Token missing or malformed."}}}]这里给我的文档建议身份验证和令牌由auth包处理。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

似乎 sdk 在后端使用 azure ad graph api 但不是 microsoft graph api。

Azure AD 图形 api 显示如下:https://graph.windows.net/{tenant_id}/users?api-version=1.6

Microsoft graph api 显示如下:https://graph.microsoft.com/v1.0/users

因此,您需要为您的 azure ad 中注册的应用程序添加 azure ad graph 权限,而不是添加 microsoft graph 权限。请按照以下步骤添加权限:

1.在您的 azure 广告中转到您的应用程序,然后单击“API 权限”-->“添加权限”-->“Azure Active Directory Graph”。

//img1.sycdn.imooc.com//62a6a3a70001438118860869.jpg

2.添加“目录”权限。

//img1.sycdn.imooc.com//62a6a3bb00018b7408340883.jpg

3.不要忘记授予管理员同意。



查看完整回答
反对 回复 2022-06-13
?
MM们

TA贡献1886条经验 获得超2个赞

尽管 MSAL 尚未准备好(在 SDK 中),但似乎 ADAL 已被弃用。

天蓝色控制台

//img1.sycdn.imooc.com//62a6a3cc0001971423290175.jpg

microsoft-authentication-library-for-go: 

//img1.sycdn.imooc.com//62a6a3dc00012a3318620646.jpg


查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信