82

大模型应用中的用户认证和权限控制如何设计?API Key安全如何保证?

编程能力与工程实践中等

📋 面试问题

大模型应用中的用户认证和权限控制如何设计?API Key安全如何保证?

✅ 期望回答

用户认证:
  • JWT(常用)+ OAuth 2.0(第三方登录)+ SSO(企业)
  • 短期Token(1小时过期)+ Refresh Token续期

权限控制(RBAC + ABAC): 角色权限 基础用户每日100次调用,基础模型 高级用户每日500次,全模型 开发者API访问,自定义配置 管理员全部权限+管理面板 API Key安全:
  • Key生成:crypto.randomUUID() 或加密哈希
  • 加密存储:SHA256 Hash+Salt存储,不可逆存储
  • 传输安全:HTTPS传输,禁止key出现在URL中
  • Rate Limiting:每个Key独立限流(token-bucket算法)
  • Key轮换:周期性轮换+废弃通知

架构示例:
from fastapi import Depends, HTTPException

from fastapi.security import HTTPBearer

security = HTTPBearer()

async def verify_api_key(credentials = Depends(security)):

key_hash = hashlib.sha256(credentials.credentials.encode()).hexdigest()

key_info = await db.get_api_key(key_hash)

if not key_info or key_info.expired:

raise HTTPException(status_code=403, detail='Invalid API Key')

if key_info.rate_limited():

raise HTTPException(status_code=429, detail='Rate limit exceeded')

return key_info

#认证#权限控制#API Key