Как защитить идентификатор и секрет клиента Azure без использования параметров приложения службы приложений

Я использую Azure KeyVault для хранения своих учетных данных базы данных. Теперь, чтобы получить к ней доступ, у меня есть жестко запрограммированный идентификатор клиента и секрет клиента в коде службы. Как я могу избежать этого жесткого кодирования как небезопасного?

1) I don't want to store client id and client secret in certificates, as 
deployed certificates are again insecure
2) My app is not hosted on Azure App service, so I can't use App Settings to 
store client id and client secret.

Есть ли способ заставить Azure Active Directory возвращать токен доступа только в том случае, если запрос сделан с URL-адреса моего приложения? else Как я могу защитить идентификатор клиента и секрет клиента от хакеров


person Chinta Sai Vamshi    schedule 29.06.2017    source источник


Ответы (2)


Если вы развертываете службу в службе приложений Azure или на виртуальной машине Azure, вы можете включить управляемое удостоверение службы (MSI) и добавить субъект-службу службы приложений Azure в Azure Key Vault. MSI позволяет создать субъект-службу в самой связанной службе Azure. Это означает, что вам больше не нужно хранить идентификатор клиента и секрет клиента. Azure AD работает напрямую с вашей службой приложений Azure.

Вот введение в Azure MSI https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview

Другой способ НЕ использовать идентификатор клиента и секрет клиента — получить токен доступа через сертификат. Это можно сделать, просто загрузив свой сертификат в хранилище сертификатов Azure Web App и вызвав сертификат, чтобы получить отпечаток. Вы можете обратиться к этой статье https://docs.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application

person EagleDev    schedule 28.03.2018

Использование идентификатора клиента и секрета клиента для защиты Key Vault просто означает, что теперь у вас есть новый секрет, который нужно как-то защитить. Лучшим подходом является использование сертификата для доступа к хранилищу ключей. Теперь у вас есть дополнительная безопасность, потому что вам нужен закрытый ключ сертификата, чтобы установить его в ваше приложение.

person Dave Bending    schedule 06.09.2017