События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Система защиты данных использует механизм обнаружения по умолчанию , чтобы определить способ шифрования restключей шифрования. Разработчик может переопределить механизм обнаружения и вручную указать способ шифрования restключей.
Предупреждение
Если указать явное расположение сохраняемости ключа, система защиты данных отменяет регистрацию шифрования ключей по умолчанию в rest механизме. Следовательно, ключи больше не шифруются.rest Рекомендуется указать явный механизм шифрования ключей для рабочих развертываний. Параметры механизма шифрованияrest описаны в этом разделе.
Чтобы сохранить ключи в Azure Key Vault, настройте систему с ProtectKeysWithAzureKeyVault помощью Startup
класса:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.PersistKeysToAzureBlobStorage(new Uri("<blobUriWithSasToken>"))
.ProtectKeysWithAzureKeyVault("<keyIdentifier>", "<clientId>", "<clientSecret>");
}
Дополнительные сведения см. в разделе "Настройка ASP.NET Core Data Protection: ProtectKeysWithAzureKeyVault".
Применяется только к развертываниям Windows.
При использовании DPAPI Windows материал ключа шифруется с помощью CryptProtectData перед сохранением в хранилище. DPAPI — это подходящий механизм шифрования для данных, которые никогда не считываются за пределами текущего компьютера (хотя эти ключи можно создать в Active Directory). Чтобы настроить шифрование ключа DPAPI в режимеrest шифрования, вызовите один из ProtectKeysWithDpapiметодов расширения ):
public void ConfigureServices(IServiceCollection services)
{
// Only the local user account can decrypt the keys
services.AddDataProtection()
.ProtectKeysWithDpapi();
}
Если ProtectKeysWithDpapi
вызывается без параметров, то только текущая учетная запись пользователя Windows может расшифровать сохраненный круг ключей. При необходимости можно указать, что любая учетная запись пользователя на компьютере (а не только текущая учетная запись пользователя) сможет расшифровать кольцо ключей:
public void ConfigureServices(IServiceCollection services)
{
// All user accounts on the machine can decrypt the keys
services.AddDataProtection()
.ProtectKeysWithDpapi(protectToLocalMachine: true);
}
Если приложение распространяется на нескольких компьютерах, возможно, удобно распространить общий сертификат X.509 на компьютерах и настроить размещенные приложения для шифрования ключей по restадресу:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.ProtectKeysWithCertificate("3BCE558E2AD3E0E34A7743EAB5AEA2A9BD2575A0");
}
Из-за ограничений платформа .NET Framework поддерживаются только сертификаты с закрытыми ключами CAPI. Дополнительные сведения об этих ограничениях см. в приведенном ниже содержимом.
Этот механизм доступен только в Windows 8/Windows Server 2012 или более поздней версии.
Начиная с Windows 8 ОС Windows поддерживает DPAPI-NG (также называемый CNG DPAPI). Дополнительные сведения см. в разделе О CNG DPAPI.
Субъект кодируется как правило дескриптора защиты. В следующем примере, который вызывает ProtectKeysWithDpapiNG, только присоединенный к домену пользователь с указанным идентификатором безопасности может расшифровать кольцо ключей:
public void ConfigureServices(IServiceCollection services)
{
// Uses the descriptor rule "SID=S-1-5-21-..."
services.AddDataProtection()
.ProtectKeysWithDpapiNG("SID=S-1-5-21-...",
flags: DpapiNGProtectionDescriptorFlags.None);
}
Существует также перегрузка ProtectKeysWithDpapiNG
без параметров. Используйте этот удобный метод, чтобы указать правило SID={CURRENT_ACCOUNT_SID}, где CURRENT_ACCOUNT_SID является идентификатором безопасности текущей учетной записи пользователя Windows:
public void ConfigureServices(IServiceCollection services)
{
// Use the descriptor rule "SID={current account SID}"
services.AddDataProtection()
.ProtectKeysWithDpapiNG();
}
В этом сценарии контроллер домена AD отвечает за распространение ключей шифрования, используемых операциями DPAPI-NG. Целевой пользователь может расшифровать зашифрованные полезные данные с любого компьютера, присоединенного к домену (при условии, что процесс выполняется под ним identity).
Если приложение работает в Windows 8.1/Windows Server 2012 R2 или более поздней версии, можно использовать Windows DPAPI-NG для шифрования на основе сертификатов. Используйте строку дескриптора правила "CERTIFICATE=HashId:THUMBPRINT", где THUMBPRINT является шестнадцатеричным отпечатком SHA1 сертификата:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.ProtectKeysWithDpapiNG("CERTIFICATE=HashId:3BCE558E2...B5AEA2A9BD2575A0",
flags: DpapiNGProtectionDescriptorFlags.None);
}
Любое приложение, указывающее на этот репозиторий, должно работать в Windows 8.1/Windows Server 2012 R2 или более поздней версии, чтобы расшифровать ключи.
Если встроенные механизмы не подходят, разработчик может указать собственный механизм шифрования ключей, предоставив пользовательский IXmlEncryptor.
Отзыв о ASP.NET Core
ASP.NET Core — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!