82
大模型应用中的用户认证和权限控制如何设计?API Key安全如何保证?
编程能力与工程实践中等
📋 面试问题
大模型应用中的用户认证和权限控制如何设计?API Key安全如何保证?
✅ 期望回答
用户认证:
角色 权限
基础用户 每日100次调用,基础模型
高级用户 每日500次,全模型
开发者 API访问,自定义配置
管理员 全部权限+管理面板
API Key安全:
- JWT(常用)+ OAuth 2.0(第三方登录)+ SSO(企业)
- 短期Token(1小时过期)+ Refresh Token续期
- 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