我目前正在努力设置cookie/auth令牌的超时时间,以验证我的。NET Core应用程序通过OpenIdConnect身份验证模型使用Azure AD。
正在通过以下方式在ConfigureServices方法中设置登录方案:
services.AddAuthentication(options => options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme);
然后我设置我的配置如下:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
CookieName = "MyCookie",
ExpireTimeSpan = TimeSpan.FromHours(2)
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions()
{
Authority = authorityUri.AbsoluteUri,
ClientId = azureOptions.ClientId,
ClientSecret = azureOptions.ClientSecret,
ResponseType = OpenIdConnectResponseTypes.CodeIdToken,
Events = new OpenIdConnectEvents()
{
OnAuthorizationCodeReceived = async context =>
{
await aAuthenticateMiddleware.OnAuthenticate(context, logger);
}
}
});
app.UseMiddleware<aAuthenticateMiddleware>();
请注意,我没有使用内置标识(因为它对我们的目的不实用),而是使用自定义中间件。
在中间件层中,我检查用户是否经过身份验证,如果没有,则发出质询:
var authenticationProperties = new AuthenticationProperties() { RedirectUri = context.Request.Path.Value ?? "/" };
authenticationProperties.AllowRefresh = false;
authenticationProperties.IssuedUtc = DateTime.Now;
authenticationProperties.ExpiresUtc = DateTime.Now.AddHours(2);
await context.Authentication.ChallengeAsync(
authenticationManager.IdentityProvider.AuthenticationScheme,
authenticationProperties,
ChallengeBehavior.Automatic
);
这一切都很好,并且正确地验证了用户等,但是这是发布15分钟到期的身份验证令牌(和cookie),并且忽略了我尝试设置的2小时到期。
我一直在参考来自aspnet/security存储库的GitHub的最新源代码示例。。。。然而,这些都没有提到任何关于覆盖默认到期日的内容。
https://github.com/aspnet/Security/tree/dev/samples/OpenIdConnect.AzureAdSample
我发现的大多数示例仍然引用旧的AspNet库,而不是AspNetCore库。
一些文章建议使用永久设置为True的SignInAsync允许遵守ExpireTimeSpan,但是这会在调用它时抛出“不支持的异常”。也许Azure AD不支持SignInAsync?
有人对如何实现这一目标有什么见解吗?
在UseOpenIdConnectAuthentication中设置UseTokenLifetime=false
在过去的几周里,我一直在努力掌握KeyClope,这样我就可以实现一种使用遗留提供商(基于Oracle,带有会话表和各种奇怪的东西)对用户进行身份验证的方法。我们计划在不久的将来解决这个问题,但目前我们必须解决这个问题,所以我们的想法是在前线使用KeyClope——利用它提供的主要好处,比如SSO——在需要身份验证的应用程序中省略传统的身份验证提供程序。 我读了一些关于构建自定义OIDC身份提供程
问题内容: 有谁知道或知道我可以学习如何使用Python和Google App Engine创建自定义身份验证过程的地方? 我不想使用Google帐户进行身份验证,也希望能够创建自己的用户。 如果不是专门针对Google App Engine,是否有关于如何使用Python和Django实现身份验证的资源? 问题答案: django 1.0今天在Google AppEngine上进行了更新。但是您
我试图在一个反应式Spring Boot应用程序中配置一个Spring Security性,该应用程序具有一个Vuejs前端,在未经身份验证时将用户重定向到外部OpenID提供程序(用于身份验证)。在用户通过OpenID提供程序进行身份验证并重定向回应用程序(前端)后,将根据OpenID提供程序的响应创建用户名密码身份验证令牌(身份验证),并手动进行身份验证。 但是,在执行此操作时,应用程序似乎无
在不生成Laravel默认身份验证控制器的情况下,我创建了自己的登录和注册控制器。 我的路线是这样的 用于登录 登记 一切都很好。现在我需要一件事。每当我放置中间件时,一个未经身份验证的用户将被重定向到我的自定义登录页面路由到。 如何做到这一点?
我想对我的Vue使用Firebase身份验证。js应用程序考虑以下限制: 我无法使用任何受支持的提供商(Facebook、Google等) 我不能使用电子邮件-该应用程序是为孩子们设计的,因此,我想使用他们在注册时选择的唯一昵称,而不是电子邮件,该昵称必须使用本地rtl语言(非英语) 我想使用firebase云函数作为唯一的服务器端代码 期望的结果是:a)使用昵称、密码注册 如何使用firebas