身份验证记录优先级

每个身份验证记录都分配了优先级。如果用户获授多个身份验证记录,Vertica 会尝试使用优先级最高的身份验证记录对用户进行身份验证,并在身份验证失败时拒绝该用户。

如果启用身份验证 fallthrough(默认情况下禁用),当所选身份验证记录失败时,Vertica 将尝试使用下一个优先级最高的记录对用户进行身份验证。有关 fallthrough 身份验证的详细信息,请参阅 Fallthrough 身份验证

确定身份验证优先级

以下因素会影响身份验证记录的优先级,如 CLIENT_AUTH 系统表中所示:

=> SELECT auth_name, auth_method, auth_priority, method_priority, address_priority FROM client_auth;
   auth_name   | auth_method | auth_priority | method_priority | address_priority
---------------+-------------+---------------+-----------------+------------------
 ldap_auth     | LDAP        |             5 |               5 |               96
 hash_auth     | HASH        |             5 |               2 |              126
 tls_auth      | TLS         |             0 |               5 |               96
 oauth_auth    | OAUTH       |             0 |               5 |               96
 gss_auth      | GSS         |             0 |               5 |               96
 trust_auth    | TRUST       |             0 |               0 |               96
 reject_auth   | REJECT      |             0 |              10 |               96
(7 rows)

优先级按层级划分并按重要性顺序列出;如果在某个优先级层级上的优先级相同,Vertica 会检查下一个优先级层级。例如,如果用户同时拥有 ldaphash 身份验证记录,且 auth_priority 均为 5,Vertica 将尝试使用 ldap 身份验证记录,因为其 method_priority 值更大:

  1. auth_priority:使用 ALTER AUTHENTICATION 显式设置的优先级(默认值:0)。

  2. method_priority:特定于身份验证方法的优先级。这些优先级如下所示:

    • trust:0

    • hash:2

    • ldap:5

    • tls:5

    • oauth:5

    • gss:5

    • reject:10

  3. address_priorityHOST [ TLS | NO TLS ] 'host-ip-address' 中指定的 IP 地址的优先级。此优先级由地址的网络掩码大小决定;0 越少表示越具体,因此优先级越高。LOCAL 具有最低的优先级:0。

设置身份验证优先级

要设置身份验证优先级:

=> ALTER AUTHENTICATION authentication_name PRIORITY value;

另请参阅