Аутентификация в Oracle Облако с использованием ТОЛЬКО Angular Framework (не AngularJS и без промежуточного уровня) - PullRequest
0 голосов
/ 12 января 2020

Я впервые играю с Oracle Cloud (или любым другим облаком в этом отношении), и я выполняю упражнение по самообучению, где я создал Angular приложение (не AngularJS) и я хочу загрузить изображения в мое Oracle хранилище облачных объектов. Я работаю в предположении, что то, что я пытаюсь достичь, возможно только с Angular (то есть: средний уровень не требуется, например PHP, C#, Java, et c) .

Я нахожусь в точке, где мне нужно создать заголовок "авторизации", который (насколько я понимаю) используется для аутентификации запроса PUT, и я не могу заставить это работать. Из того, что я понимаю, читая документацию Request Signature , выясняется, что на самом деле я не смогу сделать это чисто в Angular и что необходим какой-то промежуточный уровень, поскольку документация показывает только примеры кода для технологий среднего уровня.

Что мне хотелось бы знать, так это даже технически возможно вызвать Oracle API Cloud Cloud Storage Storage только с интерфейсной средой, такой как Angular? Я пытался использовать Crypto JS и использовать что-то вроде HmacSHA256 для генерации подписи, но каждый раз, когда выполняется вызов API, Oracle Cloud постоянно получает ie следующую ошибку:

error:
     code: "NotAuthenticated"
     message: "The required information to complete authentication was not provided."

На основании [Документация запроса подписи] единственные заголовки, которые мне нужны, это (запрос-цель) , host и date , так что это единственные, которые я включаю.

Если технически возможно достичь аутентификации только с Angular (без использования промежуточного уровня), то я тогда был бы довольно уверен, что то, что я я делаю, чтобы создать подпись неверно, и в этот момент я хотел бы получить некоторую помощь в создании этой подписи для аутентификации. Если это не так, я думаю, на этом мой эксперимент заканчивается.

Спасибо всем заранее за помощь!

1 Ответ

0 голосов
/ 13 февраля 2020

Примерно через месяц без ответа я решил дать ответ на свой вопрос после выполнения моей собственной следственной работы.

Нет; невозможно аутентифицировать себя в Oracle Cloud, используя только Angular framework без промежуточного уровня. Собственная официальная документация Oracle по этому вопросу также указывает на этот вывод.

Процесс аутентификации требует использования активов, которые, насколько мне известно, не существуют в чисто Angular форме. В частности, необходимо расширение криптографии OpenSSL, которое, по моим собственным исследованиям, указывает на наличие промежуточного уровня. Эти зависимости OpenSSL существуют только в среде среднего уровня, такой как, например, PHP или. NET.

Это, конечно, имеет смысл, так как выполнение 1013 * всей аутентификации было бы довольно небезопасно, так как на клиентской стороне (в браузере) может быть раскрыта очень важная информация, которую можно использовать для выполнения злонамеренных действий. Хотя, как я сказал в оригинальном посте, это было больше упражнение, чтобы увидеть, возможно ли заставить его работать только с Angular, а не было ли это действительно правильно или безопасно сделать.

...