gpt4 book ai didi

azure - 从 Azure B2C 访问 Microsoft Graph API

转载 作者:行者123 更新时间:2023-12-04 14:18:38 25 4
gpt4 key购买 nike

我有一个正在运行应用程序的 Azure AD B2C 租户。它配置为仅使用 Azure AD 和 Microsoft 帐户登录。此应用程序由 App Center Auth 使用。

我想使用相同的登录名从我的移动应用程序访问一些 Microsoft API(Microsoft Graph API、Azure DevOps API)。因此,我将 API 权限(Azure DevOps -> user_impersonation 和 Microsoft Graph -> User.Read)添加到我的 Azure AD 租户(不是 B2C 租户)中的应用程序,以在登录时授予这些权限。

如果我现在尝试在登录应用程序后使用访问 token 来访问例如Microsoft Graph 中的用户,我收到未经授权的错误。

// Sign-in succeeded, UserInformation is not null.
var userInfo = await Auth.SignInAsync();

// Get tokens. They are not null.
var idToken = userInfo.IdToken;
var accessToken = userInfo.AccessToken;

使用相同的方法,我尝试从 Microsoft Graph 获取用户照片

var graphAPIEndpoint = "https://graph.microsoft.com/v1.0/me";
var scopes = new[] { "user.read" };

var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Get, graphAPIEndpoint + "/photo/$value");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = await client.SendAsync(request);
var image = await response.Content.ReadAsByteArrayAsync();

UserImage.Source = ImageSource.FromStream(() => new MemoryStream(image));

有人建议如何配置 B2C/Azure AD 应用程序以使用访问 token 访问这些 API?或者我完全错了?

最佳答案

就像@juunas所说,从今天开始,您需要使用AAD Graph API来访问Azure AD B2C租户,这与Microsoft Graph API不同。

以下是相关文档:https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet

关于azure - 从 Azure B2C 访问 Microsoft Graph API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57567620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com