AddTemporarySigningCredential против AddSigningCredential в IdentityServer4

Согласно документации, IdentityServer использует асимметричную пару ключей для подписи и проверки JWT. Можно либо использовать AddTemporarySigningCredential() в конфигурации, которая создает новый RSA при каждом запуске, либо использовать AddSigningCredential(..) с ключом RSA или сертификатом.

В документе упоминается, что временная версия полезна для ситуаций разработки, но не указывается, в чем ее недостаток при использовании в производственной среде.

У меня есть веб-API aspnetcore, в котором клиенты аутентифицируются с помощью IdentityServer4. На данный момент система отлично работает с временными подписями, но мне интересно, есть ли какие-то преимущества от использования другого варианта.

Спасибо,


person cellik    schedule 10.01.2017    source источник


Ответы (2)


Недостатком является то, что каждый раз, когда вы перезапускаете IdentityServer, материал ключа будет изменяться - или IOW - все токены, которые были подписаны с использованием предыдущего материала ключа, не будут проверяться.

«Временный» действительно только для ситуаций, когда у вас нет другого ключевого материала.

person leastprivilege    schedule 10.01.2017
comment
Просто из любопытства, что произойдет с клиентом, который пытается аутентифицироваться с использованием старого ключевого материала в этом примере? Будет ли он просто запрашивать новый токен? - person Fábio Junqueira; 26.01.2017

Вместо AddTemporarySigningCredential рассмотрите возможность использования AddDeveloperSigningCredential

Из http://docs.identityserver.io/en/release/topics/startup.html#refstartupkeymaterial:

AddDeveloperSigningCredential

Та же цель, что и временные учетные данные для подписи. Но в этой версии сохраняется ключ к файловой системе, поэтому она остается стабильной между перезапусками сервера. Это решает проблемы, связанные с рассинхронизацией кэшей метаданных client / api во время разработки.

ПРЕДУПРЕЖДЕНИЕ. AddDeveloperSigningCredential можно использовать только в том случае, если хост IdentityServer запущен на ОДНОЙ машине, для производственной фермы необходимо использовать AddSigningCredential.

person Michael Freidgeim    schedule 14.05.2017
comment
AddTemporary кажется отсутствует в последней версии Preview, поддерживающей ядро ​​.net ?? - person Rasmus Christensen; 22.09.2017
comment
@RasmusChristensen, правильно, см. github.com/IdentityServer/IdentityServer4/issues/1139 - person Michael Freidgeim; 26.09.2017
comment
@MichaelFreidgeim, как настроить .AddSigningCredential()? - person J86; 23.03.2019
comment
@ J86, это отдельный вопрос, на который есть несколько ответов по SO, например. stackoverflow.com/questions/48086994/ и stackoverflow.com/questions/49042474/ - person Michael Freidgeim; 24.03.2019