Код: Выделить всё
[ApiController]
[Route("/")]
public class DummyController : ControllerBase
{
[HttpPost("foo")]
[Authorize]
public IActionResult Foo()
{
return Ok("Foo");
}
}
Код: Выделить всё
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = "https://login.microsoftonline.com/{TENANT-ID}";
//options.Audience = "http://localhost:8092/";
});
Код: Выделить всё
// program.cs
builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
options.ProviderOptions.LoginMode = "redirect";
options.ProviderOptions.DefaultAccessTokenScopes
.Add("https://graph.microsoft.com/User.Read");
});
Код: Выделить всё
public class DummyClient(IAccessTokenProviderAccessor accessTokenProviderAccessor)
{
private readonly IAccessTokenProviderAccessor _accessTokenProviderAccessor = accessTokenProviderAccessor;
public async Task FooAsync()
{
var tokenResult = await _accessTokenProviderAccessor.TokenProvider.RequestAccessToken();
if (tokenResult.TryGetToken(out var token))
{
_httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token.Value);
}
var client = new HttpClient();
var response = await _httpClient.GetAsync("http://localhost/foo");
var text = await response.Content.ReadAsStringAsync();
return text;
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... lazor-wasm