「GitHubでパスワードが使えなくなった」「アクセストークンって何?」
そんな疑問を持っている方も多いのではないでしょうか。最近のウェブサービスでは、パスワードの代わりにアクセストークンという仕組みが広く使われるようになりました。
この記事では、アクセストークンの基本的な概念から、実際の作成方法、セキュリティ上の注意点まで、初心者の方にも分かりやすく解説していきます。
アクセストークンとは?

アクセストークンとは、ユーザー名とパスワードの代わりに使う認証情報のことです。
簡単に言うと、「このアプリケーションは、この操作をする権限がありますよ」ということを証明する「電子的な鍵」のようなものです。
たとえば、あなたがホテルに泊まるときを想像してみてください。フロントでチェックインすると、部屋の鍵(カードキー)をもらいますよね。この鍵があれば、いちいちフロントに行かなくても自分の部屋に入れます。
アクセストークンも同じような役割を果たします。最初に本人確認(ログイン)をしたら、その後はアクセストークンという「鍵」を使って、サービスにアクセスできるんです。
具体例で理解しよう
例えば、GitHubのAPIを使ってプログラムからリポジトリにアクセスしたいとします。
パスワードを使う場合:
- 毎回、ユーザー名とパスワードを送信する必要がある
- パスワードが通信中に漏れるリスクがある
- プログラムにパスワードを直接書く必要がある(危険!)
アクセストークンを使う場合:
- トークンを一度発行すれば、それを使い回せる
- トークンが漏れても、すぐに無効化できる
- 必要最小限の権限だけを与えられる
このように、アクセストークンの方が安全で便利なんです。
なぜアクセストークンが必要なのか?
パスワードではなく、なぜアクセストークンを使うのでしょうか。その理由は主に3つあります。
1. セキュリティの向上
パスワードは、あなたのアカウントへの「マスターキー」です。もしパスワードが漏れてしまうと、アカウント全体が乗っ取られてしまいます。
一方、アクセストークンは「限定された鍵」です。特定の操作だけができる権限を持たせることができます。万が一トークンが漏れても、できることは限られているため、被害を最小限に抑えられます。
2. 簡単に無効化できる
パスワードが漏れた場合、パスワードを変更する必要があります。そうすると、そのパスワードを使っているすべてのアプリやサービスで設定し直さなければなりません。
アクセストークンなら、漏れたトークンだけを無効化すればOK。他のトークンやパスワードには影響しません。
3. 複数のアプリケーションで使い分けられる
例えば、GitHubを使う場合を考えてみましょう。
- 自動デプロイツール用のトークン
- 開発用のトークン
- データ取得用のトークン
このように、用途ごとに別々のトークンを発行できます。それぞれに必要な権限だけを与えておけば、万が一どれかが漏れても影響範囲を限定できます。
アクセストークンの仕組み
アクセストークンがどのように動くのか、流れを見てみましょう。
基本的な流れ
1. ユーザーがログイン
ユーザー名とパスワードを入力して、本人確認を行います。
2. トークンの発行
認証サーバー(認可サーバーとも呼ばれます)が、アクセストークンを生成します。
3. トークンの保存
発行されたトークンは、ブラウザのCookie(クッキー)や、プログラムの設定ファイルなどに保存されます。
4. トークンを使ってアクセス
以降のアクセスでは、このトークンを提示することで、本人確認が完了します。
5. トークンの検証
サーバーは、送られてきたトークンが有効かどうかを確認します。有効であれば、リクエストされた情報や機能を提供します。
6. トークンの期限切れ
アクセストークンには通常、有効期限があります。期限が切れたら、新しいトークンを取得する必要があります。
トークンの中身
アクセストークンは、ランダムな英数字の文字列に見えますが、実は重要な情報が含まれています。
代表的なトークンの形式に「JWT(ジェイダブリュティー、JSON Web Token)」があります。JWTは3つの部分から構成されています:
ヘッダー(Header):
トークンのタイプや暗号化方式などの情報
ペイロード(Payload):
ユーザーID、権限(スコープ)、有効期限などの実際のデータ
署名(Signature):
トークンが改ざんされていないことを証明するためのデジタル署名
例えば、こんな感じのランダムな文字列になります:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMTIzNDUiLCJleHAiOjE2ODAwMDAwMDB9.abcdef123456
この文字列を見ても、何が書いてあるか分かりませんよね。でも、専用のツールを使えば、中身を読み取ることができます(もちろん、署名を検証する必要がありますが)。
アクセストークンの種類
アクセストークンにはいくつかの種類があります。用途によって使い分けられています。
1. パーソナルアクセストークン(Personal Access Token)
個人のアカウントに紐付けられたトークンです。GitHubなどで広く使われています。
- 特徴: 個人が自分のリソースにアクセスするために使う
- 用途: コマンドラインからのGit操作、APIの利用など
- 有効期限: 設定可能(30日、60日、90日、無期限など)
2. OAuthトークン
他のサービスと連携するときに使われるトークンです。
- 特徴: ユーザーがサードパーティのアプリに、自分のデータへの限定的なアクセスを許可する
- 用途: 「Facebookでログイン」「Googleでログイン」などのソーシャルログイン
- 有効期限: アクセストークンは短め(1時間程度)、リフレッシュトークンで更新可能
3. APIキー
厳密にはトークンとは少し違いますが、似たような役割を果たします。
- 特徴: アプリケーションを識別するための鍵
- 用途: Google Maps API、天気予報APIなど、公開APIの利用
- 有効期限: 通常は無期限(手動で削除するまで有効)
4. ベアラートークン(Bearer Token)
最もシンプルなトークンの形式です。
- 特徴: トークンを持っている人なら誰でも使える(追加の認証不要)
- 用途: API認証で広く使われている
- 注意点: 盗まれると悪用されやすいため、HTTPS通信が必須
GitHubでアクセストークンを作成する方法

