从Keystone的配置文件中,我们可见,Token的提供者目前支持四种。 Token Provider:UUID, PKI, PKIZ, or Fernet
结合源码及官方文档,我们用一个表格来阐述一下它们之间的差异。
Provider方式 |
生成方式|长度|加密方式 |
优点 |
缺点 |
UUID | uuid.uuid4().hex,32字符,没有加密方式。 |
生成的Token,长度较短,使用方便。url使用方便,回收的方式,就是从后端删除即可,实现逻辑较为清晰。 | 需要持久化后端存储,每次访问需要keystone相关服务进行认证。 |
PKI | cms_sign_data(),使用base64 encoded进行编码(替换不安全的字符),粗略统计过长度4602字符,使用 Cryptographic Message Syntax (CMS)进行加密(默认的方式sha256)。 | 使用证书及私钥生成,可以线下验证(不需要走keystone认证服务), | 长度负载重,不推荐用于生产部署 :keystone-manage pki_setup</ |