目次
契約の概要
承認コード認証
暗黙の承認
リソース所有者のパスワード承認
クライアントの資格認証承認
結論は

JamstackのAPIと認証

Apr 08, 2025 am 09:32 AM

JamstackのAPIと認証

Jamstackアーキテクチャのコアは、「API」(アプリケーションプログラムインターフェイス)にあり、静的なWebサイトに強力な動的関数を提供します。 APIを介して、開発者は複雑さをシフトし、動的機能を静的Webサイトに追加できます。通常、APIにアクセスするには、通常、認証の形で提供されるリクエストの信頼性の検証が必要です(AUTH)は、使用中のサービスと完了するタスクに応じてクライアントまたはサーバー側で実行できます。

さまざまなプロトコルの違いは、APIの異なる認証実装につながります。これらの認証プロトコルと実装の詳細は、APIをJamstackサイトに統合する際に追加の課題を追加します。幸いなことに、これは順不同ではありません。各プロトコルは特定のユースケースにマッピングでき、認証を実装する鍵はこれを理解することです。

これをよりよく説明するために、さまざまなプロトコルとそれらに最適なシナリオに飛び込みましょう。

契約の概要

OAUTH 2.0は、今日の認証に従うという一般的な基準です。 OAUTHは、クライアントとAPIエンドポイントの関係を定義する一連の承認を含む、かなり柔軟な承認フレームワークです。 OAUTHプロセスでは、クライアントアプリケーションは、承認されたエンドポイントからアクセストークンを要求し、そのトークンを使用してAPIエンドポイントのリクエストに署名します。

認可には、許可コード、暗黙的なプロセス、リソース所有者のパスワード、クライアントの資格情報の4つの主要なタイプがあります。それぞれを個別に勉強します。

承認コード認証

すべてのOAuth認証タイプのうち、認証コード認証がおそらく最も一般的です。この承認プロセスは、主にアクセストークンを取得して、ユーザーが許可を明示的に付与した後にAPIリクエストを承認するために使用されます。 2段階のプロセスに従います。

  • まず、ユーザーは同意画面(つまり、承認サーバー)に向けられ、個人アカウントとデータにアクセスするためのサービス許可を付与します。
  • 許可が得られると、次のステップは、認証サーバーからアクセストークンを取得し、APIエンドポイントのリクエストを認証するために使用できます。

認証コード認証は、他の認証タイプと比較して、ユーザーから明示的な承認を要求するステップを追加することにより、セキュリティの追加レイヤーを追加します。このマルチステップコード交換は、アクセストークンが公開されることはなく、常にアプリケーションと承認サーバーの間の安全なバックエンドチャネルを介して送信されることを意味します。これにより、攻撃者はリクエストを傍受してアクセストークンを簡単に盗むことができません。 GmailやGoogleカレンダーなどのGoogle所有サービスは、この認証コードプロセスを使用して、ユーザーアカウントの個人コンテンツにアクセスします。このワークフローの詳細については、このブログ投稿をご覧ください。詳細をご覧ください。

暗黙の承認

暗黙の承認は承認コード認証に似ていますが、1つの明らかな違いがあります。ユーザー助成金の許可を許可コードを取得し、アクセストークンに交換する代わりに、 URLのスニペット(ハッシュ)部分(つまり、フロントチャネル)をリダイレクトすることですぐにアクセストークンを返します

承認コードの手順が削減されているため、暗黙的な承認プロセスにはトークン暴露のリスクがあります。トークンはURLに直接埋め込まれているため(およびブラウザの履歴に記録されています)、リダイレクトが傍受されると簡単にアクセスできます。

脆弱性にもかかわらず、暗黙の承認は、単一ページアプリケーションなどのユーザーエージェントベースのクライアントに役立ちます。クライアント側のレンダリングされたアプリケーションでは、アプリケーションコードとストレージに簡単にアクセスできるため、クライアントキーを保護する安全な方法はありません。暗黙のフローは、クライアントのユーザーを認証する迅速かつ簡単な方法をアプリケーションに提供することにより、この問題の論理的なソリューションになります。また、特にクロスドメイン要求をサポートしていないサードパーティの認定サーバーを使用する場合、CORSの問題を解決する効果的な方法でもあります。このアプローチの固有のトークン暴露リスクのため、暗黙のプロセスでのアクセストークンはしばしば一時的であり、更新トークンを発行しないことに注意することが重要です。したがって、このプロセスでは、リクエストごとに特権リソースへのログインが必要になる場合があります。

