Skip to content

cornus token

为使用 bearer auth 的 cornus 服务器签发已签名 JWT。

概要

sh
cornus token issue [flags]

说明

cornus 服务器仅负责验证;cornus token issue 是进程内签发器,用于签发它所验证的 token。使用与服务器验证端相同的材料签名: HS256 secret (两端的 CORNUS_JWT_HS256_SECRET) ,或其公钥为服务器 CORNUS_JWT_PUBLIC_KEY 的 private key。签发的 token 会打印到 stdout。

服务器如何验证 token 以及 claim 如何映射为访问权限,请参见安全与认证

cornus token issue

签发一个已签名 JWT。

FlagEnv var默认值说明
--subSubject (sub) claim,即调用方身份。
--scopeapiScope: api (完整权限) 或 caretaker (仅 caretaker attach 端点) 。token 必须指定其中之一: 空 scope 不授予任何权限,且在签发时即被拒绝。
--ttl1hToken 有效期 (例如 1h720h) 。
--issIssuer (iss) claim;设置服务器 CORNUS_JWT_ISSUER 时必须与之匹配。
--audAudience (aud) claim;设置服务器 CORNUS_JWT_AUDIENCE 时必须与之匹配。
--kidKey ID header,使 JWKS 验证器 (CORNUS_JWT_JWKS_FILE/_URL) 可选择匹配密钥。
--hs256-secretCORNUS_JWT_HS256_SECRETHMAC secret (对称) ;服务器使用同一 secret 验证。至少 32 字节。
--private-keyPEM private key 文件 (RSA 使用 RS256,ECDSA 使用 ES256) ;服务器用匹配的 public key 验证。

示例

使用对称 secret 签发 HS256 token:

sh
export CORNUS_JWT_HS256_SECRET='a-secret-at-least-32-bytes-long!!'
cornus token issue --sub alice --ttl 24h

使用 private key 签发非对称 token:

sh
cornus token issue --sub ci --scope api --private-key ./signing-key.pem --kid key-1

签发 caretaker scope 的 token:

sh
cornus token issue --sub sidecar --scope caretaker --aud cornus

Released under the Apache-2.0 License.