Что такое учетные данные подписи в IdentityServer4?

Мы внедряем Identity Server 4 с нашим веб-приложением .NET Core.

Я прошел через документацию Identity Server. При настройке сервера Identity (с использованием DI) существует строка:

.AddTemporarySigningCredential

Я пытаюсь понять, что такое учетные данные подписи, но не мог понять. Поэтому я не знаю, нормально ли использовать встроенную временную, или если я должен предоставить другую.

Мой вопрос: что такое учетные данные для подписания и как его использовать?

В документации сервера Identity это определение:

Добавляет услугу ключа подписи, которая предоставляет указанный ключевой материал для различные службы создания/проверки токенов. Вы можете пройти либо в X509Certificate2, SigningCredential или ссылку на сертификат из хранилища сертификатов.

Так кажется важным:)

Ответ 1

Сервер авторизации подпишет токены ключом. Ресурсные серверы должны проверить целостность токена с ключом. Вместе они образуют асимметричную (например, открытый/закрытый) пару ключей. По умолчанию IdentityServer публикует открытый ключ для проверки токенов на конечной точке /.well-known/openid-configuration.

Для сценариев разработки, как правило, вы хотите пропустить суету правильного управления секретами, такими как указанные ключи (что действительно важно делать правильно в производстве!). Для этих сценариев разработки у вас есть возможность использовать специальные решения, такие как AddTemporarySigningCredential, который использовался для .NET Core 1.x.

В .NET Core 2.x это изменится, и вам потребуется метод расширения AddDeveloperSigningCredential().

Это отвечает на вопрос, что это такое. О том, как его использовать: вы просто вызываете нужный метод в зависимости от версии .NET Core внутри метода ConfigureServices(...) класса вашего приложения Startup.

Кроме того, вам не нужно делать ничего особенного, за исключением того, что вы, конечно, позаботились о том, чтобы при производстве вы использовали правильную пару ключей.

См. также документы по криптографии, ключам и HTTPS и по настройке служб для ключей. Из последнего документа, здесь уместная альтернатива для производственных случаев:

  • AddSigningCredential

    Добавляет службу ключа подписи, которая предоставляет указанный материал ключа различным службам создания/проверки токенов. Вы можете передать либо X509Certificate2, SigningCredential, либо ссылку на сертификат из хранилища сертификатов.