DN 的英文名称是(distinguished name),直接翻译过来就是专有名称。
简单的就可以理解为一个路径就对了。
这个路径可以指向 OU ,也可以指到 CN。
其中 DN 有三个属性,分别是CN,OU,DC。
- DC (Domain Component)
- CN (Common Name)
- OU (Organizational Unit)
- O (Organization Name)
O 是可选项,有时候你不一定能够看得到。
下面是 X.500 的属性列表:
String X.500 AttributeType
代码语言:javascript复制CN commonName
L localityName
ST stateOrProvinceName
O organizationName
OU organizationalUnitName
C countryName
STREET streetAddress
DC domainComponent
UID userid
可以理解成 DC 是最高的,叫做域名,基本上所有的 ldap 服务都会至少有一个 DC。
在 DC 下一级就会有一个 OU,OU 可以理解为一个组织单元,我们可以有多个组织单元。你可以在组织单元中组织用户组,也可以在组织单元中组织用户,你还可以在组织单元中组织组织单元。
在 OU 下面就是 CN 了,可以理解是 CN 就是一个具体的实例了,比如说一个具体的用户。
所以要定位一个实例,那么路径就是 CN - OU - DC
你可能会有多个 OU,多个 DC,但是最后都会定位到最高一级的 DC
这长串字符串放到一起,就是 DN 了。
组织顺序
这个组织顺序是逆序的。
举例来说,下面的 DN:
代码语言:javascript复制CN=cwikius,ou=Users,dc=jumpcloud,dc=com
实际的查找顺序是
- DC=COM
- DC=jumpcloud
- OU=Users
- CN=cwikius
最高一级的路径在最后面,如果理解为文件系统的查找路径的话就是:
代码语言:javascript复制COM/jumpcloud/Users/cwikius
最后的 CN=cwikius 可以理解为一个具体的文件,只是这个文件没有后缀罢了。
如上图类似的一个结构。
https://www.ossez.com/t/ldap-dn-cn-dc-ou/522