OAuth認証でのトークンやコードの意味・取り扱い方法は?
Google Web Authについての疑問です。Webサービス上でOAuthを使いユーザー認証を行いユーザー情報を取得する仕組みがありますが、Googleサービスから返されるトークンの意味がきちんと理解できていません。
上記は、Google Sign-In for server-side appsのフロー図を抜粋したものです。
OAuthの認証は自分でもコードを書いたことがあり、基本的な仕組みは理解しているつもりです。そこからアプリケーション側へ返されるトークン2種類とコードの意味や取り扱いがよくわかりません。
具体的にわからないのは以下の3点です。
- access_token、id_token、one-time codeはどういうもので、それぞれはどう違うのか?
- 上記の3つの値はどの程度のセキュリティのもとで扱われるべきなのか?例えば、アプリケーション側のサーバーがSSL(https)を使用していない場合(つまり、図中のClient→Serverの通信が暗号化されていない場合)でもこの値をやりとりすることは問題とならないのか?
- ログインした後もServerを通じて継続的にAPIを呼びたい場合、上記の3つの値を保存するなどして対応するものなのか?それとも、Client側からServerにリクエストをするたびにどれかの値を渡してあげるものなのか?
項目数が多くなってしまったのですが、一部だけでもご教授いただければ幸いです。よろしくお願い致します。