Аутентификация в Oracle Cloud с использованием ТОЛЬКО Angular Framework (не AngularJS и не Mid-Tier)
Я впервые играю с Oracle Cloud (или любым облаком, если на то пошло), и я выполняю самообучающееся упражнение, в котором я создал приложение Angular (не AngularJS) и хочу загрузить изображения в свое Oracle Cloud ObjectStorage. Ведро. Я работаю над предположением, что то, что я пытаюсь достичь, возможно только с помощью Angular (то есть: не требуется промежуточный уровень, такой как PHP, C#, Java и т. Д.).
Я нахожусь в точке, где мне нужно создать заголовок "авторизации", который (насколько я понимаю) используется для аутентификации запроса PUT, и я не могу заставить это работать. Из того, что я понимаю, читая документацию по подписи запроса, кажется, что я, возможно, на самом деле не смогу сделать это исключительно в Angular и что потребуется какой-то средний уровень, поскольку в документации показаны только примеры кода для технологий среднего уровня.
Что я хотел бы знать, возможно ли даже технически вызвать API Oracle Cloud ObjectStorage только с интерфейсной структурой, такой как Angular? Я пытался использовать CryptoJS и использовать что-то вроде HmacSHA256 для генерации подписи, но каждый раз, когда выполняется вызов API, Oracle Cloud постоянно получает следующую ошибку:
error:
code: "NotAuthenticated"
message: "The required information to complete authentication was not provided."
Основываясь на [документации по подписи запроса], мне нужны только заголовки (запрос-цель), хост и дата, поэтому я включаю только их.
Если технически возможно достичь аутентификации только с помощью Angular (без использования среднего уровня), я был бы достаточно уверен, что то, что я делаю для создания подписи, неверно, и что я буду искать в этот момент это некоторая помощь в создании этой подписи для аутентификации. Если нет, думаю, на этом мой эксперимент заканчивается.
Заранее благодарим вас за помощь!
1 ответ
Примерно через месяц без ответа я решил дать ответ на свой вопрос после того, как провел собственное расследование.
Нет; Невозможно пройти аутентификацию в Oracle Cloud, используя только платформу Angular без промежуточного уровня. Собственная официальная документация Oracles по этому вопросу также указывает на этот вывод.
Процесс аутентификации требует использования ресурсов, которые, насколько мне известно, не существуют в чисто Angular форме. В частности, необходимо расширение криптографии OpenSSL, которое, судя по моим собственным расследованиям, указывает на то, что требуется средний уровень. Эти зависимости OpenSSL существуют только в среде среднего уровня, такой как PHP или.NET, например.
Это, конечно, имеет смысл, поскольку выполнение всей аутентификации Angular было бы довольно небезопасным, так как на стороне клиента (браузере) открывалась бы очень важная информация, которая может использоваться для выполнения вредоносных действий. Хотя, как я сказал в исходном посте, это было скорее упражнение, чтобы увидеть, можно ли заставить его работать только с Angular, а не было ли это на самом деле правильным или безопасным.