アクセストークン:定義、アーキテクチャ、使用法など
アクセストークン:定義、アーキテクチャ、使用法など
アクセストークンは、大量のデータを含む小さなコードです。ユーザー、アクセス許可、グループ、時間枠に関する情報は、サーバーからユーザーのデバイスに渡される1つのトークン内に埋め込まれます。
アクセストークンは、多くのWebサイトで使用されています。たとえば、Facebookの資格情報を使用して、Salesforceなど別のWebサイトにアクセスしたことがある人は、アクセストークンを使用したことになります。
アクセストークンに含まれるもの
一般的に、アクセストークンには3つの異なる部分が含まれます。これらすべてが連動して,リソースにアクセスするユーザーの権限を検証します
ほとんどのアクセストークンには、以下の3つの重要要素が含まれています。
- ヘッダー:トークンのタイプと、トークンの作成に使用されるアルゴリズムに関するデータを含みます。
- ペイロード:アクセス許可や有効期限など、ユーザーに関する情報を含みます。
- 署名:受信者がトークンの信頼性を保証するための検証データを含みます。通常、この署名はハッシュ化されるため、ハッキングや複製は困難です。
ペイロード(クレームセクションとも呼ばれます)は、トークンの成功に不可欠です。サーバー上の特定のリソースにアクセスしたい場合に、ペイロード内で適切なアクセス許可が付与されていなければ、アクセスできません。
また、開発者は、あらゆる種類のカスタムデータをペイロード内に配置できます。たとえば、Googleのアクセストークンは複数のアプリケーション(API)にアクセス権を付与でき、それらの資格情報はすべて1つのアクセストークンで指定されます。
アクセストークンのタイプは、Webサイトごとに異なります。たとえば、Facebookは4つのアクセストークンタイプを提供しています。さらに数十タイプが他のサイトで提供されています。
しかし、どれだけ多くのデータを含んだところで、アクセストークンが長くなるわけではありません。たとえば、JSON Web Token(JWT)は、3つのBase64-URL文字列で構成されます。この段落よりも短いのです。
アクセストークンの仕組み
ユーザーが自分のアクセスコードを記述することはありません。サーバーはデバイスと通信し、すべての作業は数分で行われます。
以下の予測可能な一連の手続きが行われます。
- ログイン:既知のユーザー名とパスワードを使用して、アイデンティティを証明します。
- 検証:サーバーがデータを認証し、トークンを発行します。
- 格納:トークンがブラウザに送信され、保存されます。
- 通信:ユーザーがサーバー上の新しいデータにアクセスするたびに、トークンの検証が再び行われます。
- 削除:セッションが終了すると、トークンは破棄されます。
アクセストークンは、シングルサインオン(SSO)に使用することも可能です。このとき、あるサイトからの資格情報が、別のサイトへのエントリに使用される「鍵」になります。以下の手順に従います。
- 認可:あるサイトからの資格情報を別のサイトへのエントリに使用することに同意します。
- 接続:第1のサイトが第2のサイトに接続し、支援を求めます。第2のサイトがアクセストークンを作成します。
- 格納:アクセストークンがブラウザに保存されます。
- エントリ:第2のサイトからのアクセストークンが、第1のサイトへのエントリを提供します。
SSOのリクエストはすぐに期限切れになります。以前にも解説しましたが、ほとんどのリクエストは約10分で期限切れになります。わずか60秒でプロセスを閉じるリクエストもあります。
アクセストークンの保護
アクセストークンは、インターネットのオープンスペースを移動する際には保護される必要があります。企業が暗号化や保護された通信チャネルを使用しなければ、サードパーティがトークンを取得できるようになり、そのような場合には機密データへの不正アクセスが可能になります。つまり、細心の注意を払うことが重要なのです。
また、ほとんどのアクセストークンには、有効期限があります。この簡単な手順によって、ユーザーがオンラインでアクティブであることをWebサイトが確認でき、大規模な複製や削除を回避する上で役立ちます。有効期限は企業によって異なります。
Oktaは、堅牢なシステムにより保存中/転送中のデータを保護し、お客様がハッカーを遠ざけるために取るべき手順を理解するためのお手伝いを提供しています。また、Oktaのツールを使用することで、お客様はデータを簡単かつ迅速に暗号化できます。詳しくはお問い合わせください。
参考文献
Using OAuth 2.0 to Access Google APIs(2020年12月、Google Identity)
Access Tokens(Facebook for Developers)
What Is OAuth? How the Open Authorization Framework Works(2019年9月、CSO)