アドオンの "ユーザーアクセスリスト" の作成
最終更新日 2024年02月06日(火)
アドオンのユーザーを管理するためには、少なくとも 1 つのログインツールをセットアップします。Heroku はアドオンへのシングルサインオン統合を提供しており、ユーザーはアプリのダッシュボードから Heroku アカウントを使用して直接ログインできます。一部のアドオンも独自のログインシステムを備えていたり、追加機能を提供するために GitHub などサードパーティの OAuth サービスを使用したりすることがあります。アドオンの SSO サービスと独自のログインシステムに共通の統合ログインリストを作成して、アドオンでのアクセス許可の管理を容易にすることができます。
この記事では、パートナー向け Platform API にリクエストを送信して “ユーザーアクセスリスト” を作成する方法について説明します。
前提条件
- パートナー向け Platform API へのアクセスと使用。
実装
ユーザーリストの種類
アプリにアクセスできるすべてのユーザーを表示するには、Heroku ユーザーの 2 つのリストを組み合わせる必要があります。
App collaboratorsはアプリ所有者がアクセス権を付与したユーザーです。これらのユーザーはアプリの共同作業者リストに表示されます。
Heroku Teams または Heroku Enterprise Teams のTeam membersは、アプリを所有するチームのチームメンバーリストに表示されます。
Heroku ユーザーの完全なリストを取得する
アドオンにアクセスできる Heroku ユーザーの完全なリストを取得するには、アプリの共同作業者リストとチームメンバーリストを組み合わせます。このリストを取得するには、次の API リクエストを実行します。
- アドオン情報: プロビジョニングリクエストで送信されたリソース UUID を使用して、アプリ ID または名前を取得します:
GET https://api.heroku.com/addons/:resource_uuid
。 - アプリの共同作業者リスト: アプリ ID または名前を使用して共同作業者のユーザーリストを取得します:
GET https://api.heroku.com/apps/:app_id_or_name/collaborators
。 - アプリ情報: アプリ ID または名前を使用して、逐次化された応答に
team
オブジェクトが存在することを確認し、チーム ID を取得します: GET https://api.heroku.com/apps/:app_id_or_name
。 - チームメンバーリスト: アプリがチームに属している場合はチーム ID を使用します:
GET https://api.heroku.com/teams/:team_id/members
。
SSO リクエスト中に提供されたメールアドレスが結合リストに含まれている場合、そのユーザーは指定されたアプリのアドオンにアクセスできます。
プロビジョニングされたアドオンリソースごとにこのプロセスを繰り返し、パートナー向け Platform API でそのアドオンのリソーススコープのアクセストークンを使用して認証します。
アプリの共同作業者とチームメンバーのリストは動的であり、所有者がアプリでユーザーを追加または削除すると常に変化します。このプロセスは定期的に実行して、常に情報を同期させておく必要があります。アドオンダッシュボードのセッション有効期限を超えない間隔で実行することをお勧めします。