公開日

ウェブサイトのセキュアなWeb APIアクセスを設計する方法は?

著者

私たちがユーザーにWeb APIへのアクセスを許可する場合、各APIリクエストが検証されることを保証する必要があります。これは、ユーザーが自分自身と主張する人物であることを確認することを意味します。

Image

この投稿では、APIアクセスをセキュアにする2つの一般的な方法を紹介します。

  1. トークンベースの認証

  2. HMAC(ハッシュベースのメッセージ認証コード)認証

以下の図は、それぞれの方法がどのように動作するかを示しています。

トークンベースの認証

  1. ユーザーはクライアントでパスワードを入力し、認証サーバーに送信します。

  2. サーバーはパスワードを検証し、有効期限付きのトークンを作成します。

  3. クライアントはこのトークンをHTTPヘッダーに使用して、サーバーにリクエストを送信できます。

  4. トークンは有効期限が切れるまで有効であり、サーバーのリソースへのアクセスを許可します。

HMACベースの認証

  1. サーバーは、公開鍵(Public APP ID)と秘密鍵(APIキー)の2つの鍵を生成します。

  2. クライアント側では、図に示す属性を使用して、HMAC(署名)を作成します。

  3. クライアントは、HMAC署名をHTTPヘッダーに含めて、サーバーにリクエストを送信します。

  4. サーバーはリクエストを受信し、属性を抽出し、保存されたAPIキーを使用して独自の署名(HMAC B)を作成します。

  5. サーバーは、HMAC A(クライアントから)とHMAC B(サーバーから)を比較します。両者が一致する場合、サーバーはリクエストに応答します。

質問: HMACはデータの完全性をどのように保証しますか? なぜ「リクエストタイムスタンプ」をHMACに含めますか?

答え: HMACは、リクエストデータと鍵に基づいて一意の署名を作成することで、データの完全性を保証します。したがって、データが変更された場合、署名は一致しません。「リクエストタイムスタンプ」を含めることで、古いリクエストを再利用するリプレイ攻撃を防ぐことができます。署名は、特定の時間内でのみ有効であるためです。

日本語版は Ai 支援を使用しているため、小さな間違いが存在する可能性があることをご了承ください。

著者

Ai Base Network (ABN), ABN ASIAは、アカデミアに深く関わり、アメリカ、オランダ、ハンガリー、日本、韓国、シンガポール、ベトナムでの仕事経験を持つ人々によって設立されました。ABN ASIAは、学問とテクノロジーが機会と出会う場所です。最先端のソリューションと優れたソフトウェア開発サービスにより、ビジネスがレベルアップし、グローバルシーンに挑戦できるよう支援しています。 私たちの取り組み: より速く。 より良い。 より信頼性が高くなります。 ほとんどの場合、価格も安くなります。

いつでも、ITサービス、デジタルコンサルティング、既製のソフトウェアソリューション、または提案依頼書(RFP)をお探しの際は、お気軽にお問い合わせください。お問い合わせ先は[email protected]です。お客様のテクノロジーに関するニーズにお応えします。

ABNAsia.org

© ABN ASIA