开发门户和访问令牌
1)开发者门户的作用
Developer Portal是集成商的"前台":自助服务(钥匙,代币,webhook,票价计划),透明度(限制,使用,发票),安全(轮换,签名),集成速度(SDK,文档,沙箱)。
主要目标:- 将TTI(时间到集成)缩短到几个小时。
- 提供访问可管理性:谁/什么/多少/何时。
- 通过自动工具减轻支持负担。
2)登录和帐户
注册:电子邮件+2FA/SSO(SAML/OIDC);域确认(DNS令牌)。
组织和团队:"Owner","Admin","Developer","Billing","Security"的角色。
多功能:将应用程序绑定到组织;数据访问-通过tenant/环境。
KYC/B2B (opz.):对于企业-法人,合同,上面的限制。
3)应用程序和credenschels
应用程序类型为:"服务器到服务器","web","mobile","machine-to-machine","webhook-consumer"。
3.1 Keys API(服务器到服务器,简单集成)
ID "key_id"+密码"key_secret"(一次可见)。
绑定到计划和scopes集。
查询签名(HMAC)和/或标题"授权:ApiKey <key_id>:<signature>'。
3.2 OAuth2/OIDC(建议)
赠款:- Client Credentials(计算机)。
- Authorization Code (+PKCE) (user-delegated).
- Refresh Token(离线访问,RT轮换)。
- 设备代码(电视/控制台)。
3.3 mTLS(附加级别)
互惠的TLS in ingress;证书通过门户下载;将'cert_fingerprint'绑定到应用程序。
4)代币: 类型和生命周期
原则:- 短AT+长RT;RT-滚动旋转(旋转使用)。
- 按键/应用/组织强制召回(revoke)。
- Pere发行,但仍保留scopes/配额限制。
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上发布;"kid"轮换。
4.2 Opaque令牌和Introspection
存储在Auth服务器"token_store" (Redis/SQL)中。
内断:"active","scope","exp","client_id","org","tenant"。
5)Scopes,角色和访问策略
Scopes描述操作("wallet:read","wallet:write","report: read")。
角色由scopes汇总("Developer","Billing")。
ABAC:"org","tenant","region","environment"的属性。
政客: "这个关键只是'eu-west-1'和'read'。"
步进:关键技术需要高级scopes或mTLS。
6)配额,限制和关税
Rate limits: RPS/RPM, burst.
配额:日/月,贷款。
按键/附录/组织/tenant。
该门户显示了usage,"X-RateLimit-"和"X-Cota-"的标题以及覆盖预测。
计费:与计划捆绑在一起,按事件计费,发票和计费网络手册。
7)网络包管理
注册结束点,秘密,事件版本。
测试交付和重播;尝试逻辑(2xx/4xx/5xx)。
HMAC签名("X-Signature"),"X-Webhook-Id",重复数据消除,尊重"410"。
8)文档和SDK
带有SDK自动生成的OpenAPI/AsyncAPI。
Cookbook:查询示例,retrai,幂等,分离,webhooks。
尝试播放(带有沙键)。
Version Changelog和解密页面。
9)沙盒和测试数据
孤立的环境:"sandbox","staging","production"。
测试实体(玩家,事务)和脚本(win/lose,延迟,5xx,429)。
从门户和周围环境进行数据搜索。
10)保密和保密
Hash Key API秘密(不公开存储);一次显示密钥。
签名令牌的秘密管理器(KMS/HSM);"kid"键轮换。
IP allowlist、地理约束、ASN过滤器。
2FA/SSO,硬件密钥(WebAuthn)。
防擦保护:CAPTCHA在创建时,反机器人启发式,注册速度。
没有PII/秘密的逻辑;按模板进行干预。
11)审核和合规性
审核日志:谁创建/查看/回收了密钥,修改了webhook,下载了报告。
GDPR/DSAR:卸载和删除应用程序/组织数据。
存储策略:TTL for Log,法律保留事件。
使用条件/公平使用和出口限制。
12)管理和运营
大规模召回事件/损害令牌。
暂时暂停应用程序(suspend),包括原因和上诉。
按键滚动(双键模式:"active/next")。
事件通讯:状态页面、邮件、RSS/webhooks状态。
13)门户的UI/UX(关键屏幕)
Dashboard组织:使用/错误/SLO/计费。
应用: 密钥,令牌,scopes,限制,webhooks,环境.
带有过滤器和Replay按钮的webhook交付日志。
令牌控制台:发布/评论,历史,原因。
文档和SDK,Quickstart,示例代码(复制粘贴)。
"消除和迁移"部分。
14)合同和configs示例
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"),兼容性"添加,不要中断"。
门户网站显示:"什么会过时",到什么日期,以及"如何迁移"。
迁移指南,测试沙盒"v2",双写作/双读。
16)可观察性和报告
Usage →收入:查询/贷款时间表/overage。
状态错误/"error_code",潜伏直方图。
SLO小部件:关键手柄的可用性和p95。
导出CSV/JSON,报告网络手册,用于分析的API。
17)支票单
17.1安全性
[2FA/SSO],域确认/邮件
- 一次显示秘密,散列存储
- JWKS和钥匙轮换,"kid"
- mTLS (opz.),IP allowlist,geo/ASN过滤器
- 反机器人/反颠覆,rate-limit创建密钥
- 操作和访问审核记录
17.2 DX/Onbording
- Quickstart ≤ 5分钟
- 具有相同曲面的SDK (TS/Py/Java/Go/.NET)
- Playground+沙键
- Cookbook: webhooks、degination、retrai、idementity
- 限制/计划/价格页面
- "复制粘贴"示例"
17.3个行动
- 大规模代币召回,suspend app
- 事件/状态页面+订阅
- webhook的DLQ/Replay
- 即将用尽配额的自动警报
- 月度报告和发票
18)实施计划(3次迭代)
迭代1-MVP(2-3周):- 组织/应用程序注册,Keys API发布,客户端信用OAuth2,基本限制(RPS/配额),查询日志和使用图形,文档以及沙箱TS/Python SDK。
- JWT+JWKS,键轮换,Refresh Token+rotate-on-use,授权2FA/SSO,webhooks(签名,retries,拼写,复制),计费webhooks,报告和导出,角色和ABAC。
- mTLS,管理工具(mass revoke/suspend),v2解密和迁移,Java/Go/.NET SDK,finops-dashbords,GDPR/DSAR,Legal Hold,高级防伪。
19)迷你常见问题
JWT还是opaque?
JWT很方便,无需查询Auth服务器(签名/"kid"),操作更易于召回和隐藏内容。它们通常同时使用:外部的JWT,内部的opaque带有内窥镜。
Access Token有多少人居住?
短:5-15分钟用于用户,15-60分钟用于机器。由refresh机械师补偿。
如何安全地轮换密钥?
保持"active/next",在JWKS上同时发布,在"kid"上切换客户,然后召回旧客户。
底线
强大的开发者门户网站是自助服务,可观察性和默认安全性。提供清晰的令牌发布/轮换/召回流程、透明的限额和计费、高质量的文档和SDK、可靠的网络手册和审核。然后,集成商将快速启动,您的平台将在负载下保持可控、兼容和稳定。