Можно ли поместить секретный код клиента microsoft-графа в исходный код? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть приложение Javascript Electron (https://github.com/damien122/cloudnoter)), которое должно подключаться к графическому бэкэнду Microsoft и предоставлять доступ к записным книжкам OneNote. Ранее оно работало очень хорошо, но Microsoft изменила API, и теперь я должен адаптировать свое приложение.Раньше можно было получить токен Bearer по коду без использования client-secret, но теперь я должен использовать client client secret и мой вопрос:

Рекомендуется ли хранить секрет клиента в исходном кодекод? А также опубликуйте его на GitHub. Что может кто-то сделать с идентификатором клиента и его секретом? Должен ли я хранить секрет клиента действительно "в тайне"? Могу ли я предоставить секретный ключ клиента для своего приложения и сохранить его в секрете?

В службе регистрации приложений от ms я зарегистрировал приложение как веб-приложение, потому что это единственный способ получить для меня аутентификацию. Я не могу найти способ аутентификации для веб-приложений безсекрет клиента. И не могу найти способ, как использовать регистрацию «Nativ / Mobile App» с помощью JavaScript. Кстати,Я использую эту документацию -> https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_user

1 Ответ

0 голосов
/ 21 сентября 2018

Для потока грантов, пожалуйста, проверьте его, как предложили @Event и @Marc.

И для ваших других вопросов.

Рекомендуется ли хранить секрет клиента висходный код?А также опубликуйте его на GitHub.

Нет

Что может кто-то сделать с идентификатором клиента и его секретом?

Используя идентификатор клиента и секрет клиента, кто-то может вызвать ресурс в вашем хранилище данных.Но в некоторых случаях мы также должны передать имя приложения в запросе.

Должен ли я хранить секрет клиента действительно "секретным"?

Да

Могу ли я предоставить клиенту секрет своего приложения и сохранить его в секрете?

Да .Вы можете использовать Azure KeyValut , чтобы защитить свой секрет.Или просто следуйте приведенному ниже блогу:

https://medium.com/poka-techblog/the-best-way-to-store-secrets-in-your-app-is-not-to-store-secrets-in-your-app-308a6807d3ed

Хранение секретов в окружающей среде

stripe_api_key = os.environ ["STRIPE_API_KEY"]

Хранение секретов в базе данных
Использование службы синхронизации секретов

Хранение секретов в вашем коде… но в зашифрованном виде

...