允许 verify_and_map 从任何证书属性中导出身份,而不仅仅是电子邮件/SAN/DN

作者: edjeffreys创建于 2026年7月17日更新于 2026年9月12日
标签staleproposal
  • 拟议变动

核实 和 地图'目前从固定的优先地位获得客户的身份—— 电子邮件地址,然后是 SAN, 然后是区分名 - 并匹配结果 字面上与配置的用户相对。 提议制作“验证图” 接受模板字符串(去text/template')作为`real'的替代:

校验 和 映射 : "{}先... 组织单位}{}"

模板根据对等证书的主题和 SAN 字段执行 (CN、O、OU、L、ST、C、序列号、DNS名称、电子邮件、IP、URI),加上两个 多值属性的助手: " has " (会员资格测试)和 " first " (第一数值). 领域可以与语言本身的和'/或'/`eq'结合。 从多个属性中获取身份,例如:

校验 并 映射 : “\ if and (有“ infra” . Organization Unit ) (有“ GB”. country )\ \ infra-gb\ \ end\ ”

这是完全向后相容的:核实-和 地图:真实'/虚假'保留它们 准确的当前行为不变,模板形式是选入的,模板 在配置负载时拒绝引用一个不存在的字段而不是失败 静静地连接

使用大小写

今天,每个不同的客户证书都必须单独列出为 配置的用户,即使一组证书应该共享 同样的访问——例如,发给“基础设施”OU的任何证书,或 具体的团队/服务级别。 无法通过一个属性来授权访问 而不是通过证书的确切身份,而不是 发放许多个人 mTLS 证书的组织比例表(每 服务或个人),但应共享一组许可。

能够映射 OU( 或属性组合) 操作员 一次授权"任何有这个OU证书的人",而不是保留一个 每次证书需要更新的每证书用户列表 为该组内的个人签发、轮换或撤销。

捐款

是的,我有一个第8392号捐款草案

内容来源: nats-io/nats-server