アドオンパートナーのためのアドオン所有権モデルとユーザー認証のガイドライン
最終更新日 2024年02月06日(火)
Table of Contents
Heroku アドオンは、それをプロビジョニングした Heroku ユーザーではなく、プロビジョニングの対象である Heroku アプリケーションによって所有されます。この記事では、このアドオン所有権モデルの影響について説明すると共に、SSO 経由でアドオンのダッシュボードにログインする Heroku ユーザーを適切に認証するためのガイドラインを示します。
インフラストラクチャでのアドオン所有権の表現
アドオンはプロビジョニングの対象である Heroku アプリケーションによって所有されるため、そのダッシュボードは、そのアプリケーションの管理者、所有者、または共同作業者であるすべての Heroku ユーザーからアクセスできます。アドオンのダッシュボードは、これらのロールを持っていない Heroku ユーザーから (このユーザーがそのアドオンを最初にプロビジョニングした場合でも) アクセスできるようにすべきではありません。
そのため、新しくプロビジョニングされたアドオンインスタンスに対応するシステム内にアカウントを作成する場合は、プロビジョニングしている Heroku ユーザーの情報を認証に関連したどのフィールドにも関連付けないでください。代わりに、プロビジョニングされたアドオンインスタンスごとに “シャドウユーザー” を作成します。このユーザーは、個々のユーザーには関連付けられないため、アドオン SSO 経由でしか認証できません (ユーザー名とパスワードでは認証できない)。
SSO 経由でのみ認証する
Heroku アプリユーザーは、アドオンの Web ダッシュボードを開くと、アドオン SSO 経由で認証されます。これは、Web サービスが Heroku アプリユーザーに対して許可するべき唯一の認証方法です。
- Heroku アドオンユーザーのアカウントのシステム内にユーザー名とパスワード (つまり、代わりの認証方法) を作成しないでください。
- アドオン SSO リクエストに含まれている特定のメールアドレスの認証権限を保存しないでください。
- 特定のアドオンに対して承認されているユーザーの一覧をキャッシュしないでください。これによってパフォーマンスの問題が発生する場合は、キャッシュエントリを少なくとも 5 分に 1 回無効にしてください。
これらのガイドラインは、Heroku アプリの所有者がいつでも変更される可能性があるため重要です。Heroku アプリの代わりにログインしようとしているユーザーにその操作が実際に承認されていることを保証するのは有効な SSO リクエストだけです。
アドオン SSO ダッシュボードのカスタマイズ
SSO ダッシュボードは、認証された Heroku の顧客に次の操作を許可する機能を備えているべきではありません。
- ユーザー名またはパスワードを変更する
- アカウントを非アクティブ化する
- アドオンのインストールにユーザーアカウントを追加する
- 認証または承認を変更する可能性があるその他のアクションを実行する
これらの機能は、Heroku と SSO の統合によって処理されます。ユーザーが Heroku 経由で認証されたことを検出した場合は、ダッシュボードでこれらの機能を無効かつ非表示にする必要があります。
パートナー向け Platform API を使用してユーザーの一覧をフェッチする
パートナー向け Platform API を使用すると、アドオンがアタッチされているアプリの所有者、チーム、共同作業者に関する情報を取得できます。この API では、アドオンがアドオンパートナー API の v3 を使用している必要があります。詳細は、「Syncing user access as an ecosystem partner」(エコシステムパートナーとしてのユーザーアクセスの同期) を参照してください。