【OAuthとは】アクセストークン、例題

OAuthとは?アクセストークン、例題についてまとめました。

スポンサーリンク

【OAuthとは】複数のWebサービスのセキュリティ機能を連携させる仕組み

OAuthとは、複数のWebサービスのセキュリティ機能を連携させることができる仕組みです。
通常、あるユーザーがWebサービスを利用する場合、Webサービス毎にIDとパスワードを登録してログインする必要があります。
OAuthにより複数のWebサービスを連携すれば、1つのWebサービスにログインすれば連携している他のWebサービスにはログインせずに利用できるようになります。
最近だと、GoogleやTwitterアカウントなどでログインできるWebサービスが増えていますが、そういった仕組みがOAuthです。これら複数のサービスを利用する時に、わざわざIDとパスワードを入れ直したりせずに、シームレスに利用できるようになります。

認証の仕組み

ユーザー(Webサービス1、2のアカウントを所有)
Webサービス1(コンシューマー:操作する側)
Webサービス2(サービスプロバイダ:操作される側)

項目 概要
①利用者がWebサービス1にアクセス
②Webサービス1が利用者をWebサービス2にリダイレクト
③利用者がWebサービス2で認証・認可手続き 利用者はWebサービス2から「サービスプロバイダーにどの程度のアクセス(権限)を許可するか」といった確認と同意を求められます。同意した権限に応じて「リクエストトークン(利用許可証)」がサービスプロバイダーで発行され、利用者はそれを取得しWebサービス1へとダイレクトされます。利用者はWebサービス1にリクエストトークンを送信します。
④Webサービス2が利用者からの認証・認可を取得できれば、Webサービス1に対してアクセストークンを発行 Webサービス2はWebサービス1の情報を登録し、Webサービス1に「登録証明書」(Consumer Key、Consumer Secret)を送付します。
⑤Webサービス2を操作(データ取得など)する場合、発行されたアクセストークンを含めたHTTPリクエストをWebサービス2に送信 Webサービス1はWebサービス2に対して、API経由で、登録証明書とリクエストトークン(利用許可証)を添えてユーザーリソースの操作の許可を申請します。Webサービス2は、登録証明書と利用許可証が正しいことを確認できたら、APIを利用するための「アクセストークン」と「トークンシークレット(利用者証明)」をコンシューマーに送付します。
⑥HTTPリクエストが正当なものであるかを検証後、問題なればリソースを含むHTTPレスポンスをWebサービス1に返す Webサービス2は、「アクセストークン」と「トークンシークレット(利用者証明)」を使ってAPIにアクセスし、サービスプロバイダーのデータを操作します。
スポンサーリンク

【例】クラウドサービスのセキュリティ(OAuth認証)

情報処理安全確保支援士試験(令和3年度・春・午後Ⅰ問1)で出題された「OAuth認証を用いたクラウドサービスのセキュリティ」を例に見てみます。

上記の場合、サービスプロバイダ、コンシューマー、ユーザーは以下の整理になります。

種別 概要
サービスプロバイダ(操作される側) Tサービス(以下、「T」)
コンシューマー(操作する側) Sサービス(以下、「S」)
ユーザー(利用者) 利用者(以下、(U))

先程紹介したOAuthの手順にT、S、Uを入れると図のフローの2以降と致していることがわかります。
この問題では1の手順は既に完了しているので省略されています。また、リクエストトークンのことを問題では「許可コード」と呼んでいます。
また、この問題では最後のデータ操作は「アカウント名の取得」となっています。

【情報処理安全確保支援士】午後問題の頻出分野「認証・アクセス制御」の攻略ポイントと過去問
情報処理安全確保支援士(登録セキスペ)の午後問題の頻出分野「認証・アクセス制御」の攻略ポイントと過去問についてまとめました。
【情報処理入門】用語解説・資格試験対策まとめ
情報処理分野の用語・原理・資格試験対策について解説します。
IPA試験対策
スポンサーリンク

コメント