Heroku CLI 認証
最終更新日 2023年06月15日(木)
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 トークンです。アカウントのパスワードを使用しても無効であり、機能しません。