oauthクライアント・とは?初心者でも分かる基礎と使い方ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
oauthクライアント・とは?初心者でも分かる基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


oauthクライアント・とは?

まず oauthクライアントとは何かを、初心者にも分かる言葉で説明します。OAuth は複数のサービス間で安全に認証と認可を行うしくみです。その中で oauthクライアントは、ユーザーの情報へ「アクセスを許可する」役割を担うアプリやウェブサイトのことを指します。

たとえば写真(関連記事:写真ACを三ヵ月やったリアルな感想【写真を投稿するだけで簡単副収入】)をクラウドに保存するアプリがあるとします。そのアプリは自分のIDとパスワードを直接扱いません。代わりに oauthクライアントとして動き、別の認証サーバーに対して「このユーザーがこのアプリを使う許可を与えた」という情報を得て、データを持つ資源サーバーへ安全にアクセスします。

OAuth の基本的な流れ

1. ユーザーがアプリにアクセスします。

2. アプリは認証サーバーにアクセス許可を申請します。ここでクライアントIDリダイレクトURIなどの情報を送ります。

3. ユーザーは認証サーバーの画面で「このアプリに許可を与える」ボタンを押します。

4. 認証サーバーはアプリへ「認可コード」を返します。アプリはこのコードを使ってアクセストークンを取得します。

5. アプリは取得したトークンを使って資源サーバーに要求します。ここで アクセストークン が有効ならデータを受け取れます。

主要な用語

以下の表はよく出てくる用語と意を、図を見なくても分かるようにまとめたものです。

OAuth クライアント資源へアクセスする権利を持つアプリやサービス
認可サーバー認証と権限を発行する役割のサーバー
ソースサーバー実際のデータを提供するサーバー
アクセストークン資源へアクセスする際に使う証明書のようなもの
フレッシュトークンアクセストークンが切れても再取得に使う長期の証明
クライアントID認証サーバーが発行するクライアントの識別子

実務ではこの仕組みを使ってパスワードを共有せずに安全に連携することが可能です。例えば SNS のログイン機能やクラウドのデータ連携は多くが OAuth クライアントを通じて行われます。

注意点として、リダイレクトURI は認証サーバーに事前登録する必要があります。信頼できるアプリや公式サイト以外にはトークンを渡さないよう、常に公式のサービスを使いましょう。

最後に、OAuth は初期の仕様から発展しています。現在は OAuth2 が主流で、PKCE という拡張機能を使うことでモバイルアプリなどのセキュリティが強化されています。基本的な流れと用語を覚えることから始めてみましょう。


oauthクライアントの同意語

OAuthクライアント
OAuthの認可フローを使って、リソースサーバーへアクセスする権限を取得する役割のアプリケーション。クライアントは認可サーバーとリソースサーバーの間でトークンのやり取りを行います。
OAuthクライアントアプリケーション
OAuthクライアントとして機能するアプリケーションのこと。OAuthの認可を得て他サービスのデータへアクセスできます。
クライアントアプリケーション(OAuth用)
OAuth認可フローを利用する目的で用いられるクライアント側のアプリ。ユーザーの代わりに資源へアクセスする許可を取得します。
OAuth対応アプリケーション
OAuthに対応したアプリケーション。外部サービスと安全に連携するための認可フローを実装しています。
OAuth連携アプリケーション
他のサービスとOAuthで連携するためのクライアント役のアプリ。認可コードやアクセストークンの取得を行います。
認可クライアント
OAuthにおけるクライアントの別称。リソースへアクセスする許可を取得する側のアプリケーション。
クライアント(OAuth用)
OAuth用に設計されたクライアントアプリ。認可サーバーと対話してアクセストークンを取得します。
OAuthクライアントアプリ
OAuthクライアントとして機能するアプリの略表現。認可フローを用いてリソースへアクセスします。
OAuth対応クライアント
OAuthに対応したクライアントアプリ。認可を経てリソースへアクセスする権限を取得します。
外部連携アプリケーション(OAuthクライアント機能)
外部サービスと連携する機能を持つアプリで、OAuthクライアントとして振る舞います。

