登录
首页 >  Golang >  Go问答

在 MS Graph SDK 中使用 OAuth2 令牌进行身份验证的方法

来源:stackoverflow

时间:2024-03-01 16:09:26 192浏览 收藏

今天golang学习网给大家带来了《在 MS Graph SDK 中使用 OAuth2 令牌进行身份验证的方法》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我通过 golang.org/x/oauth2 使用常规工作流程获取了 oauth2 令牌,但无法验证 graph sdk (github.com/microsoftgraph/msgraph-sdk-go)。我的应用程序允许多租户 ad 和个人帐户。

我实现了 azcore.tokencredential 接口:

type azuretokencredential struct {
    token oauth2.token
}

func (c azuretokencredential) gettoken(_ context.context, _ policy.tokenrequestoptions) (*azcore.accesstoken, error) {
    return &azcore.accesstoken{
        token:     c.token.accesstoken,
        expireson: c.token.expiry,
    }, nil
}

这就是我使用它的方式:

cred := azureTokenCredential{token: token}
auth, err := a.NewAzureIdentityAuthenticationProvider(cred)
if err != nil {
    return "", errors.WithStack(err)
}
adapter, err := msgraphsdk.NewGraphRequestAdapter(auth)
if err != nil {
    return "", errors.WithStack(err)
}
client := msgraphsdk.NewGraphServiceClient(adapter)
u, err := client.Me().Get(nil)

当我使用 ad 帐户登录时,出现以下错误:

服务器返回意外状态代码,并且没有为此代码注册错误工厂:401


正确答案


通过将 oauth2 配置中的范围更改为 https://graph.microsoft.com/.default 来修复。现在,当用户登录时,它会看到同意屏幕。我还从应用程序注册页面的 API 权限屏幕添加了必要的 Microsoft Graph 权限。

好了,本文到此结束,带大家了解了《在 MS Graph SDK 中使用 OAuth2 令牌进行身份验证的方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>