这份文件是对身份模块的高级别概述,对维护者,贡献者,以及希望了解其架构和设计或对此作出贡献的开发者有帮助.
这个模块是 长老会 项目。 它本身没有做什么。 打算与其他模块相结合,以形成一个完整的解决方案。 有关该项目的更多信息,请访问 https://github.com/fononster/fononster (英语)。 。 。 .
关于身份
长老会身份模块为长老会生态系统内部的安全用户管理、认证和授权提供了基石。 其设计具有灵活性和可扩展性,以适应长老会各个项目的不同和不断变化的需要.
关键特性
该模块提供全面的身份管理功能,包括创建,阅读,更新,并删除用户和工作空间实体. 用户可以代表个人账户或服务账户. 工作空间组织用户并精简许可管理;用户可以属于多个工作空间.
- 认证 通过JSON Web Tokens(JWTs)——用户名/密码,多功能认证(MFA),OAuth2和正文交换.
- 授权 通过角色-基于访问控制(RBAC),具有预先定义和自定义的角色.
- 资源所有权 键
accessKeyId(单位:千美元)US…用户,WO…工作空间.
独立运行
fonoster-identity (或 fonoster/identity 图像)为身份服务,没有
电话堆。 写着 identity.json (或 .jsonc编号 :.yaml),通过
--config <path>, (中文(简体) ), /opt/fonoster/identity.json 或者说 ./config/identity.json,以及
不读取环境变量。 字段位于文件的根 :
{
"database": { "url": "postgresql://postgres:postgres@postgres:5432/fnidentity" },
"encryptionKey": "change-me",
"issuer": "https://id.acme.com",
"keys": {
"privateKeyPath": "/opt/fonoster/keys/private.pem",
"publicKeyPath": "/opt/fonoster/keys/public.pem"
},
"smtp": { "host": "smtp.acme.com", "port": 587, "sender": "[email protected]", "auth": { "user": "ops", "pass": "secret" } },
"auth": { "methods": ["password"], "signup": "invite" },
"defaultUser": { "name": "Admin", "email": "[email protected]", "password": "changeme" }
}
npm run db:deploy -- --config <path> 应用使用同一文件的迁移.
每把钥匙在 文件/配置。 。 。 .
规格
本单元的规范规格——实体和资源所有权、非洲区域局模式、
id/access/refresh 令牌模型,令牌交换,RS256通过 GetPublicKey,与安全
实践——生活在OpenSpec,是真理的来源:
➡️ openspec/specs/identity/spec.md
这一能力的拟议变动情况如下: openspec/changes/。 。 。 .