2017-01-10 14 views
7

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

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

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

Спасибо,

ответ

12

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

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

+0

Просто из любопытства, что произойдет с клиентом, который пытается аутентифицироваться с использованием старого ключевого материала в этом примере? Будет ли он просто запрашивать новый токен? –

7

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

От http://docs.identityserver.io/en/release/topics/startup.html#refstartupkeymaterial:

AddDeveloperSigningCredential

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

ВНИМАНИЕ: AddDeveloperSigningCredential может использоваться только тогда, когда IdentityServer хост работает на ОДНОГО машины для производства фермы необходимо использовать AddSigningCredential.

+2

AddTemporary, кажется, отсутствует в последнем Preview, поддерживающем .net core? –

+2

@RasmusChristensen, правильно, см. Https://github.com/IdentityServer/IdentityServer4/issues/1139 –