広告 セキュリティ

OAuthとは | OAuthの仕組みを図解でわかりやすく解説

OAuthとは(オーオース)

OAuthとは、異なるシステム間でデータや機能へのアクセス権限の許可を行う仕組みです。

例えば、ある利用者が「Aサービス」と「Bサービス」に加入している場合、各サービスのリソース(機能や保管しているデータなど)は利用者本人しか利用することはできません。

次の図のように「Aサービス」のリソースを利用できるのは 利用者本人。そして「Bサービス」も同様に「Bサービス」のリソースを利用できるのは 利用者本人です。

oauthを使わない場合

OAuthは、この異なるサービス間のリソースへのアクセス権限を付与することができる仕組みであり、OAuthにより権限の許可を付与することで、本来であれば利用することができない、他サービスのリソースを連携してもらうことができます。

oAuthを利用した例

上記はOAuthにより他サービスの情報を提供してもらう際のイメージ図です。このようにOAuthを利用することで、異なるシステム間での情報連携が可能です。

 

現在の最新バージョンであるOAuth 2.0では、次の4種類のロール(役割)が存在します。

名称説明
リソースオーナー(resource owner)保護されたリソースへのアクセスを許可する役割。リソースオーナーが人間の場合はエンドユーザーと呼ばれる。
リソースサーバ  (resource server)保護されたリソースを管理。 アクセストークンを用いた保護されたリソースへのリクエストを受理してレスポンスを返す役割。※上記図の例では「Bサービス」
クライアント (client)リソースオーナーの認可を得て、リソースオーナーの代理として保護されたリソースに対するリクエストを行う役割。※上記図の例では「Aサービス」
認可サーバ (authorization server)リソースオーナーの認証とリソースオーナーからの認可取得が成功した後、アクセストークンをクライアントに発行する役割。

スポンサーリンク

OAuthの仕組み

ここからは、OAuthがどのような仕組みで「権限の許可」を行うのか図解で説明していきます。

[手順1]リソースオーナーに対して許可を要求

OAuthの仕組み1

まず始めにクライアントはリソースオーナーに対して許可の要求をします。上記図では認可サーバを経由し許可の要求を依頼しているが、直接要求することも可能です。

[手順2] リソースオーナーから「認可グラント」を受け取る

OAuth仕組み2

リソースオーナーに許可されたクライアントは「認可グラント」と呼ばれるリソースオーナーからの認可を現す情報を受け取ります。

[手順3] 認可サーバに対してアクセストークンを要求する

OAuth仕組み3

リソースオーナーに許可されたクライアントは、認可サーバに対して「認可グラント」を提示し、リソースサーバへのアクセスするために必要な「アクセストークン」を要求します。

[手順4] 認可サーバから「アクセストークン」を受け取る

OAuth仕組み4

認可サーバはクライアントからの「認可グラント」の正当性を確認し、「認可グラント」が正当であれば「アクセストークン」を生成し、クライアントへ発行します。

[手順5] リソースサーバへリソース提供の要求を行う

OAuth仕組み5

クライアントは、リソースサーバにリソース提供の要求を行います。この時、認可サーバから発行された「アクセストークン」も一緒に送ります。

[手順6] クライアントにリソースを提供する

OAuth仕組み6

リソースサーバは、クライアントから送られてきた「アクセストークン」の正当性を確認し、正当であればクライアントからの要求を受け入れ、リソースを提供します。

helpful