# 认证机制

> 原文： [https://docs.oracle.com/javase/tutorial/jndi/ldap/auth_mechs.html](https://docs.oracle.com/javase/tutorial/jndi/ldap/auth_mechs.html)

不同版本的 LDAP 支持不同类型的身份验证。 LDAP v2 定义了三种类型的身份验证：匿名，简单（明文密码）和 Kerberos v4。

LDAP v3 支持匿名，简单和 SASL 身份验证。 SASL 是简单认证和安全层（ [RFC 2222](http://www.ietf.org/rfc/rfc2222.txt) ）。它规定了一种质询 - 响应协议，其中在客户端和服务器之间交换数据，以便进行认证和建立安全层，在该安全层上进行后续通信。通过使用 SASL，LDAP 可以支持 LDAP 客户端和服务器商定的任何类型的身份验证。

本课包含如何使用[匿名](anonymous.html)，[简单](simple.html)和 [SASL](sasl.html) 身份验证进行身份验证的说明。

## 指定身份验证机制

使用 [`Context.SECURITY_AUTHENTICATION`](https://docs.oracle.com/javase/8/docs/api/javax/naming/Context.html#SECURITY_AUTHENTICATION)环境属性指定认证机制。该属性可能具有以下值之一。

| 物业名称 | 适当的价值 |
| --- | --- |
| _sasl_mech_ | 以空格分隔的 SASL 机制名称列表。使用列出的 SASL 机制之一（例如，`“CRAM-MD5”`表示使用 [RFC 2195](http://www.ietf.org/rfc/rfc2195.txt) 中描述的 CRAM-MD5 SASL 机制）。 |
| `无` | 不使用身份验证（匿名） |
| `简单` | 使用弱身份验证（明文密码） |

## 默认机制

如果客户端未指定任何身份验证环境属性，则默认身份验证机制为`“none”`。然后，客户端将被视为匿名客户端。

如果客户端指定认证信息而未明确指定 `Context.SECURITY_AUTHENTICATION` 属性，则默认认证机制为`“simple”`。