一般社団法人 全国個人事業主支援協会

COLUMN コラム

こんにちは。
私はフリーランスでソフトウェアエンジニアとして、バックエンドやインフラ面からアプリ構築を支援したりしています。

今回はWEB開発における
OAuthついてざっくりと書きます。

◇OAuthは、オープンスタンダードの認可プロトコルであり、ユーザーがWebサイトやアプリケーションに対して、安全に第三者へのアクセス権を付与するための仕組みを提供します。OAuthは、ユーザーの個人情報を共有せずに、アプリケーションがユーザーのリソースへのアクセスを許可される方法を提供します。以下に、OAuthの主要なコンセプトと流れを説明します。

◇リソースオーナー:保護されたリソースを所有し、アクセス権を与えることができるユーザーまたはシステム。

◇クライアント:クライアントとは、保護されたリソースへのアクセスを要求するシステム。リソースにアクセスするには、クライアントは、適切なアクセストークンを保持していなければいけません。

◇認可サーバー:このサーバーは、クライアントからのアクセストークンのリクエストを受信し、認証が成功してリソースオーナーから合意を得たら、アクセストークンを発行します。認可サーバーは、2つのエンドポイントを公開します。認可エンドポイント:インタラクティブな認証とユーザーの合意を取り扱います。トークンエンドポイント:マシンtoマシンに関与します。

◇リソースサーバー:ユーザーのリソースを保護し、クライアントからのアクセスのリクエストを受信するサーバー。クライアントからのアクセストークンを受領し、検証した後、適切なリソースをクライアントに返します。

OAuthの一般的なフロー(Authorization Code Flow)は以下の通りです:
* クライアントが認可サーバーに対して認可コードを要求します。
* ユーザーは認可サーバーにログインし、アクセス許可を与えるか判断します。
* 認可サーバーはクライアントに認可コードを提供します。
* クライアントは認可コードと共にトークンを取得するために認可サーバーにリクエストを送信します。
* 認可サーバーはクライアントに対してアクセストークンとリフレッシュトークンを提供します。
* クライアントはアクセストークンを使用してリソースサーバーからリソースを取得します。
OAuthは、異なるシナリオやセキュリティ要件に合わせて複数のフロー(Implicit Flow、Client Credentials Flow、Resource Owner Password Credentials Flowなど)が用意されています。このプロトコルは、ユーザーのセキュリティとプライバシーを保護しながら、アプリケーションの柔軟なアクセス制御を実現するために広く使用されています。

The following two tabs change content below.

中川 豪

最新記事 by 中川 豪 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア