開発者ポータルとアクセストークン
1)開発者ポータルの役割
開発者ポータルは、インテグレーターのための「フロントオフィス」です:セルフサービス(キー、トークン、webhook、関税プラン)、透明性(制限、使用量、請求書)、セキュリティ(回転、署名)、統合速度(SDK、ドキュメント、サンドボックス)。
主な目的:- TTI(統合までの時間)を数時間に短縮します。
- アクセス制御を与える:who/what/how much/when。
- 自動ツールによるサポート負荷の軽減。
2)初期登録とアカウント
登録:電子メール+2FA/SSO (SAML/OIDC);ドメイン検証(DNSトークン)。
組織とチーム:'Owner'、 'Admin'、 'Developer'、 'Billing'、 'Security'の役割。
マルチテナント:アプリケーションを組織にリンクする。データアクセス-テナント/環境によって。
KYC/B2B(卸売):企業向け-法人、契約、上記の制限。
3)付録およびクレジット
アプリケーションの種類:'server-to-server'、 'web'、 'mobile'、 'machine-to-machine'、 'webhook-consumer'。
3.1 APIキー(サーバー間、シンプルな統合)
識別子'key_id'+secret 'key_secret'(一度表示)。
スコープ計画とセットへのバインディング。
Request Signature (HMAC)および/または'Authorization: ApiKey <key_id>:<signature>'ヘッダー。
3.2 OAuth2/OIDC(推奨)
助成金:- クライアント資格情報(マシン)。
- 認可コード(+PKCE)(ユーザー委任)。
- リフレッシュトークン(オフラインアクセス、RTローテーション)。
- デバイスコード(テレビ/コンソール)。
3.3 mTLS(追加レベル)
ingressの相互TLS;証明書はポータルからダウンロードされます。アプリケーションに'cert_fingerprint'をバインドします。
4)トークン: タイプとライフサイクル
原則:- 短いAT+長いRT;RT-使用中に回転します。
- キー/アプリケーション/組織によって取り消し。
- スコープ/クォータの制限による再発行。
4.1 JWT形式(例)
json
{
"iss":"https://auth. example. com",
"sub":"app_123",
"aud":"https://api. example. com",
"exp":1730616000,
"iat":1730612400,
"scp":["wallet:read","bet:write"],
"org":"acme",
"kid":"jwks_2025_11",
"jti":"at_01HXY..."
}
公開鍵はJWKSで公開されています。「キッド」による回転。
4.2不透明なトークンとイントロスペクション
Authサーバーに'token_store' (Redis/SQL)を格納します。
イントロスペクション:'active'、 'scope'、 'exp'、 'client_id'、 'org'、 'tenant'。
5)スコープ、ロール、アクセスポリシー
スコープは操作を記述する('wallet: read'、 'wallet: write'、 'report: read')。
ロール集計スコープ('Developer'、 'Billing')。
ABAC:属性'org'、 'tenant'、 'region'、 'environment'。
政治家:"このキーは'eu-west-1'と'read'のみです。
ステップアップ:重要なメソッドには、拡張スコープまたはmTLSが必要です。
6)クォータ、制限、関税
料金制限:RPS/RPM、バースト。
クォータ:日/月、クレジット。
キー/アプリケーション/組織/テナント。
ポータルには、使用状況、ヘッダ'X-RateLimit-'および'X-Quota-'、およびオーバーエイジ予測が表示されます。
請求:プランとのリンク、イベントによるメーター設定、請求書、請求書のwebhook。
7) Webhookの管理
エンドポイント、秘密、イベントバージョンの登録。
テスト配達および再生;再試行ログ(2xx/4xx/5xx)
HMAC署名('X-Signature')、 'X-Webhook-Id'、重複排除、尊重'410'。
8)ドキュメントとSDK
SDK自動生成によるOpenAPI/AsyncAPI。
クックブック:リクエストの例、レトレイ、idempotence、ペジネーション、webhook。
試してみる遊び場(サンドキー付き)。
バージョンChangelogと憂鬱のページ。
9)サンドボックスとテストデータ
隔離された環境:'sandbox'、 'staging'、 'production'。
エンティティ(プレイヤー、トランザクション)とスクリプト(勝敗、遅延、5xx、 429)をテストします。
ポータルおよびリセット環境からのデータのシード。
10)秘密のセキュリティと保管
API秘密のキーハッシュ(明確なテキストに格納しないでください);一度キーを表示します。
署名トークンのシークレットマネージャ(KMS/HSM);'kid'キーの回転。
IP allowlist、 geo-constraints、 ASNフィルタ。
2FA/SSO、ハードウェアキー(WebAuthn)。
乱用に対する保護:作成時のCAPTCHA、アンチボットのヒューリスティクス、登録速度。
PII/秘密のないログ。パターンによるredaction。
11)監査およびコンプライアンス
監査ログ:キーの作成/閲覧/取り消し、Webhookの変更、レポートのダウンロード。
GDPR/DSAR-アプリケーション/組織データをダウンロードして削除します。
保持ポリシー:ログのTTL、インシデントの法的保持。
利用規約/公正な使用と輸出の制限。
12)管理と運用
インシデント/妥協によるトークンの大量リコール。
理由とアピールでアプリケーションの一時的な停止(中断)。
キーロールオーバー(2キーモード:'active/next')。
Incident comm:ステータスページ、メーリング、RSS/Webhooksステータス。
13) UI/UXポータル(キー画面)
組織ダッシュボード:使用状況/エラー/SLO/請求。
アプリケーション:キー、トークン、スコープ、制限、Webhook、環境。
フィルターとリプレイボタンを使用したWebhook配信ログ。
トークンコンソール:issue/recall、 history、 reason。
ドキュメントとSDK、 Quickstart、コードサンプル(コピーペースト)。
セクション「廃止と移行」。
14)契約および構成の例
14.1 OpenAPI(スニペット)
yaml paths:
/v1/apps:
post:
summary: Create app security: [{ oauth2: [admin:apps. write] }]
responses:
'201': { description: Created }
/v1/apps/{app_id}/keys:
post:
summary: Create API key (shown once)
responses:
'201': { description: Created }
/v1/oauth2/token:
post:
summary: Token endpoint (CC/AC)
responses:
'200': { description: Access token }
/v1/tokens/revoke:
post:
summary: Revoke access/refresh token responses:
'204': { description: Revoked }
14.2イントロスペクショントークン(回答)
json
{
"active": true,
"client_id": "app_123",
"scope": "wallet:read bet:write",
"org": "acme",
"exp": 1730616000,
"token_type": "access_token",
"jti": "at_01HXY..."
}
14.3キーポリシー(JSON)
json
{
"app_id":"app_123",
"plan":"pro-2025",
"scopes":["wallet:read","report:read"],
"limits":{"rps":50,"daily_requests":250000},
"regions":["eu-west-1"],
"ip_allow":["192. 0. 2. 0/24"]
}
15)バージョン管理とエスクロープロセス
セマンティックAPIバージョン('/v1'、'/v2')、 add-do-not-break互換性。
ポータルには、「時代遅れになるもの」、日付まで、および「移行方法」が表示されます。
移行ガイド、サンドボックス'v2'テスト、デュアル書き込み/デュアル読み取り可能な限り。
16)可視性と報告
使用法→収益:要求/クレジット/オーバーレイスケジュール。
ステータス別エラー/'error_code'、レイテンシーヒストグラム。
SLOウィジェット:キーハンドルのアクセシビリティとP95。
CSV/JSON、レポートのwebhook、分析用APIをエクスポートします。
17)チェックリスト
17.1安全性
- 2FA/SSO、ドメイン/メールの確認
- 秘密を一度表示、ハッシュストレージ
- JWKSとキー回転、'kid'
- mTLS (Ex)、 IP allowlist、 geo/ASNフィルタ
- アンチボット/乱用防止、キー生成のレート制限
- アクションとアクセスの監査ログ
17.DX/オンボーディング×2
- クイックスタート≤ 5分
- 同じサーフェスを持つSDK (TS/Py/Java/Go/。NET)
- 遊び場+サンドキー
- クックブック:Webhooks、ペジネーション、リトリート、Idempotence
- 制限/プラン/価格ページ
- コピーペーストの例
17.3オペレーション
- マストークンのリコール、アプリの一時停止
- インシデント/ステータスページ+サブスクリプション
- Webhook用DLQ/リプレイ
- Auto-Alerts for Near Quota Exhaustion
- 月次レポートと請求書
18)実施計画(3回繰り返し)
反復1-MVP (2-3週間):- 組織/アプリケーションの登録、APIキーの発行、クライアント資格情報OAuth2、基本的な制限(RPS/クォータ)、要求ログと使用状況グラフ、ドキュメントおよびSDK TS/Python、サンドボックス。
- JWT+JWKS、 key rotation、 Refresh Token+Rotate-on-use、必須2FA/SSO、 Webhook(署名、リトライ、ロギング、リプレイ)、請求webhook、レポートとエクスポート、ロール、ABAC。
- mTLS、管理ツール(大量取り消し/一時停止)、削除と移行v2、 Java/Go/。NET SDK、 finopsダッシュボード、GDPR/DSAR、リーガルホールド、高度なアンチ乱用。
19) ミニFAQ
JWTか不透明か?
JWTはAuthサーバー(signature/' kid')に尋ねることなく便利で、不透明なコンテンツを取り消したり隠したりするのが簡単です。両方ともよく使用されます:外部的にはJWT、内部的には不透明で内省的です。
アクセストークンの寿命はどのくらいですか?
短い:習慣のための5-15分、機械のための15-60分。リフレッシュメカニクスによって補償されます。
キーを安全に回転させるには?
'active/next'を保持し、両方をJWKSに投稿し、クライアントを'kid'で切り替え、古いものを思い出します。
合計
強力な開発者ポータルは、デフォルトでセルフサービス、オブザビリティ、セキュリティです。トークンの発行/回転/取り消し、透明な制限と請求、高品質のドキュメントとSDK、信頼性の高いWebhookと監査のための明確なプロセスを提供します。その後、インテグレータはすぐに起動し、あなたのプラットフォームは、負荷の下で管理可能、準拠し、安定したままになります。