Каковы общие методы хранения глобальных / общих логинов / паролей приложений? - PullRequest
0 голосов
/ 30 апреля 2019

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

В настоящее время мы храним данные для входа в DSN-файлы, которые читаются при создании соединения в приложении.Это был самый простой способ отделить информацию для входа в систему от приложения, так как эта информация иногда требует изменения.Однако это, очевидно, не очень безопасно, поскольку любой, кто найдет файлы DSN, будет иметь пользователей и пароли для приложений.

Мы также использовали файл ресурсов в наших приложениях C # для управления входами в систему.

В дальнейшем я хочу рассмотреть более эффективные методы управления паролями этих приложений.Как отмечалось выше, мы не хотим поддерживать учетные записи пользователей, поскольку это было бы слишком большим обслуживанием ... учетные записи приложений были для нас хорошим балансом, так как у нас не было слишком много учетных записей, но, по крайней мере, мы могли отслеживать использование по отдельности.основа приложения.

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

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

1 Ответ

0 голосов
/ 01 июля 2019

Для тех, кто сталкивается с этим позже, интегрированная безопасность Windows, очевидно, является лучшим вариантом, как было указано выше, но в моем случае это излишне, поскольку мне придется поддерживать доступ для каждого пользователя для 300+ пользователей (это просто неосуществимо в моей маленькой команде и не является необходимым).У нас есть настройки приложений с учетными данными приложения.

Таким образом, я нашел способ управления безопасностью для файлов конфигурации одним из двух способов:

  • Вы можете зашифровать учетные данные, хранящиеся в конфигурациифайлы:

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings-and-configuration-files

<configProtectedData defaultProvider="RsaProtectedConfigurationProvider">  
  <providers>  
    <add name="RsaProtectedConfigurationProvider"   
      type="System.Configuration.RsaProtectedConfigurationProvider, ... />  
    <add name="DataProtectionConfigurationProvider"   
      type="System.Configuration.DpapiProtectedConfigurationProvider, ... />  
  </providers>  
</configProtectedData>
  • или вы можете хранить учетные данные как секреты:

https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-2.2&tabs=windows

используя менеджер секретов, секреты хранятся здесь:

%APPDATA%\Microsoft\UserSecrets\<user_secrets_id>\secrets.json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...