Я пишу резервный сервис для резервного копирования базы данных SQL и сохранения его в облачном хранилище. Я уже реализовал это уже с Amazon S3, но поскольку приложение будет распространено среди клиентов, я не могу иметь ключи API, хранящиеся в приложении. Я рассматривал использование веб-службы для предоставления ключей, но это не мой лучший вариант в это время (потому что он по-прежнему оставляет возможность кражи ключей.)Подходит ли Azure Shared Access Signature для доступа к моим блобам?
Итак, я смотрел в Windows Azure, службу Blob и видел они имеют подписи общего доступа, которые могут использоваться для обеспечения доступа к ресурсам в облаке. Вы также можете использовать подпись, чтобы поместить капли в облаке. Но, прочитав через MSDN docs, я не могу не думать, что это небезопасная система. Любой, кто знает 1. точные имена контейнеров для моей учетной записи и 2. как сформировать подпись, сможет получить доступ к объектам. При использовании этой подписи вам не нужен секретный ключ. По крайней мере, это мое впечатление, читая документы.
Итак, наконец, на мой вопрос. Правильно ли я оцениваю подписи общего доступа с Azure, если нет, то почему? И может ли кто-нибудь предложить альтернативный способ сделать то, что я пытаюсь выполнить.
Итак, теперь я вижу, что вы должны вычислить хэш-подпись, зашифровав ключом. Так что отвечает на мой первый вопрос (я был неправ в своей первоначальной оценке). Azure позволяет создавать неограниченное количество контейнеров, поэтому у меня будет контейнер для каждого клиента. Клиент будет вызывать мой веб-сервис, который затем сгенерирует подпись, уникальную для клиента. Таким образом, любые ключи шифрования, имена контейнеров и т. Д. Могут быть защищены на моем сервере, а не на клиентской системе. – BrianB