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

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

ただいまの
回答率

88.80%

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

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 14K+

suvera

score 102

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

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

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

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

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

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • matobaa

    2016/08/11 16:59

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

    キャンセル

  • suvera

    2016/08/12 14:42

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

    キャンセル

回答 3

checkベストアンサー

+6

アクセストークンという言葉が聞き慣れなかったので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/16 11:55

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

    キャンセル

+3

質問が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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/16 11:49

    ありがとうございます。
    OAuth2についても理解が深まりました。

    リフレッシュトークンや生存期間などについてはなるほどと言った感じでした。

    キャンセル

-5

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/11 17:23

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

    キャンセル

  • 2016/08/11 17:33

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

    キャンセル

  • 2016/08/11 17:37 編集

    asahina_dev様

    回答になっていません。

    > 主題は:アクセストークンについて

    とお分かりであるにも関わらず、無関係なページに誘導しているからです。

    ご提示のページではCSRFに関する議論の過程で"トークン"という言葉が現れているに過ぎず、
    アクセストークンに関する説明は一切、なされていません。

    キャンセル

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

  • ただいまの回答率 88.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る