OAuth 2.0の探求とEchoAPIを使ったデバッグ

OAuth 2.0は、第三者のアプリケーションがユーザーの資格情報を必要とせずに保護されたリソースにアクセスできるようにする、広く使用されている認可プロトコルです。このプロトコルは、さまざまな認可フローを提供しています。

OAuth 2.0とは何か?

OAuth 2.0は、第三者のアプリケーションがユーザーの資格情報を必要とせずに保護されたリソースにアクセスできるようにする、広く使用されている認可プロトコルです。このプロトコルは、さまざまな認可フローを提供しています。

一般的な認可フロー

OAuth 2.0 Flow

(A) ユーザーがクライアントを開いて、クライアントがユーザーに認可を求めます。
(B) ユーザーがクライアントに認可を与えます。
(C) クライアントは与えられた認可を用いて、認可サーバーからトークンを要求します。
(D) 認可サーバーはクライアントを認証し、問題がなければトークンを発行します。
(E) クライアントはトークンを用いて、リソースサーバーからリソースのアクセスを要求します。
(F) リソースサーバーはトークンを確認し、クライアントにアクセスを許可します。

OAuth 2.0の4つの認可モード

  • 認可コードグラント: クライアントがユーザーを認可サーバーにリダイレクトします。ログインし、権限を与えると、サーバーはクライアントに認可コードを返します。クライアントはこのコードとクレデンシャルを用いてアクセストークンを取得します。このフローは大規模な企業で最もよく使われます。
  • インプリシットグラント: Webアプリケーションに用いられ、クライアントはブラウザ上のアプリケーションから直接アクセストークンを受け取ります。
  • リソースオーナーパスワードクレデンシャルグラント: リソース所有者がユーザー名とパスワードをクライアントに直接提供し、クライアントは認可サーバーからアクセストークンを要求します。これにはクライアントへの高い信頼性が必要です。
  • クライアントクレデンシャルグラント: クライアントが自身のクレデンシャルを用いて認可サーバーからアクセストークンを要求します。これは実質的にはOAuthの範囲外とされています。

EchoAPIを用いたGitHub OAuth 2.0認証の実装

1. GitHubから生成されたクライアントIDとシークレットを入力

Github OAuth

2. 「Get Token」をクリックしてログインプロンプトをトリガー

Get Token

3. ログイン後にトークンを取得

Receive Token

4. トークンを使用してGitHubのユーザー情報にアクセス

Access User Info