У нас есть сайт, который аутентифицирует пользователей с Entra SSO - OIDC. На расследовании кажется, что Swoogo ожидает либо проблем ID_TOKEN от Entra или - и именно здесь я мог бы быть далеко от отметки - он получает электронное письмо от пользователя. Options.Events.OntokenResponsereceived Я могу видеть, что у нас есть токены, однако, похоже, они не сохранены правильно, как, когда я использую один и тот же код, чтобы просматривать токены в методе аутентифицированного контроллера, все значения токена являются нулевыми.
Может ли кто -нибудь указывать, куда я пойду неправильно, или если я действительно требует, чтобы я подходил к тому, что мне нужно, чтобы я подходил, как -то. /> промежуточное программное обеспечение: < /p>
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddMicrosoftIdentityWebApp(_config.GetSection("AzureAd"))
.EnableTokenAcquisitionToCallDownstreamApi()
.AddInMemoryTokenCaches();
// Configure OpenID Connect options to save tokens
services.Configure(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.SaveTokens = true;
options.Events.OnTokenResponseReceived = context =>
{
var tokens = context.TokenEndpointResponse;
var idToken = tokens.IdToken;
var accessToken = tokens.AccessToken;
var refreshToken = tokens.RefreshToken;
return Task.CompletedTask;
};
options.Events.OnTokenValidated = context =>
{
var identity = (ClaimsIdentity)context.Principal.Identity;
var email = identity.Claims.FirstOrDefault(c =>
c.Type == "email" ||
c.Type == "http://schemas.xmlsoap.org/ws/2005/05/i ... ailaddress"
)?.Value;
if (email != null)
{
identity.AddClaim(new Claim("email", email));
}
return Task.CompletedTask;
};
});
// Optionally configure the existing cookie auth scheme here (e.g. expiration, etc.)
services.Configure(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
options.ExpireTimeSpan = TimeSpan.FromHours(1);
options.SlidingExpiration = true;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = SameSiteMode.Lax; // or None if cross-site login flows, but Lax usually works
options.Cookie.HttpOnly = true;
});
Подробнее здесь: https://stackoverflow.com/questions/796 ... -entra-sso
Неудачная аутентификация в Swoogo с сайта с использованием Entra SSO ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение