Безопасно ли хранить Azure Application Client ID во внешнем интерфейсе? - PullRequest
1 голос
/ 05 мая 2020

На веб-сайте Microsoft есть несколько примеров того, как использовать msal для аутентификации пользователей в Azure AD в SPA. Во всех этих примерах Application (client) ID хранится в виде обычного текста в коде или в простом .json файле.

Мой вопрос, учитывая, что все, что хранится во внешнем интерфейсе, считается быть publi c, это плохая практика - просто хранить конфигурацию приложения, например Azure (client) ID, в файле json? Или лучше сохранить его в файле .env?

Вот детали, которые потребуются приложению для работы:

AZURE_APP_CLIENT_ID=""
AZURE_APP_AUTHORITY=""
AZURE_APP_REDIRECT_URI=""
AZURE_APP_POST_LOGOUT_REDIRECT_URI=""

API_URI=""
API_AZURE_EXPOSED_SCOPE=""

1 Ответ

2 голосов
/ 05 мая 2020

Ну, OAuth RF C определяет это как не секрет: https://tools.ietf.org/html/rfc6749#section -2.2

Идентификатор клиента не является секретом; он предоставляется владельцу ресурса и НЕ ДОЛЖЕН использоваться отдельно для аутентификации клиента.

Идентификатор клиента будет отображаться в URL-адресе в любом случае, когда пользователь входит в систему. Хранение его во внешнем интерфейсе полностью отлично.

Все эти вещи видны в URL-адресе, когда пользователь входит в систему:

  • Azure Идентификатор клиента AD
  • Идентификатор клиента приложения
  • Области, запрашиваемые приложением (которые могут включать идентификаторы клиентов / URI идентификаторов приложений для API в вашем AAD)
  • URI перенаправления приложения
...