![](/img/trans.png)
[英]How to configure Spring Boot to authenticate Web-app users and REST clients using AWS Cognito (OAuth2/OIDC)
[英]How to authenticate in MS Graph SDK with oauth2 token?
我使用常規工作流程通過 golang.org/x/oauth2 獲取了 oauth2 令牌,但無法驗證圖 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 配置中的 scope 更改為https://graph.microsoft.com/.default
來修復。 現在,當用戶登錄時,它會看到一個同意屏幕。 我還從我的應用程序注冊頁面的 API 權限屏幕添加了必要的 Microsoft Graph 權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.