アドオン SSO ダッシュボードでの Heroku ユーザーのロールの実装
最終更新日 2024年02月06日(火)
Table of Contents
アドオンが、複数の共同作業者が存在する Heroku アプリにアタッチされている場合は、それらのすべての共同作業者がアドオン SSO 経由でそのアドオンのダッシュボードを開くことができます。アドオンでは、オプションで、これらの共同作業者に割り当てる独自の一連のロールを定義できます。これにより、アプリの所有者は、特定のダッシュボード機能へのアクセスを制限できます。
この記事では、アドオン所有権モデルに違反することなく、アドオンダッシュボードのロールを作成して保持する方法について説明します。
最も重要なこととして、Heroku アドオンユーザーのシステム内にユーザー名やパスワードを決して作成しないでくださいnever create a username and/or password in your system for a Heroku add-on user。常に、アドオンユーザーはアドオン SSO 経由で認証してください。
常に新しい SSO ユーザーのデフォルトロールを設定する
共同作業者がアドオン SSO 経由でアドオンのダッシュボードを開いた場合は常に、システムへのリクエストに email
パラメータが含まれます。これは、その共同作業者の Heroku アカウントに関連付けられているメールアドレスです。
SSO リクエストが正常に認証された場合は、次のようにします。
- これが、このアドオンインスタンスに対して認証される最初のユーザーである場合は、そのユーザーに完全なダッシュボードアクセス許可を持つ “管理者” ロールを割り当てます。
- “完全なダッシュボードアクセス許可” には、今後認証される他の共同作業者のロールを変更する機能が含まれます。
- これが、認証する最初のユーザーではない新しいユーザーである場合は、そのユーザーに、アドオンのダッシュボードで意味のある “デフォルト” ロールを割り当てます (これは上記の “管理者” ロールと同じである可能性がある)。
- このユーザーが前に認証されている場合は、現在システムでそのメールアドレスに関連付けられているロールを割り当てます。
ユーザーにロールを割り当てたら、それをそのユーザーのメールアドレスと共にシステムに保存するようにしてください。
ダッシュボードは、ユーザーのロールが特定されると、そのロールのアクセス許可に従った UI を表示できます。
システムでは、特定のアドオンインスタンスに対して、常に少なくとも 1 人のアクティブユーザーが “管理者” ロールを持つ必要があるようにすることをお勧めします。そうしないと、どのユーザーもダッシュボードへのフルアクセスを持たないシナリオがより頻繁に発生する可能性があります。
システムでこの要件が適用されている場合でも、アドオンに関連付けられているアプリから、"管理者" ロールを持つすべてのユーザーが後で削除される可能性があることに注意してください。この場合、そのアプリの所有者は、アドオンプロバイダーが割り当てられるようにするサポートチケットを提出する必要があります。
チームが所有するアプリでロールを自動的に特定する
アプリが Heroku Team によって所有されている場合は、オプションで、「Syncing user access as an ecosystem partner」(エコシステムパートナーとしてのユーザーアクセスの同期) で説明されているエンドポイントを使用して特定のユーザーがそのチームの “管理者” または “メンバー” のどちらであるかを判定できます。アドオンのダッシュボードで同様の 2 ロール構造が使用されている場合は、ユーザーのチームロールから適切なダッシュボードロールを簡単に特定できます。