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

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

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

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

インターネット上で簡単に写真が共有できるオンラインアルバムサービス、YouTubeなどの動画共有サービス、mixiやFacebookなどのSNS(ソーシャル・ネットワーク・サービス)、Twitter、ブログなど、ユーザー登録をしてさまざまな情報を発信できるWebサービスが増えてきました。これら複数のサービスを利用する時に、わざわざIDとパスワードを入れ直したりせずに、シームレスに利用できるようにする仕組みが「OAuth」です。

種別 概要
操作される側 「サービスプロバイダ」という。
操作する側 「コンシューマー」という。
ユーザー Webサービスの利用者でそれぞれのアカウントの持ち主。
順番 操作内容
1 サービスプロバイダ(操作される側)が、コンシューマー(操作する側)にOAuth認証の利用許可を与えます(最初の1回のみ)。これにより、サービスプロバイダーはコンシューマーの情報を登録し、コンシューマーに「登録証明書」(Consumer Key、Consumer Secret)を送付します。
2 ユーザーは、コンシューマーからサービスプロバイダーのWebページへとリダイレクトされ、「サービスプロバイダー(T)にどの程度のアクセス(権限)を許可するか」といった確認と同意を求められます。同意した権限に応じて「リクエストトークン(利用許可証)」がサービスプロバイダーで発行され、ユーザーはそれを取得し、コンシューマーのWebページへとリダイレクトされます。ユーザーはコンシューマーにリクエストトークンを送信します。
3 必要に応じてコンシューマーはサービスプロバイダーに対して、API経由で、登録証明書とリクエストトークン(利用許可証)を添えてユーザーリソースの操作の許可を申請します。サービスプロバイダーは、登録証明書と利用許可証が正しいことを確認できたら、APIを利用するための「アクセストークン」と「トークンシークレット(利用者証明)」をコンシューマーに送付します。
4 サービスプロバイダーは、「アクセストークン」と「トークンシークレット(利用者証明)」を使ってAPIにアクセスし、サービスプロバイダーのデータを操作します。

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

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

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

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

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

順番 操作内容
1 サービスプロバイダ(T)が、コンシューマー(S)にOAuth認証の利用許可を与えます(最初の1回のみ)。これにより、サービスプロバイダー(T)はコンシューマー(S)の情報を登録し、コンシューマー(S)に「登録証明書」(Consumer Key、Consumer Secret)を送付します。
2 ユーザー(U)は、コンシューマー(S)からサービスプロバイダー(T)のWebページへとリダイレクトされ、「サービスプロバイダー(T)にどの程度のアクセス(権限)を許可するか」といった確認と同意を求められます。同意した権限に応じて「リクエストトークン(利用許可証)」がサービスプロバイダーで発行され、ユーザー(U)はそれを取得し、コンシューマーのWebページへとリダイレクトされます。ユーザーはコンシューマー(S)にリクエストトークンを送信します。
3 必要に応じてコンシューマーはサービスプロバイダーに対して、API経由で、登録証明書とリクエストトークンを添えてユーザーリソースの操作の許可を申請します。サービスプロバイダー(T)は、登録証明書とリクエストトークンが正しいことを確認できたら、APIを利用するための「アクセストークン」と「トークンシークレット(利用者証明)」をコンシューマー(S)に送付します。
4 サービスプロバイダー(T)は、「アクセストークン」と「トークンシークレット(利用者証明)」を使ってAPIにアクセスし、サービスプロバイダー(S)のデータを操作します。
【情報処理安全確保支援士】午後問題の頻出分野「認証・アクセス制御」の攻略ポイントと過去問
情報処理安全確保支援士(登録セキスペ)の午後問題の頻出分野「認証・アクセス制御」の攻略ポイントと過去問についてまとめました。
【情報処理入門】テクノロジ系、マネジメント系、ストラテジ系、資格試験
情報処理の基礎知識(テクノロジ系、マネジメント系、ストラテジ系)や資格試験についてまとめました。なお、情報処理技術者試験の出題分野別(テクノロジ系、マネージメント系、ストラテジ系)に各項目を整理しています。そのため、ITパスポート、基本情...

コメント

タイトルとURLをコピーしました