oauthクライアントの対義語・反対語

リソースサーバ
OAuthで保護されたリソースを提供するサーバ。クライアントが取得したアクセストークンを使ってアクセスする相手であり、クライアントの対となる役割として挙げられることが多いです。
認可サーバ
アクセストークンを発行・認可するサーバ。クライアントがトークンを取得する立場の相手であり、クライアントと対になる役割として理解されます。
リソースオーナー(ユーザー)
資源を所有し、クライアントにアクセス許可を与える主体。クライアントが資源へアクセスする窓口となるため、実質的には対になる立場です。
サーバ
クライアントが動作する相手としての一般的な役割を指す語。ウェブアプリの“サーバー側”を表し、クライアントの対義語として用いられることがあります。
バックエンド
フロントエンドの対となる処理・データ提供側。クライアントアプリがユーザーと対話するのに対し、データ処理やビジネスロジックを担当する側を指します。

oauthクライアントの共起語

OAuth 2.0
認証・認可の標準フレームワーク。クライアントとリソースサーバー間で安全にアクセストークンを取得・利用する仕組み。
クライアントID
OAuthクライアントを識別する公開識別子。認証サーバに登録時に発行される。
クライアントシークレット
クライアントの秘密鍵。サーバー間の信頼を証明する。公開クライアントでは不要または安全性が低い場合が多い。
リダイレクトURI
認証サーバからの応答を受け取るURL。事前登録と一致する必要があるセキュリティ要件。
認証サーバ
認可を管理するサーバ。認可コード・アクセストークンを発行する。
リソースサーバ
保護されたリソースを提供するサーバ。アクセスにはアクセストークンが必要。
アクセストークン
認可されたリソースへアクセスする権利を示すトークン。通常短時間有効。
リフレッシュトークン
アクセストークンの有効期限を延長するためのトークン。長時間の認証継続を可能にすることが多い。
認可コード
認可コードグラントで発行される一時コード。サーバで交換してアクセストークンを取得する。
PKCE
Code ChallengeとCode Verifierを用い、公開クライアントでも安全な認可コードフローを実現する拡張。
公開クライアント
クライアントシークレットを安全に保持できないアプリ。例:SPA、モバイルアプリ。
秘密クライアント
クライアントシークレットを安全に保管できるサーバーサイドアプリ。
ウェブアプリ
サーバーサイド処理のWebアプリ。リダイレクトを使って認証を完了する。
ネイティブアプリ
スマホやデスクトップのクライアント。PKCEが推奨される。
SPA
ブラウザ上で実行される単一ページアプリケーション。
認可グラント
アクセストークンを取得するためのフローの総称。
Authorization Code Grant
認可コードグラント。最も普及しており安全性が高い。
Implicit Grant
インプリシットグラント。ブラウザのみのクライアント向けの旧来のフロー。
Client Credentials Grant
クライアント自身がリソースへアクセスするフロー。サーバ間通信でよく使われる。
Resource Owner Password Credentials Grant
ユーザーのIDとパスワードをクライアントに渡して取得する古いフロー。非推奨の場合が多い。
スコープ
アクセス権限の範囲を定義する文字列。例: openid, profile, email、api.read など。
オーサライゼーションエンドポイント
認可コードなどを発行するURL。
トークンエンドポイント
アクセストークン・リフレッシュトークンを発行するURL。
IDトークン
OIDCで使われる、ユーザーを識別するJWT形式のトークン。
OIDC
OpenID Connect。OAuth 2.0の上に認証機能を追加する拡張仕様。
JWT
JSON Web Token。署名付きで改ざん防止が可能なトークン形式。
トークンの形式
アクセストークンの形式の分類。例:JWT、Opaque token。
RFC6749
OAuth 2.0の公式仕様。認証・認可の標準を定義する文書。
RFC7636
PKCEの公式仕様。
同意画面
ユーザーがアプリにアクセス許可を与える画面。
CORS
クロスオリジンリソース共有。SPAなどのクロスドメイン動作で重要。
スコープ
スコープの別名表現。公開・閲覧権限などを指定。
アプリ登録
認証サーバへクライアント情報を登録する手続き。
認証フロー
認証・認可の実行手順の総称。
セキュリティベストプラクティス
安全に実装するための推奨事項(HTTPS必須、リダイレクトURI検証、PKCEの使用など)

