Auth
约 2 分钟阅读
场景
- 资源访问
- 有 Owner 对象
- 通常通过 Agent/Browser 方式
- 客户端不受信
- 交换获取 Token
- Token 会失效
- 服务访问 - 后端-后端
- 客户端受信
- API Key
- Service Account
- Basic Auth
- API Auth
- Service Auth
- Service Account - SA
- API Key
- HTTP Auth HTTP Authentication Schemes
- Basic RFC7617
- Bearer RFC6750
- PAT - Persional Access Token
- Bearer - Opaque 的内容
- JWT 对 Token 内容做定义
- ACL
- Subject, Object, Action, Condition, Effect, Priority
- 参考
API Key
- Swagger API Key
?api_key=$KEYX-API-Key: $KEYCookie: X-API-KEY=KEY
- key-auth
X-API-KEY:apikey:?apikey=
OpenAI
GET https://api.openai.com/v1/models
Authorization: Bearer $OPENAI_API_KEY
OpenAI-Organization: $ORG_ID- ORG_ID 有默认
org-ID
- Secret Key
sk-KEY
Service Account
- client_id + client_secret
- grant=client_credential -> AccessToken
- 可以获取用户相关的 AccessToken
Principal vs Subject
- Subject - 访问主体 - 请求访问对象或者执行操作的发起方
- 通用概念 - 更抽象
- 主动发起
- 当前状态
- 使用场景: ACL, 临时授权, 主体隔离, 代理访问, 会话管理, 审计跟踪
- 常见主体: User, Department, Customer, Process, Group, Service Account, System, Device
- Principal - 明确身份
- 是一个验证过的身份,通常是一个指定的用户 - 更具体
- 被动绑定
- 持久标识
- 使用场景: 认证, 授权, 跟踪审计, 身份隔离, 权限委托, 资源归属, 责任追究, 长会话
ACL
- ACL
- abilities
// cancancan- stalniy/caslGitHubstalniy/caslstalniy/casl · MIT, TS, JS · core 6KB · CASL - CanCanAble Simple Language · AuthZ · 实现 ABAC、RBAC · Ruby CanCan, RoR CanCanCan笔记:CASL
- MIT, JS, TS
- CanCanCommunity/cancancanGitHubCanCanCommunity/cancancan
- MIT, Ruby
- casbinGitHubcasbin/casbin
- Apache-2.0, Go
- r - request - sub, obj, act
- p - policy - sub, obj, act
- e - effect - allow, deny
- m - matcher
- casbin.org/editor
Permission
关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- Design ERP笔记 · Design Auth
Design API · Design Auth · Design Schema · Design CRM · Design Service · 分层 - 关注点分离 - 避免 阻抗失配 · 线性销售漏斗 · 潜在客户 · 机会 · 成交 · AIDA模型
参考资料
GitHub3 条
- CanCanCommunity/cancancangithub.com/CanCanCommunity/cancancan
- casbin/casbingithub.com/casbin/casbin
- stalniy/caslgithub.com/stalniy/casl
其他外链5 条
- apisix.apache.org/docs/apisix/plugins/key-authapisix.apache.org/docs/apisix/plugins/key-auth
- casbin.org/editorcasbin.org/editor
- swagger.io/docs/specification/authenticationswagger.io/docs/specification/authentication
- swagger.io/docs/specification/authentication/api-keysswagger.io/docs/specification/authentication/api-keys
- www.iana.org/assignments/http-authschemes/http-authschemes.xhtmlwww.iana.org/assignments/http-authschemes/http-authschemes.xhtml