Heroku CLI 認証
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2023年03月13日(月)
Table of Contents
Heroku への認証では、状況に応じて、以下のいずれかのメカニズムを使用します。
- Web ベース認証
- メールとパスワード
- API トークン
- SSH キー
メールアドレスとパスワードは、heroku
コマンドによって API トークンを取得するために使用されます。このトークンは、他のすべての Heroku API リクエストで認証に使用され、heroku.com の Web インターフェースからユーザーが自由に再生成できます。API トークンを再生成すると、現在のトークンが無効になり、新しいトークンが作成されます。
ユーザーがパスワードを変更すると、その API トークンが再生成されます。
SSH キーは、SSH Git トランスポートを使用するときの Git プッシュ認証に使用されます。heroku keys
を使用して Heroku で SSH キーを管理できます。
API トークンの保存
Heroku コマンドラインツールでは、標準 Unix ファイルの ~/.netrc
(Windows では $HOME\_netrc
) に API トークンを保存します。
netrc 形式は広く定着していて、Unix のさまざまなネットワークツールで広くサポートされています。Heroku の資格情報がこのファイルに保存されることにより、curl -n
などの他のツールがほとんど追加処理なしで Heroku API にアクセスできます。デフォルトの HTTP トランスポートを使用する場合、Git は cURL を使用し、cURL は .netrc
に保存された API キーを使用して Heroku HTTP Git サービスの認証を行います。
マシン上で HEROKU_API_KEY
環境変数を設定すると、netrc ファイルで設定されているトークンが上書きされます。
使用例
heroku login
(または認証が必要なその他の heroku
コマンド) を実行すると、~/.netrc
ファイルが作成または更新されます。
$ heroku login
heroku: Press any key to open up the browser to login or q to exit
› Warning: If browser does not open, visit
› https://cli-auth.heroku.com/auth/browser/***
heroku: Waiting for login...
Logging in... done
Logged in as me@example.com
$ cat ~/.netrc
machine api.heroku.com
login me@example.com
password c4cd94da15ea0544802c2cfd5ec4ead324327430
machine git.heroku.com
login me@example.com
password c4cd94da15ea0544802c2cfd5ec4ead324327430
API トークンの取得
CLI を使用してトークンを表示できます。
$ heroku auth:token
c4cd94da15ea0544802c2cfd5ec4ead324327430
netrc ファイル形式
このファイルには、自由形式のレコードとコメントのリストが含まれます。コメントは #
(ハッシュ) 記号で始まり、行の終わりまで続きます。
各レコードの形式は次のとおりです。
machine api.heroku.com
login me@example.com
password ABC123
パスワードフィールドは、実際には OAuth トークンです。アカウントのパスワードを使用しても無効であり、ここでは機能しません。