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の手順は既に完了しているので省略されています。また、リクエストトークンのことを問題では「許可コード」と呼んでいます。
また、この問題では最後のデータ操作は「アカウント名の取得」となっています。
【情報処理安全確保支援士】午後問題の頻出分野「認証・アクセス制御」の攻略ポイントと過去問
情報処理安全確保支援士(登録セキスペ)の午後問題の頻出分野「認証・アクセス制御」の攻略ポイントと過去問についてまとめました。
【情報処理入門】用語解説・資格試験対策まとめ
情報処理分野の用語・原理・資格試験対策について解説します。
コメント