oauthクライアントの関連用語

OAuthクライアント
リソースへアクセスを委任する主体。認可サーバーと連携して、アクセストークンを取得・利用します。
OAuth 2.0
リソースへのアクセスを第三者に委任するための標準的な認可フレームワーク。クライアント・リソースサーバー・認可サーバーが協力します。
認可サーバー
OAuth 2.0の中核となる認可を担当するサーバー。認可コードやトークンを発行します。
リソースサーバー
保護された資源(データ)を提供するサーバー。アクセストークンの検証を行い、権限を付与します。
リソースオーナー
リソースを所有しているユーザーやアカウント。認可を与える主体です。
アクセストークン
クライアントがリソースサーバーへアクセスする権利を証明する短命な文字列。期限が切れると再取得が必要です。
リフレッシュトークン
アクセストークンが期限切れになっても、新しいアクセストークンを取得するための長寿命トークンです。
認可コードフロー
ウェブアプリなどの安全な認可フロー。まず認可コードを取得し、それを使ってサーバー間でアクセストークンを得ます。
PKCE
公開クライアント向けに、コードの盗聴を防ぐための追加セキュリティ機構。コードチャレンジとコードベリファイアを使います。
コードチャレンジ
PKCEでクライアントが作成する値。認可サーバーはこれを検証します。
コードベリファイア
PKCEでサーバー側が検証する値。セキュリティを高める要素です。
認可コード
認可サーバーから発行される一時的なコード。これを用いてアクセストークンを取得します。
リダイレクトURI
認可サーバーが認可コードを返す先のURL。事前登録が必要です。
クライアントID
OAuthクライアントを識別する一意の識別子です。
クライアントシークレット
クライアントを認証する秘密の文字列。サーバーと安全に共有します(秘匿が前提)。
クライアント認証
認可サーバーに対してクライアントを証明する方法。主にクライアントIDとシークレットを用います。
JWT
JSON Web Tokenの略。署名付きのトークン形式で、自己完結的に情報を含められます。
JWKS
JSON Web Key Set。公開鍵のセットで、トークンの署名検証に使われます。
IDトークン
OpenID Connectで使われる、ユーザーの識別情報を含むトークンです。
OpenID Connect
OAuth 2.0の上にIDの情報を提供する認証レイヤー。サインイン状態を統一します。
スコープ
アクセス権の範囲を表すパラメータ。例: 'read', 'profile' など。
状態パラメータ
CSRF対策として、リクエストとコールバックを照合するための値です。
トークンエンドポイント
アクセストークンを発行・更新する認可サーバーのエンドポイントです。
認可エンドポイント
認可コードを取得するための認可サーバーのエンドポイントです。
Bearerトークン
HTTP Authorization ヘッダに用いる認証スキームの名称。主にアクセストークンを指します。
インプリシットフロー
ブラウザアプリ向けの古いフロー。現在は推奨されません。
トークンインスペクション
トークンの有効性や情報を認可サーバーに問い合わせて確認します。
TLSクライアント認証
クライアントをTLSで相互認証する方法。特に機密性の高い環境で使われます。

oauthクライアントのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14238viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2377viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1054viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
937viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
900viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
882viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
783viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
778viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
768viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
744viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
685viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
648viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
545viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
538viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
537viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
531viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
497viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
472viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
435viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
425viws

新着記事

インターネット・コンピュータの関連記事