実際にGitHubでアクセストークンを作成してみましょう。GitHubでは2021年8月13日以降、パスワード認証が廃止され、アクセストークンまたはSSH鍵の使用が必須となりました。
作成手順
ステップ1:GitHubにログイン
GitHubのウェブサイト(https://github.com)にアクセスして、ログインします。
ステップ2:設定ページを開く
画面右上のプロフィール写真をクリックし、「Settings(設定)」を選択します。
ステップ3:Developer settingsを開く
左側のメニューを一番下までスクロールして、「Developer settings」をクリックします。
ステップ4:Personal access tokensを選択
左側のメニューから「Personal access tokens」をクリックし、「Tokens (classic)」を選択します。
ステップ5:新しいトークンを生成
「Generate new token」ボタンをクリックします。パスワードの入力を求められる場合があります。
ステップ6:トークンの設定
次の項目を設定します:
Note(トークンの名前):
トークンの用途が分かる名前を付けましょう。
例:「開発用PC」「自動デプロイツール」など
Expiration(有効期限):
トークンの有効期限を選択します。
- 30日
- 60日
- 90日
- カスタム(任意の日数)
- 無期限(No expiration)
セキュリティ上、有効期限を設定することをおすすめします。
Select scopes(権限の選択):
トークンに与える権限を選択します。必要最小限の権限だけにチェックを入れましょう。
主な権限:
- repo: プライベートリポジトリへの完全なアクセス
- public_repo: 公開リポジトリへのアクセスのみ
- workflow: GitHub Actionsのワークフローの更新
- read:org: 組織の情報を読み取り
- gist: Gistの作成と編集
ステップ7:トークンを生成
画面下部の「Generate token」ボタンをクリックします。
ステップ8:トークンをコピー
生成されたトークン(長いランダムな文字列)が表示されます。
重要:このトークンは今しか表示されません! 必ずコピーして、安全な場所に保存してください。
例:ghp_1234567890abcdefghijklmnopqrstuvwxyz
このページを離れると、二度とトークンを見ることはできません。もし忘れてしまった場合は、新しいトークンを生成する必要があります。
アクセストークンの使い方
発行したアクセストークンを実際に使ってみましょう。
GitHubでの使用例
コマンドラインでのGit操作
リポジトリをクローンしたり、プッシュしたりする際に、パスワードの代わりにトークンを使います。
git clone https://github.com/ユーザー名/リポジトリ名.git
実行すると、ユーザー名とパスワードを求められます:
Username: あなたのGitHubユーザー名
Password: 発行したアクセストークン(ghp_で始まる文字列)
トークンの保存
毎回トークンを入力するのは面倒なので、Git Credential Managerを使って保存できます。
Windowsの場合:
一度トークンを入力すれば、Windowsの資格情報マネージャーに自動的に保存されます。
Macの場合:
キーチェーンに保存されます。
Linuxの場合:
以下のコマンドで、認証情報をキャッシュできます:
git config --global credential.helper cache
APIでの使用例
GitHubのAPIを使う場合、HTTPヘッダーにトークンを含めます。
curlコマンドの例:
curl -H "Authorization: Bearer あなたのトークン" https://api.github.com/user
Pythonでの例:
import requests
headers = {
"Authorization": "Bearer あなたのトークン"
}
response = requests.get("https://api.github.com/user", headers=headers)
print(response.json())
このように、HTTPリクエストのヘッダーにAuthorization: Bearer トークンという形式で含めるのが一般的です。
セキュリティ上の注意点
アクセストークンは便利ですが、使い方を間違えると危険です。以下の点に注意しましょう。
1. トークンをパスワードと同じように扱う
アクセストークンは、パスワードと同じくらい重要な情報です。絶対に以下のことは避けてください:
❌ やってはいけないこと:
- GitHubなど公開されている場所にトークンを含むコードをアップロードする
- SlackやTeamsなどのチャットツールでトークンを共有する
- トークンをプログラムのソースコードに直接書く
- 不特定多数が見られる場所にトークンを記載する
⭕ 正しい保存方法:
- 環境変数に保存する
- 設定ファイルに保存し、
.gitignoreでバージョン管理から除外する - パスワード管理ツール(1Password、LastPassなど)を使う
- クラウドサービスのシークレット管理機能を使う
2. 必要最小限の権限だけを与える
トークンを作成するときは、本当に必要な権限だけにチェックを入れましょう。
例えば、公開リポジトリの内容を読み取るだけなら、public_repoだけで十分です。全権限を与えるrepoは不要です。
権限の例:
- リポジトリの内容を読み取るだけ →
public_repoまたはrepo(読み取り権限のみ) - コードをプッシュしたい →
repo - GitHub Actionsを操作したい →
workflow
3. 有効期限を設定する
無期限のトークンは便利ですが、セキュリティリスクも高くなります。できるだけ有効期限を設定しましょう。
推奨設定:
- 開発用トークン:30日〜90日
- 自動化ツール用:90日(定期的に更新する仕組みを作る)
- 一時的な作業用:7日〜30日
有効期限が切れる前に通知が来るので、定期的に更新する習慣をつけましょう。
4. 定期的に見直して削除する
使わなくなったトークンは、放置せずに削除しましょう。
GitHubの場合:
Settings > Developer settings > Personal access tokens から、不要なトークンを見つけて「Delete」をクリックします。
5. HTTPS通信を使う
トークンは必ずHTTPS(暗号化された通信)で送信してください。HTTP(暗号化なし)で送ると、通信内容が盗聴され、トークンが漏れる危険があります。
GitHubなど主要なサービスは自動的にHTTPSを使いますが、自分でAPIサーバーを立てる場合は要注意です。
6. トークンが漏れた場合の対処
もしトークンが漏れてしまった、または漏れた可能性がある場合は、すぐに以下の対応を取りましょう:
- 該当するトークンを即座に削除
GitHubの設定画面から、該当するトークンを削除します。 - 不審なアクティビティをチェック
アカウントの履歴を確認し、身に覚えのない操作がないかチェックします。 - 新しいトークンを発行
必要であれば、新しいトークンを発行します。 - パスワードを変更
念のため、GitHubのパスワードも変更することをおすすめします。
よくある質問

Q1. アクセストークンとパスワードの違いは?
パスワード:
- アカウント全体へのアクセス権限を持つ「マスターキー」
- すべての操作が可能
- 一度設定したら頻繁には変更しない
アクセストークン:
- 特定の操作のみができる「限定された鍵」
- 権限を細かく設定できる
- 用途ごとに複数発行できる
- 簡単に無効化できる
- 有効期限を設定できる
つまり、トークンの方が安全で柔軟に管理できるということです。
Q2. トークンを忘れてしまいました
トークンは、発行時に一度しか表示されません。忘れてしまった場合は、新しいトークンを発行するしかありません。
古いトークンは削除して、新しいトークンを発行しましょう。
Q3. 有効期限が切れたトークンはどうすればいい?
有効期限が切れたトークンは自動的に無効になります。引き続き使いたい場合は、新しいトークンを発行する必要があります。
一部のサービスでは「リフレッシュトークン」という仕組みがあり、自動的に新しいトークンを取得できますが、GitHubのパーソナルアクセストークンでは、手動で新しいトークンを発行する必要があります。
Q4. トークンとAPIキーの違いは?
似ていますが、少し違います。
APIキー:
- アプリケーションを識別するための鍵
- ユーザー認証は含まれない
- 主に公開APIの利用制限やレート制限(一定時間内のリクエスト数制限)のために使われる
アクセストークン:
- ユーザーの認証情報を含む
- 特定のユーザーが特定の操作をする権限を証明する
- より詳細な権限設定が可能
簡単に言うと、APIキーは「このアプリです」、アクセストークンは「このユーザーがこのアプリを使って、こういう操作をしたいです」という違いがあります。
Q5. SSHキーとアクセストークンのどちらを使うべき?
どちらも安全な方法ですが、用途によって使い分けるのがベストです。
SSHキーがおすすめの場合:
- 自分のパソコンからのGit操作のみ
- 設定が一度で済む(有効期限なし)
- コマンドラインでの作業が多い
アクセストークンがおすすめの場合:
- APIを使ってプログラムからアクセスする
- 複数の環境で使い分けたい
- 権限を細かく制御したい
- Web UIからの操作と同じ感覚で使いたい
多くの場合、普段の開発にはSSHキー、プログラムからのAPI利用にはアクセストークンという使い分けが良いでしょう。
Q6. OAuthとは何ですか?
OAuth(オーオース)は、アクセストークンを発行するための標準的な仕組みです。
例えば、「Facebookでログイン」や「Googleでログイン」というボタンを見たことがありますよね。これがOAuthを使った認証です。
仕組みはこんな感じです:
- あなたが「Facebookでログイン」をクリック
- Facebookのログイン画面に移動
- Facebook側で認証が完了すると、アクセストークンが発行される
- そのトークンを使って、元のサービスがあなたのFacebook情報にアクセスできる
この仕組みのおかげで、あなたはサービスごとに新しいアカウントを作る必要がなく、またサービス側もあなたのFacebookのパスワードを知る必要がありません。
Q7. 無期限のトークンを発行しても大丈夫?
技術的には可能ですが、セキュリティ上はおすすめしません。
無期限トークンのリスク:
- 一度漏れたら、削除するまでずっと悪用される
- 使わなくなったトークンを忘れて放置してしまう
- 定期的な見直しの機会がない
ただし、以下のような場合は無期限でも構いません:
- 自動化ツールで、トークン更新の仕組みを作るのが難しい
- 非常に厳重に管理されている環境で使用する
- 定期的に手動でトークンの見直しをする習慣がある
無期限トークンを使う場合は、特に厳重に管理しましょう。
まとめ
アクセストークンについて、重要なポイントをまとめます。
アクセストークンとは:
- ユーザー名とパスワードの代わりに使う認証情報
- 特定の操作に対する「限定された鍵」
- より安全で柔軟な認証方法
主なメリット:
- セキュリティが向上する(パスワードを毎回送信しなくて済む)
- 権限を細かく設定できる
- 簡単に無効化できる
- 用途ごとに複数発行できる
使用する際の注意点:
- パスワードと同じくらい大切に扱う
- 公開されている場所に書かない
- 必要最小限の権限だけを与える
- 有効期限を設定する
- 使わなくなったトークンは削除する
- HTTPS通信で送信する
GitHubでの作成手順:
- Settings > Developer settings > Personal access tokens
- Generate new tokenをクリック
- 名前、有効期限、権限を設定
- Generate tokenをクリック
- トークンをコピーして安全に保存
アクセストークンは、最初は難しく感じるかもしれませんが、一度理解してしまえば非常に便利で安全な仕組みです。
特にGitHubを使っている方は、パスワード認証が廃止されたため、アクセストークンの使用が必須となっています。ぜひこの機会に、アクセストークンの仕組みを理解して、安全に活用してください。


コメント