リソース所有者のパスワード承認

リソース所有者のパスワード承認の場合、リソース所有者はユーザー名とパスワードの資格情報を承認サーバーに送信し、オプションの更新トークンでアクセストークンを送り返します。リソース所有者の資格情報は、クライアントアプリケーションと承認サーバーとの間の承認交換で表示されるため、リソース所有者とクライアントアプリケーションの間に信頼関係がある必要があります。明らかに他の承認タイプほど安全ではありませんが、リソース所有者のパスワード認証は、ファーストパーティクライアントに優れたユーザーエクスペリエンスを提供します。この承認プロセスは、アプリケーションが非常に特権的であるか、デバイスオペレーティングシステムで機能する状況に最適です。通常、この承認プロセスは、他のプロセスが実行不可能な場合に使用されます。

クライアントの資格認証承認

クライアントの資格認証タイプは、クライアントがユーザーコンテキストの外でアクセストークンを取得する必要がある場合に主に使用されます。これは、保護されたリソースへのすべてのアクセスがユーザーからの明示的な許可が付与されることを保証されていない場合、マシン間認証に適用されます。バックエンドで実行されているCLIとサービスは、この承認タイプが役立つインスタンスです。ユーザーログインに依存する代わりに、クライアントIDとキーを渡してトークンを取得し、APIリクエストを認証するために使用できます。

通常、クライアントの資格認証では、アプリケーションが実行されてAPI呼び出しを行うサービスアカウントが作成されます。このようにして、ユーザーは直接関与しておらず、アプリケーションは引き続きリクエストを認証し続けることができます。このワークフローは、特定のユーザーデータではなく、アプリケーションが独自のデータ(分析など)にアクセスしたい場合に非常に一般的です。

結論は

Jamstackサイトは、サードパーティのサービスに依存して複雑な機能を実装するため、セキュリティを維持するために認証ソリューションを慎重に設計することが不可欠です。 Jamstackでデータを交換する主な方法として、APIはその大部分です。 4つの異なるAPIリクエスト認証方法を調べました。それぞれが独自の利点とユーザーエクスペリエンスに影響を与えました。

最初に、これら4つがAPIからデータを要求するために使用される認証の主な形式であると述べました。他にも多くのタイプがあり、oauth.netには非常に良い概要があります。全体として、このウェブサイトは、利用可能な認証の種類だけでなく、OAuthフレームワーク全体も掘り下げられています。

別の方法よりも1つの方法が好きですか?指摘できる使用例はありますか?コメントを共有してください!

以上がJamstackのAPIと認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 Apr 17, 2025 am 10:55 AM

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

セクション要素との取引 セクション要素との取引 Apr 12, 2025 am 11:39 AM

2つの記事がまったく同じ日に公開されました。

Google Fontsをタグ付けし、Goofonts.comを作成する方法 Google Fontsをタグ付けし、Goofonts.comを作成する方法 Apr 12, 2025 pm 12:02 PM

Goofontsは、開発者妻とデザイナーの夫によって署名されたサイドプロジェクトであり、どちらもタイポグラフィの大ファンです。 Googleにタグを付けています

HTMLダイアログ要素を使用したいくつかの実践 HTMLダイアログ要素を使用したいくつかの実践 Apr 16, 2025 am 11:33 AM

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

マルチサムスライダー:一般的なケース マルチサムスライダー:一般的なケース Apr 12, 2025 am 10:52 AM

この2部構成のシリーズの最初の部分では、2つの親指スライダーを取得する方法を詳しく説明しました。今、私たちは' llが一般的なマルチサンプスのケースを見ていますが、別のものと

「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? 「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? Apr 16, 2025 pm 12:04 PM

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

See all articles