Openiddict неявный поток преждевременного истечения срока действия токена

Моя конфигурация openiddict такая

services.AddOpenIddict(options =>
        {
            options.AddEntityFrameworkCoreStores<TestDbContext>();
            options.AddMvcBinders();
            options.EnableAuthorizationEndpoint("/connect/authorize")
                   .EnableLogoutEndpoint("/connect/logout")
                   .EnableIntrospectionEndpoint("/connect/introspect")
                   .EnableUserinfoEndpoint("/api/userinfo");
            options.AllowImplicitFlow();
            options.RequireClientIdentification();
            options.EnableRequestCaching();
            options.DisableSlidingExpiration();
            options.AddSigningCertificate(
                assembly: typeof(Startup).GetTypeInfo().Assembly,
                resource: "Server.test.pfx",
                password: "test"); // embedded resource
            options.SetAccessTokenLifetime(TimeSpan.FromDays(1));
            options.SetIdentityTokenLifetime(TimeSpan.FromDays(1));
        });

когда я тестирую локально, токен, кажется, живет столько, сколько указано выше, но в рабочей среде (Windows Server 2016 IIS 10) срок его действия истекает преждевременно (примерно через 1 час). Это имело место как с netcore1, так и с netcore2. Я знаю, что у меня есть возможность автоматически обновлять токен, но пока я хотел бы избежать этого процесса. Есть ли известная причина такого поведения?


person Community    schedule 02.09.2017    source источник
comment
может быть тот факт, что 1 час - это по умолчанию AccessTokenLifetime помощь вы как-то найти корень проблемы   -  person Set    schedule 02.09.2017


Ответы (1)


когда я тестирую локально, токен, кажется, живет столько, сколько указано выше, но в рабочей среде (Windows Server 2016 IIS 10) срок его действия истекает преждевременно (примерно через 1 час).

По умолчанию OpenIddict использует ASP.NET Core Data Protection для шифрования своих токенов доступа.

Чтобы стек защиты данных работал правильно, вы должны настроить его при переходе в рабочую среду. См. OpenIddict: 401 ошибка при двух или больше экземпляров службы для получения дополнительной информации.

person Kévin Chalet    schedule 02.09.2017