可以使用Microsoft.Identity.Web库来完成在ASP Net Core API中调用AADB2C中的Graph API。下面是一个基本示例:
首先,需要在Startup.cs文件中对Microsoft.Identity.Web库进行配置:
services.AddMicrosoftIdentityWebApiAuthentication(Configuration) .EnableTokenAcquisitionToCallDownstreamApi();
然后,在需要调用Graph API的Controller中注入ITokenAcquisition服务:
private readonly ITokenAcquisition _tokenAcquisition; public SomeController(ITokenAcquisition tokenAcquisition) { _tokenAcquisition = tokenAcquisition; }
接着,使用ITokenAcquisition服务来获取传递验证身份的access token:
string[] scopes = new[] { "https://graph.microsoft.com/.default" }; string accessToken = await _tokenAcquisition.GetAccessTokenForUserAsync(scopes);
最后,使用HttpClient来向Graph API发送HTTP请求:
using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); var graphResponse = await client.GetAsync("https://graph.microsoft.com/v1.0/me"); var graphResponseContent = await graphResponse.Content.ReadAsStringAsync();
这就是在ASP Net Core API中调用AADB2C中的Graph API的基本示例。