主题
sign-kms · 术语表
仅保留源码 / README.md 中实证可定位的术语。
| 术语 | 含义 | 出处 |
|---|---|---|
| access token | sign-kms 签发的 JWT。id = "at_" + 12 字符随机(internal/biz/kms_manage_biz.go:254);DB(AccessToken 表)为权威源(internal/data/ent/schema/access_token.go:37-39) | — |
| BCCSP | Fabric 客户端通过 libkms_pkcs11.so 接入;具体集成行为见 sign-ca / fabric-ca | README.md:5-16 |
DEFAULT_ADMIN_PWD | 首次启动管理员密码环境变量 | internal/data/init_user.go |
DefaultExpiry / DefaultTokenExpiry / MaxTokenExpiry | 管理 cookie / KMS access token 过期常量,分别为 24h、365d、730d | pkg/auth/config.go:55, 58, 60 |
DefaultPoolSize / MaxPoolSize / HealthCheckInterval | SessionPool 常量:5、30、30 秒 | pkg/pkcs11/session_pool.go:18-20 |
| Ent | Go ORM 库,本项目用于 schema 定义与 DB 客户端代码生成 | go.mod(entgo.io/ent) |
HSMProvider | conf.proto 中的 HSM 后端定义:id/name/type/library/enabled/pool_size | internal/conf/conf.proto:39-49 |
| JTI | JWT 标准字段,本项目作 AccessToken.id(DB 主键) | pkg/auth/grpc_auth.go:62-74、access_token.go:25 |
| Keypair.id | hex(sha256(0x04 ‖ X ‖ Y)),EC P-256 公钥未压缩点的 SHA-256。同时作为 HSM CKA_LABEL / CKA_ID | internal/data/ent/schema/keypair.go:18-23、internal/biz/kms_biz.go:226-232 |
| Kratos | Go 微服务框架,本项目用于 gRPC + HTTP lifecycle | go.mod(github.com/go-kratos/kratos/v2) |
KMS_AUTH_SECRET | JWT 签名密钥,未设置时 GetAuthSecret() panic | pkg/auth/config.go:38, 44 |
libkms_pkcs11.so | C 实现的 PKCS#11 库,源码在 p11client/kms_so.c;环境变量 SIGN_KMS_ENDPOINT(:202)、KMS_SO_DEBUG(:39) | p11client/ |
| Namespace | 在 sign-kms DB 中代表一个 HSM partition,1:1 绑定 token_label 与 provider_id | internal/data/ent/schema/namespace.go:18-51 |
NoAuthPaths | HTTP 鉴权白名单。仅含 /api/v1/signin | pkg/auth/config.go:11 |
| PartitionID | JWT claims 中的字段,等于 Namespace.TokenLabel,决定签名落到哪个 HSM partition | pkg/auth/claims.go:11-22、internal/biz/kms_manage_biz.go:270-279 |
| PoolStatus | HealthCheck 返回数据。字段:TokenLabel、SlotID、Reachable、AvailableSessions、TotalSessions | pkg/pkcs11/session_pool.go:44-50 |
ProviderInstance | 单个 HSM 后端运行时对象(ID、Name、Type、LibPath、Enabled、Ready、PoolSize、ctx、pools、mu) | pkg/pkcs11/registry.go:14-26 |
ProviderRegistry | 多 provider 管理对象。至少 1 个可用才能启动 | pkg/pkcs11/registry.go:60-92 |
RoleReadonly / RoleReadWrite / RoleAdmin | 三角色权限映射 | pkg/auth/claims.go:26-28, 42-46 |
roleOps | role → 允许 operation 集合的 map | pkg/auth/claims.go:42-46 |
| session 池 | per-partition 预创建 PKCS#11 会话池;大小 5–30 可配 | pkg/pkcs11/session_pool.go |
SIGN_KMS_ENDPOINT | libkms_pkcs11.so 连接 KMS gRPC 的地址 | p11client/kms_so.c:202 |
| Signet | Sign 内部 OpenTelemetry SDK,本项目集成在 cmd/kms/main.go:96-102 与中间件链中 | cmd/kms/main.go:96-102 |
TokenStore.GetByJTI | gRPC auth middleware 查 token DB 状态的接口(pkg/auth/grpc_auth.go:30-32);返回 TokenView{Disabled, Keys} | pkg/auth/grpc_auth.go:19-32, 62-74 |
| Wire | Google 编译期 DI 库,make wire 生成 wire_gen.go | Makefile:51、cmd/kms/wire.go |