Heroku でのシングルサインオン (SSO) サービスの使用 (エンドユーザー向け)
最終更新日 2022年03月18日(金)
Table of Contents
SSO による Heroku への認証の仕組み
Heroku で管理者がシングルサインオン (SSO) を有効化した後、ユーザーは会社の ID プロバイダーで Heroku にログインします。これは多くの場合、Slack や Dropbox のような他のクラウドサービスにログインするのと同じ場所です。 会社では ID プロバイダー (IdP) を使用して、任意の数のクラウドまたはオンプレミスサービスへの認証を集中化し、通常は 1 回のクリックで各サービスにアクセスできるようにします。
ユーザーは、IdP で一度ユーザー名とパスワードを入力するのみで、IdP の制御下にあるすべてのサービスにアクセス可能になります。
シングルサインオンで利用可能なサービスプロバイダーの一覧に Heroku を追加できるのは、ID 管理者のみです。 これらのサービスプロバイダーは多くの場合、メインログインページのタイルに表示されます。
シングルサインオンに関するメール通知の差出人は、常に ID 管理者であり、Heroku ではありません。 シングルサインオンや特定の通知内容について質問がある場合は、会社の ID 管理者に問い合わせてください。
既存の Heroku アカウント認証を SSO にアップグレードする
業務用のメールアドレスと紐付けられた Heroku アカウントを持つユーザーに招待が届き、会社の ID 管理者から提供された URL にアクセスして認証方式を SSO にアップグレードするよう求められます。 アカウントのアップグレードプロセスにより、会社の IdP を使用して Heroku にログインする方式に変更されます。これにより、アカウントの認証制御が会社に移管されます。
SSO にアップグレードすることを選択したユーザーは、以後、個人の資格情報を使用してのログインはできなくなり、 SSO を使用する必要があります。 個人のアプリを持っているユーザーは、SSO にアップグレードする前に、個人のアプリを別の (個人用) Heroku アカウントに移動しておくことが推奨されます。 アップグレードプロセスを拒否または延期したユーザーは、SSO リンクにアクセスすることで、いつでもアップグレードを再開して SSO に参加できます。
(アップグレードプロセスをキャンセルしたユーザーは未アップグレードのままであり、組織の管理者には “not under SSO” (SSO 未参加) と表示されます。)
アップグレードされたアカウントには “個人” 用の領域が常に確保されますが、会社の IT 部門はその Heroku アカウントへのアクセスをいつでもブロックできるため、ここで述べる “個人” はあくまで、従業員という文脈の中での個人であることをユーザーは理解する必要があります。
アカウントに長期間のトークンがある場合、これらは SSO を使用するようにアカウントがアップグレードされた後に無効になることを理解することが重要です。
SSO での新しい Heroku アカウントの取得
会社の ID プロバイダー (IdP) を経由して初めて Heroku にログインするとき、ログイン用のメールアドレスに紐付けられた Heroku アカウントがまだ存在していなければ、作成されます。つまり、ジャストインタイム (JIT) プロビジョニングによって新しい Heroku アカウントが作成されます。Heroku は組織の IdP を信頼し、認証されたユーザーに Heroku アカウントが必要であれば、作成します。
Heroku からウェルカムメールが届くので、受信確認リンクをクリックしてアカウントをアクティブにする必要があります。
SSO での Heroku CLI への認証
heroku login
コマンドを使用して、SSO で Heroku CLI にログインします。
$ 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/***
このコマンドにより、Web ブラウザで Heroku ログインページが開き、SSO ログインオプションを選択できます。
Log in
(ログイン) ボタンをクリックすると、Heroku CLI で自動的にログイン処理が行われます。
$ 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
環境変数 HEROKU_LEGACY_SSO=1
を設定することによって、従来の SSO ログインを使用できます。その場合、CLI から直接ログインするには heroku login
を実行します。これがヘッドレス SSO ログインのための唯一の方法です。
FAQ: SSO での Heroku アカウント
Q: 従業員が退職した場合はどうなりますか? 管理者はどのようにして元従業員の個人のアプリにアクセスするのですか?
A: 管理者はユーザーとしてログインし、アプリを移動することができます。
Q: ユーザーが認証を SSO にアップグレードし、将来、IdP 自体が管理者によって切断された場合、ユーザーは自分のアカウントにログインできますか?
A: 会社のメールシステムにまだアクセスできる場合、通常の方法で Heroku パスワードをリセットしてアカウントにアクセスできます。
Q: 自分のアカウントを SSO から切断できますか?
A: いいえ。認証をアップグレードして組織の IdP に接続した後は、IdP 管理者のみがアカウントを SSO から切断できます。
Q: Heroku で SSO セッションの存続期間はどれくらいですか?
A: SSO セッションの存続期間は 8 時間です。8 時間を過ぎると、再度ログインを求められます。
Q: Enterprise Team または Enterprise Account に対するアクセス許可を含む Heroku アカウントをすでに持っています。SSO 経由でサインインすると、その Enterprise Team/Enterprise Account に対するアクセス許可は変更されますか?
A: ほとんどの場合は、既存の Heroku アカウントを使用して SSO 経由でログインしても、Enterprise Team または Enterprise Account に対するアクセス許可は変更されません。これの例外は、ユーザーが Enterprise Team の collaborator
である場合です。collaborator
が SSO を使用して Enterprise Team にサインインすると、デフォルトのアクセス許可が与えられます。Enterprise Team のデフォルトの SSO アクセス許可レベルは、Enterprise Team の Settings
タブで admin
によって指定され、member
、admin
、viewer
のいずれかです。Enterprise Team のアクセス許可についての詳細は、「Heroku Team のアクセス許可と許可されるアクション」の記事を参照してください。Enterprise Account のデフォルトの SSO アクセス許可レベルは view
であり、設定できません。Enterprise Account に対するアクセス許可を含む Heroku アカウントをすでに持っている場合は、SSO 経由でログインしても、そのアクセス許可が変更されることはありません。
Q: SSO を使用しているときは多要素認証 (MFA) を有効にする必要がありますか?
A: はい。会社のセキュリティおよびガバナンスポリシーへのコンプライアンスを確保するには、MFA を有効にする必要があります。SSO 経由でログインする場合は、プラットフォームのネイティブな MFA 機能を使用するのではなく、ID プロバイダーで MFA を有効にする必要があります。