ないブログに表示されています。新しい記事を書く事で広告が消えます。-コメントただいまコメントを受けつけておりません。APIではOAuthのバージョン2.0(推奨)と1.0が利用可能となっている。OAuthとは他webサービスで公開されている機能を利用するための認証用プロトコルである。OAuthに対応しているサービスとしては、GoogleやFacebookの一部webサービス等が該当する。スマートフォン・アプリなどで『このアプリケーションが次の機能へのアクセスを求めています。...』と表示されることがあると思うが、あれのweb版である。今回はライブラリを利用せずにGoogleでOAuth2.0を利用する方法を確認する。これはライブラリを利用してしまうとプロトコル本来の動作イメージが分からなくなってしまうからであり、実際にwebアプリを公開する場合にはライブラリを利用することを推奨する。OAuthで扱う情報は認証情報であり、暗号化せずに通信してしまう等による情報流出リスクを避けるためである。ライブラリの利用方法は、また別の機会に確認する。OAuthとは?OAuthとは他webサービスで公開されている機能を利用するための認証用プロトコルである。GoogleであればG-mailやyoutubeなど多数のサービスがOAuthに対応しており、サービス利用者(プログラマ)がサービスの一部を利用できるようになっている。このとき、利用できるサービスの範囲をスコープという。OAuth利用の流れOAuthの認証の関係者は、ユーザ・サービス利用者・サービス提供者の3者である。APIサービスである。OAuth利用時の3者の動きを以下に示す。Engine上のwebページにアクセスする(1)。API上でユーザ認証を行ってもらうため認証ページへとリダイレクトさせる(2)。APIの認証ページに飛ばされたユーザは、Googleアカウントでログインを求めらる(3)。API上の情報)の利用証人を求めている旨を表示し、ユーザに承認するか確認する。code」と呼ばれるワンタイム・パスを発行する(4)。code」をはじめとする幾つかのトークンを取得する(5)。code」を渡すことでAPIの利用が可能となる(6)。API等を利用しながらブラウザに表示する画面を作成し、結果の画面がユーザに表示される(7)。上記の流れを見れば分かるとおり、OAuthの利点としてはサービス利用者に対してIDやパスワードが知らされない点があげられる。IDのようなもの)を利用することにより、OAuthは一時的にAPIを利用する権限のみを提供することを実現しているのである。APIを利用する方法を見ていく。APIを利用するため、APIのクライアントIDとシークレット(パスワードのようなもの)を取得する。Consoleの「認証情報」から認証情報を作成することにより取得できる。認証情報の作成では「OAuthクライアントID」を選択する。認証情報が作成されるとクライアントID、クライアント・シークレットが自動作成される。code」を返すリダイレクト先のURLを設定するとConsole上の設定は終了である。APIに利用したいサービスを指定する際にはサービスのURLとスコープ(利用の範囲)が必要である。PlayGround」で確認できる。PlayGroundは上記で説明したOAuthプロトコルの流れを1つづつ順を追って確認するためのデモサイトである。PlayGroundの利用方法の概要を確認する。Step1で利用可能なスコープ名の一覧が表示されている。APIを利用する場合、ここに表示されているスコープ名が利用できる。APIのユーザ認証確認画面にリダイレクトされる。「許可」ボタンを押下する。tokens」ボタンを押下。token」が取得される。operations」ボタンを押下すると利用可能なサービスのURIが一覧表示される。APIを利用する際にも、このサービスURLを利用する。URIの項目に同URLが表示される。APIサービスの要求が発生し、結果が画面右側に表示される。JavaでOAuth2.0を利用するサンプル・プログラムを示す。サンプルでは「http://localhost:8888/OAuth2Test」にアクセスすると、OAuth2.0認証を使ってGoogleのユーザ情報取得サービスにアクセス・結果を出力する。プログラム作成にあたりkimukou_26さんのサイト(*4)を参考にさせていただいた。ユーザ情報を取得するために利用するスコープと利用サービスは以下のとおりである。OAuth2クライアントID。OAuth2クライアント・シークレット(暗号化のソルトにあたるもの)。リダイレクト先URL。consoleに表示されている値。スコープ(使用権限を求めるアプリ。codeを利用して、各種トークンを作成する。accessTokenを利用して、サービスにアクセスする。https://○○/○○.jpg◇解説OAuthを利用する部分は56行目~105行目である。APIの認証サイトへリダイレクトする(58行目~68行目)。API認証画面が表示されるので承認する。APIはリダイレクト先URL「http://localhost:8888/OAuth2Test」をGETパラメータ「state=dummy」で呼び出す。APIへトークンを要求している(76行目)。getTokenMap関数内部(119行目~156行目)を見てみると、内部でHTTPリクエストを作成・発行し、戻ってきたレスポンス(JSON形式)からトークンを取得し連想配列に格納している。APIからユーザ情報を取得している(79行目)。して得られた情報をユーザに対して表示しているのが、82行目~99行目である。連絡はContactよりお願いします。忍者ブログ©軽Lab。