SharePoint Online - Веб-часть редактора контента - Управление секретами

Я программист на C # по дням и новичок в SharePoint. Я использую веб-часть редактора контента с SharePoint Online и не знаю, как безопасно хранить секреты. Мое приложение SharePoint должно взаимодействовать с другим приложением и делом, поэтому я должен использовать настраиваемые учетные данные. Поскольку я нахожусь на этапе разработки, я могу жестко закодировать кредиты в моих файлах Type Script, но это не то, что я хочу в долгосрочной перспективе.

Я спрашиваю, может ли кто-нибудь объяснить мне правильную стратегию хранения секретов с помощью веб-частей редактора контента SharePoint Online, которые будут использоваться TypeScript / JavaScript.

Спасибо


person user959729    schedule 26.06.2017    source источник


Ответы (1)


Честно говоря, правильной стратегией было бы вообще не использовать JavaScript для конфиденциальных вызовов API. Чувствительные вызовы API должны выполняться только на стороне сервера (чтобы никакие «секретные» ключи, пароли и т. Д. Никогда не доходили до браузера).

Проблема с хранением где-то секретного значения и доступом к нему с помощью JavaScript заключается в том, что JavaScript должен будет декодировать значение где-то по пути, чтобы использовать его. Это означает, что опытный пользователь может просмотреть исходный код вашей страницы, открыть инструменты JS своего браузера и выполнить те же команды, чтобы получить значение. Не очень хорош для безопасности.

В локальной среде SharePoint на самом деле есть решение для этого, называемое службой безопасного хранения, но отчасти это работает, потому что оно предназначено для использования в коде на стороне сервера. На данный момент Microsoft не выпустила клиентский API для этой службы в SharePoint Online (вероятно, потому, что использование его с JS будет менее безопасным, как я уже упоминал).

«Правильная» стратегия зависит от ваших целей. У вас есть как минимум 2 варианта:

  1. Если вам нужна реальная безопасность для вашего секретного ключа / пароля / чего угодно, вам нужно будет разработать «размещенную надстройку» SharePoint Online, которая находится на другом сервере или в облачной службе, такой как Azure. SharePoint предоставляет «части приложения», которые обертывают размещенные надстройки с помощью iframe и позволяют добавлять их на страницу, чтобы вы могли использовать это для добавления своего приложения на страницу SharePoint и отображения результатов вызова API (очень похоже на то, как веб-часть редактора содержимого).
  2. Если вам не нужна настоящая безопасность и "безопасность по неизвестности" достаточно, то я бы рекомендовал сохранить секретное значение в списке SharePoint и выполнить для него какое-то "фальшивое" шифрование, например, в кодировке Base64. . Затем декодируйте значение в JavaScript после прочтения его из списка. Если вы хотите добавить еще больше неясности, вы можете использовать PowerShell или JavaScript, чтобы сделать список скрытым, чтобы пользователи не видели его в своем браузере, но это также означает, что вам придется добавлять / редактировать значения через код.
person Bart McDonough    schedule 29.06.2017
comment
Спасибо, Барт. Это то, что я искал. - person user959729; 29.06.2017