質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

3回答

19149閲覧

アクセストークンについて。

suvera

総合スコア106

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

1グッド

2クリップ

投稿2016/08/09 01:30

色々とネットで調べたりしたんですがいまいち理解できていないため質問させていただきます。

自分のアクセストークンの理解は
利用者が自身のユーザー情報などにアクセスするためのトークン(文字列)をサーバーが発行し
サーバーが発行したトークンとどこかに保存しておいたトークンを照合して
利用者がアクセスしていい情報を提供するために利用している。

と言った感じで理解しています。
これがそもそも間違っているということもあると思います。
そういう場合はどこを間違って覚えているか、アクセストークンがどういうものか
教えて下さい。

概ね自分の理解が合っていたとして、以下の様な疑問が解決できませんでした。

アクセストークンとは文字列で合っているんでしょうか?
ネットで調べるとアクセストークンがユーザーデータを持っているかのように
書かれている時があります。

アクセストークンが文字列だったとしてIDと何が違うのかわかりません。
どちらもユーザーを識別するための情報だと思うのですが何が違うのでしょうか?
ユーザーIDはユーザー(人間)が扱う識別しで、
アクセストークンはサーバーとの認証認可のやり取りで扱う値と言った感じでしょうか?

また、アクセストークンとは少し話がずれるのかもしれませんが
リフレッシュトークンの有効性もイマイチ理解ができません。
リフレッシュトークンの仕組みでなぜアクセストークンの安全性が増すんでしょうか?
有効期限などの違いがあるだけで2つはさほど大きく違わない気がします。

いくつも同時に質問する形になってしまいましたが
よろしくお願いします。

maisumakun👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matobaa

2016/08/11 07:59

「アクセストークン」って、どの技術の言葉でしょうか? Oauth2あたりの話であってますか?
suvera

2016/08/12 05:42

返信が遅れてしまい申し訳ありません。 Oauth2について調べました。その辺りの話だと思います。
guest

回答3

0

ベストアンサー

アクセストークンという言葉が聞き慣れなかったのでOauth2について調べてみました。
suveraさんがアクセストークンについてご理解されたことと私なりの解釈は同じです。

登場人物は、エンドユーザー、サイトA、SNSサイトの3人いて、
エンドユーザーはもともとSNSサイトを利用している。
エンドユーザーがサイトAを通してSNSサイトにアクセスをする際に、SNSサイトがサイトAに対してエンドユーザーの代理としてアクセスを許可するために発行するものがアクセストークンだそうです。
(例えばinstagramにアップロードした画像をfacebookに連携するなど。)

アクセストークンがユーザーデータを持っているかのように書かれている時があります。

サイトAがSNSサイトの認証に使うものなので秘密鍵のようなものだと思いますが、
SNSサイトのユーザーを特定するために、ユーザーID(client_id)のようなものを合わせて送ります。
鍵自体をIDとして扱うことも不可能ではないと思いますが、client_idと合わせて管理するほうが楽でしょう。

有効期限などの違いがあるだけで2つはさほど大きく違わない気がします。

リフレッシュトークンはアクセストークンを再取得するためのトークンで、client_idとリフレッシュトークンを合わせて送ると新しいアクセストークンが獲得できます。なので使いみちが違うようです。
有効期限があるだけで安全かというとアクセストークンはサイトAとSNSサイトの間のネットワーク上を度々流れるわけで盗聴されて解析される危険性があるので期限を設けること自体は有効ではないでしょうか?
リフレッシュトークン自体は基本的にサイトAに保管しておいてアクセストークンを更新するときのみ使うので、盗まれる危険性が低いということかなぁと思います。

投稿2016/08/13 12:13

nullbot

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suvera

2016/08/16 02:55

ありがとうございます。 概ね間違って理解しているわけではなかったので安心しました。
guest

0

質問がOAuth2についてであれば、下記サイトのフローがわかりやすいと思います。

【Google OAuth2承認フローを理解しよう。 | GMaster:IT TRICK】
http://g-master.appspot.com/article/30001/50001/50002.html

アクセストークンの生存期間とリフレッシュトークンについての説明はこのあたりがわかりやすいかも。

【doorkeeper で リフレッシュトークンの仕組みを使う - kitak.blog】
http://kitak.hatenablog.jp/entry/2014/10/23/095907

【アクセストークンに有効期限を設けるべきかどうか - Qiita】 [http://qiita.com/r7kamura/items/3e03471e02ea9ab5902a](http://qiita.com/r7kamura/items/3e03471e02ea9ab5902a)

【OAuth 2.0 の仕組みと認証方法 | murashun.jp】
https://murashun.jp/blog/20150920-01.html#chapter-11

投稿2016/08/13 11:32

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suvera

2016/08/16 02:49

ありがとうございます。 OAuth2についても理解が深まりました。 リフレッシュトークンや生存期間などについてはなるほどと言った感じでした。
guest

0

とっても簡単なCSRF対策 を一読してみるといいかも トークンとCSRF 対策談義してるんで

投稿2016/08/11 01:47

asahina_dev

総合スコア610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matobaa

2016/08/11 07:57

ん、「リフレッシュトークン」とかいう単語がでてきているので、そのサイトのトークンと質問者のいうアクセストークンは別物のように見えます。
asahina_dev

2016/08/11 08:05

アクセストークンが更新切れのときに発行されるのがリフレッシュトークンのはずですよ
matobaa

2016/08/11 08:12 編集

ご提示いただいたサイトにはそのあたり言及している部分はなく、回答としては的外れではないでしょうか。そのへんを説明する回答にするか、説明しているサイトへ誘導しては。
asahina_dev

2016/08/11 08:13 編集

主題は:アクセストークンについて ですよ 主題変更してもらいますかねぇ なのでアクセストークンについて談義してたものを貼りましたが
matobaa

2016/08/11 08:15

ご提示いただいたサイトには、「トークン」という言葉は出てきますが「アクセストークン」という言葉が出てきません。この「トークン」が、質問者のいう「アクセストークン」と同じものなんでしょうか……
asahina_dev

2016/08/11 08:21

アクセスするたびに送信するトークンのことなんで同じですよ。 (提示サイトでは固定か都度がメインですけど)
asahina_dev

2016/08/11 08:23

ちなみにワンタイムトークンとは都度都度発行される有効期限が短いアクセストークンのこと
matobaa

2016/08/11 08:33

しかたないですね……回答が的外れなので下げますね
KiyoshiMotoki

2016/08/11 08:37 編集

asahina_dev様 回答になっていません。 > 主題は:アクセストークンについて とお分かりであるにも関わらず、無関係なページに誘導しているからです。 ご提示のページではCSRFに関する議論の過程で"トークン"という言葉が現れているに過ぎず、 アクセストークンに関する説明は一切、なされていません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問