ホーム>source

Oracle Cloud(またはそのことについては任意のクラウド)で遊ぶのは初めてで、Angularアプリケーション(AngularJSではない)を作成し、Oracle Cloud Object Storageに画像をアップロードしたいという自己学習の練習をしていますバケツ。私が達成しようとしていることは、Angularだけで可能である(つまり、PHP、C#、Javaなどの中間層は必要ない)と仮定して取り組んでいます。

PUTリクエストを認証するために(私の理解では)使用される「authorization」ヘッダーを作成する必要があるところにいますが、これを機能させることができません。私が理解していることから署名ドキュメントのリクエスト、私は実際には純粋にAngularでそれを行うことができないかもしれないようで、ドキュメントには中間層テクノロジのコード例しか示されていないため、何らかの中間層が必要になるようです。

AngularのようなフロントエンドフレームワークのみでOracle Cloud Object Storage APIを呼び出すことは技術的に可能ですか?私は使ってみましたCryptoJS HmacSHA256のようなものを使用して署名を生成しますが、API呼び出しが実行されるたびに、Oracle Cloudは常に次のエラーを受け取ります。

<前>ウィズウィズ

[Request Signature documentation]に基づいて、必要なヘッダーは(リクエスト対象)ホスト、および日付、それで私が含めているのはそれらだけです。

Angularのみで(中間層を使用せずに)認証を達成することが技術的に可能である場合、私は署名を作成するために行っていることが正しくなく、その時点で私が求めていることをかなり確信します。認証を受けるためにその署名を作成するのに役立つ情報です。そうでない場合、これが私の実験が終了する場所だと思います。

よろしくお願いします!

error: code: "NotAuthenticated" message: "The required information to complete authentication was not provided."
あなたの答え
  • 解決した方法 # 1

    約1か月後、回答が得られなかったため、自分で調査を行った後、自分の質問に対する回答を提供することにしました。

    番号;中間層なしでAngularフレームワークのみを使用してOracle Cloudに対して自分自身を認証することはできません。この件に関するオラクル独自の公式ドキュメントもこの結論に向かっています。

    認証プロセスでは、私の知る限り、純粋にAngularの形式では存在しないアセットを使用する必要があります。特に必要なのは、OpenSSL暗号化拡張機能です。これは、私自身の調査によると、中間層が必要であることを示しています。これらのOpenSSLの依存関係は、PHPや.NETなどの中間層環境にのみ存在します。

    Angularがすべての認証を実行することは、悪意のあるアクティビティの実行に使用される可能性のあるクライアント側(ブラウザ)の非常に重要な情報を公開するため、非常に安全ではないため、これはもちろん完全に理にかなっています。元の投稿で述べたように、これはAngularだけで機能させることができるかどうかを確認するためのより多くの練習であり、実際に正しくまたは安全であるかどうかではありません。

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - パンダ:別の列のカテゴリに従って複数の列の値をグループ化します。そして、そのカテゴリのグループに基づいて平均を計算します