我正在使用带有OpenIdConnect / Cognito的.Net Core 3.1。我们将Azure AD联合SAML使用到Cognito。一切正常,我的用户进行身份验证并生成了一个会话cookie。但是,问题是这样的。我转到Cognito并“禁用”我的用户。但是,由于已通过身份验证的cookie是会话,因此用户仍然可以正常身份验证。我必须完全关闭浏览器,然后为我的.Net Core应用程序重新打开,以确认用户在Cognito中被禁用。这是正确的实现还是我做错了什么?是由于在后台登录到Azure并保持该登录会话处于活动状态吗?我只是对它们的工作方式感到困惑。
一些示例代码:
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
options.ResponseType = OpenIdConnectResponseType.Code;
string authorityURL = $"https://cognito-idp.{AWSSecret.Instance.Region}.amazonaws.com/{AWSSecret.Instance.UserPoolId}/.well-known/openid-configuration";
options.Authority = authorityURL;
options.MetadataAddress = authorityURL;
options.ClientId = AWSSecret.Instance.UserPoolClientId;
options.ClientSecret = AWSSecret.Instance.UserPoolClientSecret;
options.UsePkce = true;
options.GetClaimsFromUserInfoEndpoint = true;
});