48 lines
2.1 KiB
Plaintext
48 lines
2.1 KiB
Plaintext
SERVICE_NAME=iam-service
|
||
LOG_LEVEL=info
|
||
LOG_TO_FILE=false
|
||
LOG_DIR=./log
|
||
LOG_FILE_NAME=iam.log
|
||
|
||
DATABASE_URL=postgres://iam_service_user:iam_service_password@localhost:5432/iam_service_db
|
||
REDIS_URL=redis://localhost:6379/0
|
||
|
||
# JWT_SECRET:服务端私密随机串(不是 RS256 私钥)
|
||
# 作用:作为 refresh token 指纹(HMAC)pepper,用于 refresh_tokens.token_fingerprint 计算与校验。
|
||
# 要求:生产环境必须使用高强度随机值,定期轮换会导致现有 refresh token 全部失效(通常是可接受的)。
|
||
# openssl rand -base64 64
|
||
JWT_SECRET=please_replace_with_a_secure_random_string
|
||
|
||
# AUTH_CODE_JWT_SECRET:授权码(code)JWT 的对称签名密钥(HS256)。
|
||
# 作用:iam-service 用它签发/验签 5 分钟一次性 code(/auth/login-code 与 /auth/code2token)。
|
||
# 要求:生产环境必须使用高强度随机值并妥善保管。
|
||
AUTH_CODE_JWT_SECRET=please_replace_with_a_secure_random_string
|
||
|
||
# CLIENT_SECRET_PREV_TTL_DAYS:clientSecret 轮换后的旧密钥宽限期(天)。
|
||
# 作用:允许业务方平滑切换新密钥,宽限期内新旧 clientSecret 都可用于 /auth/code2token。
|
||
CLIENT_SECRET_PREV_TTL_DAYS=7
|
||
|
||
# JWT_KEY_ID:RS256 key id(kid),会出现在 JWT header 与 JWKS 中,用于多 Key 管理与轮换。
|
||
JWT_KEY_ID=default
|
||
|
||
# JWT_PRIVATE_KEY_PEM / JWT_PUBLIC_KEY_PEM:RS256 私钥/公钥(PEM 文本)。
|
||
# 作用:签发 access token(私钥)与提供 JWKS(公钥);业务服务通常使用 JWKS 验签。
|
||
JWT_PRIVATE_KEY_PEM=
|
||
JWT_PUBLIC_KEY_PEM=
|
||
|
||
# JWT_JWKS_EXTRA_KEYS_JSON:可选,额外 JWKS keys(JSON 数组),用于灰度轮换/多公钥共存。
|
||
JWT_JWKS_EXTRA_KEYS_JSON=
|
||
PORT=3000
|
||
|
||
# Optional: Scalar/OpenAPI example injection
|
||
IAM_DOCS_DEFAULT_TENANT_ID=
|
||
IAM_DOCS_DEFAULT_TOKEN=
|
||
IAM_DOCS_REQUIRE_TENANT_ID=0
|
||
IAM_DOCS_REQUIRE_TOKEN=0
|
||
|
||
# Optional: second-factor token for sensitive operations (tenant create, app delete)
|
||
IAM_SENSITIVE_ACTION_TOKEN=
|
||
|
||
# Optional: enable second-factor token for password reset (admin path uses this token too)
|
||
# (same IAM_SENSITIVE_ACTION_TOKEN header: X-Sensitive-Token)
|