用語集

OAuth とは?

OAuth 2.0は、ユーザーがパスワードをサードパーティと共有することなく、サードパーティアプリケーションが別のサービス上のユーザーのプロファイルやデータなどのリソースへの限定的なアクセスを取得できるようにするオープンな認可フレームワークです。

別名: OAuth 2.0, OAuth2, open authorization

OAuthは具体的な問題を解決します。パスワードを渡さずにどうすれば別のサービスのデータへのアクセスをアプリケーションに許可できるか、という問題です。OAuth以前、答えはしばしばクレデンシャルを直接渡すことでした。これは選択的に失効させる方法なしに無制限のアクセスを許可するプラクティスでした。OAuthは、範囲と期限が限定されたアクセストークンによる委任認可の概念を導入しました。

OAuth 2.0のフローには4つの当事者が関与します。リソースオーナー(ユーザー)、クライアント(サードパーティアプリケーション)、認可サーバー(トークンを発行)、リソースサーバー(ユーザーのデータをホスト)。ユーザーは認可サーバーで認証し、クライアントに特定の権限を付与し、クライアントはアクセストークンを受け取ります。このトークンはクライアントがユーザーのパスワードを見ることなくユーザーのリソースにアクセスするために使用されます。

OAuth 2.0は異なるシナリオのための複数のグラントタイプを定義しています。認可コードフロー(サーバーサイドアプリ用)、PKCEを使用した認可コードフロー(モバイルやシングルページアプリなどのパブリッククライアント用)、クライアントクレデンシャル(マシン間通信用)、デバイスコードフロー(入力制約のあるデバイス用)。このフレームワークはOpenID Connect(OIDC)によって拡張され、OAuthの認可機能の上に認証のための標準化されたアイデンティティレイヤーを追加しています。

Vaulted における OAuth の使われ方

Vaultedはユーザーアカウント、サードパーティ統合、委任認可の必要がないためOAuthを実装していません。ただし、OAuthトークンは安全に共有する必要がある一般的な種類の機密クレデンシャルです。例えば、サービスアカウントのクライアントシークレットをデプロイメントチームと共有する場合などです。Vaultedは、Slackメッセージやメールやチケットシステムなどにずっと残り続ける形でトークンを公開せずに安全に転送するためのチャネルを提供します。