Azure DocumentDb без C#, авторизация, и просто использовать прямой Angular
Я просмотрел Google и Stackru безрезультатно. Я новичок в DocumentDB и только что импортировал данные из моего экземпляра SQL; Все идет нормально.
Мои документы не требуют защиты, и я ищу параметр (?) В Azure, который обходит лишний мусор в URL-адресе и токене (из ключей, т. Е. Главного ключа) или какое-либо решение для сохранения этого ПРОСТОГО.
Короче говоря, я стремлюсь создать чистое решение AngularJs, которое не требует дополнительного ручного багажа и любопытно, что нужно сделать. (Прокси на моем сайте, такой как WebApi, у меня не работает, т.е. Microsoft.Azure.DocumentClass не требуется для такого простого доступа.)
2 ответа
Поскольку вы являетесь пользователем javascript, я рекомендую вам использовать службу node.js Azure (веб-приложение в терминологии Azure) и установить небольшую прокси-службу. Возможно, вам удастся использовать пакетный пакет npm с небольшой настройкой. Также есть популярный пакет json-proxy npm. Вы можете даже использовать node-restify или express.js и написать код для прокси.
С помощью любого из них вы также можете внедрить минимальную систему аутентификации, чтобы не рисковать, о которой упоминает Дэвид Макогон.
Чтобы уточнить, идея заключается в том, что вы притворяетесь, будто запускаете REST API DocumentDB прямо из браузера. Однако URL-адрес предназначен для вашей прокси-службы, а не для конечной точки DocumentDB. Также не используйте данные аутентификации DocumentDB при вызове из браузера, но добавьте немного собственной аутентификации. Я рекомендую базовую аутентификацию, которую поддерживает Angular, и которую очень легко внедрить в ваш сервис. Затем ваш прокси-сервер подтверждает, что авторизация в браузере была правильной, и использует ваш главный ключ DocumentDB для нажатия на DocumentDB. Ваш прокси-сервер в основном заменяет базовую аутентификацию на полный доступ к главному ключу DocumentDB.
Не кодируйте свой главный ключ DocumentDB в свой прокси-код. Вместо этого поместите его в переменную окружения (параметр config на portal.azure.com), на которую ссылается ваша служба (process.env.DOCUMENT_DB_KEY).
В простейшей форме вы также можете хранить одно действительное имя пользователя и пароль в переменных окружения. Если вам нужно больше, чем несколько имен входа, вы можете сохранить их в базе данных DocumentDB. Хранение паролей в виде открытого текста, вероятно, подходит вам, но я был бы упущен, если бы я не рекомендовал хранить соленый хеш, используя встроенный в узел crypto (crypto.pbkdf2), а не пароль в виде открытого текста. Вы можете пропустить его для своего варианта использования, но вам, вероятно, следует использовать https, а не http. Azure поддерживает это, но вы должны получить собственный сертификат.
Я нахожусь в процессе превращения моего текущего более сложного API-интерфейса для DocumentDB в пакет npm. Я буду рад поделиться этим с вами, когда он будет готов. Кроме того, мне не понадобится много времени, чтобы написать супер простой код, который вы наметите, и опубликовать его в npm по спецификации.
Там нет настройки, которая позволяет анонимный доступ к DocumentDB