Sla #11
@@ -58,6 +58,14 @@ public static class AuthSetup
|
|||||||
{
|
{
|
||||||
options.Authority = $"https://login.microsoftonline.com/{tenantId}/v2.0";
|
options.Authority = $"https://login.microsoftonline.com/{tenantId}/v2.0";
|
||||||
options.TokenValidationParameters = validationParameters();
|
options.TokenValidationParameters = validationParameters();
|
||||||
|
// Без этого JwtBearerHandler переименовывает короткие имена claim'ов
|
||||||
|
// из токена в длинные ClaimTypes-URI (upn → ClaimTypes.Upn,
|
||||||
|
// unique_name → ClaimTypes.Name — а НЕ ClaimTypes.Email!) ещё до
|
||||||
|
// того, как код увидит ClaimsPrincipal. CurrentUserAccessor ищет
|
||||||
|
// ровно сырые имена ("upn", "unique_name") — с ремаппингом они не
|
||||||
|
// совпадали ни с чем, и email инициатора не находился вообще
|
||||||
|
// (не только у токенов без claim'а email, как этот — у ЛЮБЫХ).
|
||||||
|
options.MapInboundClaims = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
services.AddAuthentication()
|
services.AddAuthentication()
|
||||||
@@ -65,6 +73,7 @@ public static class AuthSetup
|
|||||||
{
|
{
|
||||||
options.Authority = $"https://login.microsoftonline.com/{tenantId}/v2.0";
|
options.Authority = $"https://login.microsoftonline.com/{tenantId}/v2.0";
|
||||||
options.TokenValidationParameters = validationParameters();
|
options.TokenValidationParameters = validationParameters();
|
||||||
|
options.MapInboundClaims = false;
|
||||||
options.Events = new JwtBearerEvents
|
options.Events = new JwtBearerEvents
|
||||||
{
|
{
|
||||||
// Подпись, издатель и аудитория у app-only токена те же, что у
|
// Подпись, издатель и аудитория у app-only токена те же, что у
|
||||||
|
|||||||
Reference in New Issue
Block a user