プロジェクト認証は、有効期間の短い RS256 アクセス トークンと不透明な回転リフレッシュ トークンを発行します。セッション ポリシーはプロジェクトごとに構成されます。
#トークン モデル
| トークン | 形式 | 使用する |
|---|---|---|
| アクセス トークン | RS256 JWT | ユーザー保護されたアプリケーション API の呼び出し |
| リフレッシュ トークン | Opaque halo_rt_… | セッションをローテーションする |
| プロバイダのログイン コード | ワンタイム不透明コード | ソーシャルサインインを完了する |
| OAuth アプリ トークン | RS256 JWT + 不透明更新 | サービス スコープのアクセス |
#リフレッシュ ローテーション
curl -X POST \
"https://api.agihalo.com/api/v1/auth/token?grant_type=refresh_token" \
-H "apikey: $HALO_PROJECT_PUBLISHABLE_KEY" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "halo_rt_..."
}'#アクセス トークンを確認する
GET
/api/v1/auth/.well-known/jwks.json公開可能キーヘッダーを使用してプロジェクトのパブリック JWK を取得し、一時的にキャッシュします。次のすべてを検証します:
- アルゴリズムは
RS256および JWTkidは JWK と一致します。 - 発行者は
halo-project:{projectId}. - 対象者は
halo-project-authプロジェクト ユーザー トークン用。 tokenUseはproject_auth_accessです。- 有効期限、プロジェクト ID、件名、セッション ID、電子メールが存在します。
GET
/api/v1/auth/user現在のユーザーに対する有効なベアラー アクセス トークンを解決します。
#取り消しとして再利用する
POST
/api/v1/auth/logoutプロジェクト オーナーは、アクティブなセッションを一覧表示し、ダッシュボードから個々のセッションを取り消すこともできます。ユーザーの禁止または削除により、今後のセッション検証は利用できなくなります。