← 返回
安全合规
中文
OAuth
Implement OAuth 2.0 and OpenID Connect flows securely.
安全实现 OAuth 2.0 和 OpenID Connect 流程
ivangdavila
安全合规
clawhub
v1.0.0 1 版本 99816.4 Key: 无需
#latest
概述
Flow Selection
- Authorization Code + PKCE: use for all clients—web apps, mobile, SPAs
- Client Credentials: service-to-service only—no user context
- Implicit flow: deprecated—don't use; was for SPAs before PKCE existed
- Device Code: for devices without browsers (TVs, CLIs)—user authorizes on separate device
PKCE (Proof Key for Code Exchange)
- Required for public clients (SPAs, mobile), recommended for all
- Generate
code_verifier: 43-128 char random string, stored client-side - Send
code_challenge: SHA256 hash of verifier, sent with auth request - Token exchange includes
code_verifier—server verifies against stored challenge - Prevents authorization code interception—attacker can't use stolen code without verifier
State Parameter
- Always include
state in authorization request—prevents CSRF attacks - Generate random, unguessable value; store in session before redirect
- Verify returned
state matches stored value before processing callback - Can also encode return URL or other context (encrypted or signed)
Redirect URI Security
- Register exact redirect URIs—no wildcards, no open redirects
- Validate redirect_uri on both authorize and token endpoints
- Use HTTPS always—except localhost for development
- Path matching is exact—
/callback ≠ /callback/
Tokens
- Access token: short-lived (minutes to hour), used for API access
- Refresh token: longer-lived, used only at token endpoint for new access tokens
- ID token (OIDC): JWT with user identity claims—don't use for API authorization
- Don't send refresh tokens to resource servers—only to authorization server
Scopes
- Request minimum scopes needed—users trust granular requests more
- Scope format varies:
openid profile email (OIDC), repo:read (GitHub-style) - Server may grant fewer scopes than requested—check token response
openid scope required for OIDC—triggers ID token issuance
OpenID Connect
- OIDC = OAuth 2.0 + identity layer—adds ID token and UserInfo endpoint
- ID token is JWT with
sub, iss, aud, exp + profile claims - Verify ID token signature before trusting claims
nonce parameter prevents replay attacks—include in auth request, verify in ID token
Security Checklist
- HTTPS everywhere—tokens in URLs must be protected in transit
- Validate
iss and aud in tokens—prevents token confusion across services - Bind authorization code to client—code usable only by requesting client
- Short authorization code lifetime (10 min max)—single use
- Implement token revocation for logout/security events
Common Mistakes
- Using access token as identity proof—use ID token for authentication
- Storing tokens in localStorage—vulnerable to XSS; prefer httpOnly cookies or memory
- Not validating redirect_uri—allows open redirect attacks
- Accepting tokens from URL fragment in backend—fragment never reaches server
- Long-lived access tokens—use short access + refresh pattern
Token Endpoints
/authorize: user-facing, returns code via redirect/token: backend-to-backend, exchanges code for tokens; requires client auth for confidential clients/userinfo (OIDC): returns user profile claims; requires access token/revoke: invalidates tokens; accepts access or refresh token
Client Types
- Confidential: can store secrets (backend apps)—uses client_secret
- Public: cannot store secrets (SPAs, mobile)—uses PKCE only
- Never embed client_secret in mobile apps or SPAs—it will be extracted
版本历史
共 1 个版本
-
v1.0.0
当前
2026-03-29 00:26 安全 安全
安全检测
腾讯云安全 (Sanbu)
安全,无风险
查看报告
🔗 相关推荐
ai-intelligence
ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,352
📥 317,835
security-compliance
spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,212
📥 266,272
productivity
ivangdavila
创建、检查和编辑 Microsoft Word 文档及 DOCX 文件,支持样式、编号、修订记录、表格、分节符及兼容性检查等功能。
★ 438
📥 147,299