連携済みアプリ
アプリとの関係には 2 つの側面があります。ユーザー が自分のアカウントに 連携されたアプリをどう見て管理するか、そして 開発者 が審査制のアクセスを どう申請するかです。
ユーザー向け: 同意と認可レコード
ユーザーが同意画面であなたのアプリを承認すると、認可レコード(grant)が 作られます。これは、ユーザーが認可したスコープの集合です。ユーザーはいつでも これを確認し、失効させられます。
| メソッド | パス | 目的 |
|---|---|---|
| GET | /developer/grants | 現在のユーザーが認可したアプリを一覧する。 |
| POST | /developer/grants/{clientId}/revoke | そのユーザーに対するアプリのアクセスを失効させる。 |
| GET | /oauth/consents | 認可済みアプリを一覧する(同意ビュー)。 |
| POST | /oauth/consents/{clientId}/revoke | アプリの連携を解除する — 同意を失効させ、さらにそのトークンも無効化します。 |
各認可レコードには、アプリと付与されたスコープが記録されます。失効は即時で、 既存のトークンについては取り消せません。アプリの連携を解除すると、そのアプリが 保持しているアクセストークンとリフレッシュトークンが無効になるため、ユーザーが 再認可するまでアプリはそのユーザーの代理として動作できません。
これがアプリにとって意味すること: トークンの無効化は通常の出来事として
扱ってください。ユーザーはいつでも連携を解除できます。解除されると呼び出しは
401 invalid_token を返し始めるので、トークンが永続すると仮定するのではなく、
ユーザーを 同意 に戻す動線を用意すべきです。
開発者向け: プログラムへの申請
開発者プログラムは 任意 です。アプリの登録 —— コンフィデンシャルでもパブリックでも、
読み取り・下書き・公開のスコープ付きで —— はセルフサービスで、申請は不要です。
プログラムが解放するのは審査制のスコープです。承認済みの開発者は、スコープごとに
申請する代わりに、登録時または PATCH で account:read、a2a、recipe:express を
アプリに直接追加できます。アクセスは招待制です。
| メソッド | パス | 目的 |
|---|---|---|
| POST | /developer/applications | 開発者プログラムに申請する(招待制)— { invite_code, motivation }、どちらも必須。 |
| GET | /developer/applications/my | 自分の開発者プログラム申請とそのステータス。 |
申請の status は pending、approved、rejected のいずれかです。審査待ちの
申請がある状態で再度申請すると 409 が返ります。承認されると、審査制のスコープに
スコープごとの申請が不要になります。アプリの登録 を
参照してください。
開発を始めるのにも、公開するのにも、プログラムの承認は不要です。パブリックな 読み取り専用のクライアントは、すぐに RFC 7591 でセルフ登録 でき、 ポータルは公開可能なアプリもセルフサービスで登録します。プログラムは、審査制の スコープをスコープごとの申請なしで必要とするアプリのためだけのものです。
関連
- アプリの登録 — セルフサービスのアプリのライフサイクル
- スコープ — 同意画面でユーザーが見て許可する内容
- OAuth 2.0 + PKCE — 認可レコードの作成とトークンの失効の仕組み
- OpenID Connect — サインインと、認可レコードが紐づくアイデンティティ