# 简单

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

_ 简单 _ 认证包括向 LDAP 服务器发送客户端（用户）的完全限定 DN 和客户端的明文密码（参见 [RFC 2251](http://www.ietf.org/rfc/rfc2251.txt) 和 [RFC 2829](http://www.ietf.org/rfc/rfc2829.txt) ）。此机制存在安全问题，因为可以从网络读取密码。为避免以这种方式暴露密码，您可以在加密通道（如 SSL）中使用简单身份验证机制，前提是 LDAP 服务器支持此功能。

LDAP v2 和 v3 都支持简单身份验证。

要使用简单身份验证机制，必须按如下方式设置三个身份验证环境属性。

[`Context.SECURITY_AUTHENTICATION`](https://docs.oracle.com/javase/8/docs/api/javax/naming/Context.html#SECURITY_AUTHENTICATION).

Set to `"simple"`.

[`Context.SECURITY_PRINCIPAL`](https://docs.oracle.com/javase/8/docs/api/javax/naming/Context.html#SECURITY_PRINCIPAL).

Set to the fully qualified DN of the entity that is being authenticated (e.g., `"cn=S. User, ou=NewHires, o=JNDITutorial"`). It is of type `java.lang.String`.

[`Context.SECURITY_CREDENTIALS`](https://docs.oracle.com/javase/8/docs/api/javax/naming/Context.html#SECURITY_CREDENTIALS).

Set to the password of the principal (e.g., `"mysecret"`). It is of type `java.lang.String`, `char` array (`char[]`), or `byte` array (`byte[]`). If the password is a `java.lang.String` or a `char` array, then it is encoded using UTF-8 for the LDAP v3 and using ISO-Latin-1 for the LDAP v2 for transmission to the server. If the password is a `byte[]`, then it is transmitted as is to the server.

请参阅本节前面的[示例](authentication.html#SIMPLE)，该示例说明了如何使用简单身份验证。

* * *

**注意：**如果你提供一个空字符串，空`字节` / `char` 数组，或 `null` 到 `Context.SECURITY_CREDENTIALS` 环境属性，那么认证机制将是`“无”`。这是因为 LDAP 要求密码对于简单身份验证是非空的。如果未提供密码，协议会自动将身份验证转换为`“无”`。