Identity Server 4 API JWT, балансиране на натоварването, защита на данните, Kubernetes,

Сблъскване с проблеми с множество екземпляри на IdentityServer4 на Kubernetes, изложени от инструмента за балансиране на натоварването. Не мисля, че има проблем с влизането с идентификационни данни, проблемите ми са около JWT токените. Работи добре, когато има само 1 екземпляр.

Преглед:

IdentityServer4 MongoDB Data Storage PersistedGrantStore Настройка на защита на данни на Redis

Множество .Net Core 3.1 уеб API. Използване на AddIdnetityServerAuthentication при стартиране на предаване на връзката и името на API. Изпълнявам няколко екземпляра на API. Намалявайки до 1, все още получавам същия проблем. Работи добре, ако има само 1 екземпляр на сървъра за самоличност, но няколко екземпляра получавам следната грешка в API:

Носителят не е удостоверен. Съобщение за грешка: IDX10501: Проверката на подписа е неуспешна. Не може да се намери съответствие с ключа:

Не получавам никакви грешки или неуспешни удостоверявания в регистрационните файлове на IdentityServer.

Въпросите, които се въртят в главата ми, са JWT токен, така че вярвам, че заявката трябва да бъде валидирана от токена, т.е. API не трябва да изисква информация от сървъра за самоличност? Identity Server има настройка на DataProtection, работеща на Redis като негово хранилище, мога да видя изпуснатата му информация там. Имам запазен магазин за грантове, но токените не се добавят.

Трябва ли да премина към ресурс срещу JWT? Какви са вероятните режийни разходи за това? Токените не се ли споделят между екземплярите на API чрез защита на данните?

Благодаря за всякакви съвети/предложения.


person ChrisB    schedule 14.07.2021    source източник


Отговори (1)


В случай, че някой друг попадне на това. Това се дължи на погрешно оставяне на подписването на разработчика в конфигурацията на Identity Server. Замяната със сертификат реши проблема.

builder.AddDeveloperSigningCredential();

to

builder.AddSigningCredential(rsaCertificate);
person ChrisB    schedule 16.07.2021