认证用户映射

认证用户映射定义了从认证系统中的用户到openLooKeng用户的映射规则。认证用户映射对于具有例如alice@exampleCN=Alice Smith, OU=Finance, O=Acme, C=US等复杂用户名的Kerberos或LDAP认证特别重要。

可以使用简单的正则表达式模式匹配配置用户映射,也可以在单独的配置文件中配置更复杂的映射规则。

模式映射规则

模式映射规则将认证用户映射到正则表达式中的第一个匹配组。如果正则表达式与认证用户不匹配,则拒绝认证。

每个身份认证系统都具有单独的用户映射模式的属性,以在启用多个身份认证系统时允许不同的映射:

认证方式属性
Username and Password (LDAP)http-server.authentication.password.user-mapping.pattern
Kerberoshttp-server.authentication.krb5.user-mapping.pattern
Certificatehttp-server.authentication.certificate.user-mapping.pattern
Json Web Tokenhttp-server.authentication.jwt.user-mapping.pattern

文件映射规则

文件映射规则允许认证用户配置更复杂的映射。这些映射规则是从配置属性中定义的JSON文件加载的,基于从上到下第一个匹配的规则进行映射,如果没有规则匹配,则认证被拒绝。每个规则由以下字段组成:

字段名称默认值是否必填描述
pattern(none)用于认证用户匹配的正则表达式
user$1替换模式匹配的字符串
allowtrue布尔值,指示是否允许认证

如以下示例所示,除了test用户拒绝认证外,会将alice@example.com用户映射到alice,并将bob@uk.example.com之类的用户映射到bob_uk

  1. {
  2. "rules": [
  3. {
  4. "pattern": "test@example\\.com",
  5. "allow": false
  6. },
  7. {
  8. "pattern": "(.+)@example\\.com"
  9. },
  10. {
  11. "pattern": "(?<user>.+)@(?<region>.+)\\.example\\.com",
  12. "user": "${user}_${region}"
  13. }
  14. ]
  15. }

每个身份认证系统都有一个用于用户映射文件的单独属性,以在启用多个身份认证系统时允许不同的映射:

认证方式属性
Username and Password (LDAP)http-server.authentication.password.user-mapping.file
Kerberoshttp-server.authentication.krb5.user-mapping.file
Certificatehttp-server.authentication.certificate.user-mapping.file
Json Web Tokenhttp-server.authentication.jwt.user-mapping.file