导航:首页 > IDC知识 > ADLDAP服务器

ADLDAP服务器

发布时间:2021-01-27 13:44:17

1、AD是LDAP的一种产品,那安装了AD之后,就可以实现LDAP认证了么?还是需要安装LDAP服务器?如何安装?

已经可以实现LDAP认证了

2、认证系统,如活动目录AD、LDAP、Radius这些,究竟是做什么用的。谢谢你。

AD、LDAP提供目录服务,即类似于企业、人员黄页的东西,用户和组织的信息都被存放在上面,查找起来十分快捷,也可以理解成一种特殊的数据库。
RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、 CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。用户接入NAS,NAS向RADIUS服务器使用Access-Require数据包提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出计费请求Account- Require,RADIUS服务器响应Account-Accept,对用户的计费开始,同时用户可以进行自己的相关操作。

3、简述域控制器,独立服务器,成员服务器的区别与关系

域控也叫dc他主要负责整个域树或域林的接入管理,成员服务器在域中才是真正提供服务的。至于独立服务器,不包括在域中,是以外的服务器,也就不需要通过dc验证。

4、ldap c api能和ad server连接吗

介绍
这篇文档定义了 LDAP API (C语言版)。它使用方便,功能强大,大致内容有以下几个方面:
简单浏览模型
应用程序怎样使用API去获取LDAP信息
详细介绍API 调用函数
举例使用API 及部分样本代码
下面我们分别介绍。
简单浏览LDAP模型
LDAP 是以client-server 模型为基础的,在此模型中,客户机可以建立与LDAP服务器的连接,从而发送请求,接收应答。
LDAP的信息模型是基于实体(entry)的,每个实体都代表着某种对象类型的特例。比如组织机构、用户、网络、计算机等。每一种实体又包含有许多属性,每种属性又由它的实体所代表的对象的类型决定。
实体用树型结构组织再一起,通常根据政治上的,地理学的,和组织的关系进行分类。每一个实体都有唯一的名字通过它的RDN与它的同属实体相连,至于RDN及DN的命名和使用在《毕业设计报告(一)》中已经介绍过了,这里不在详述。
三、LDAP API使用浏览
一个应用使用LDAP API 的一般步骤:
建立与LDAP server的连接。如使用函数调用 ldap_open()等。
核对身份 ldap server 和(或)X.500 DSA,如可以使用ldap_bind().
执行某些LDAP操作,返回某些结果。
最后断开连接。
API的操作可以被同步执行,也可以异步执行。同步的函数调用以_s结尾。例如:同步查找操作可以通过调用ldap_search_s()来完成。异步调用将返回一个result,用来表示操作结果(如,常量LDAP_SUCCESS或者其它错误代码)。异步调用还将返回初始化操作的消息id。异步操作可以通过调用ldap_abandon()而抛弃。
结果和错误信息被作为一个不透明的结构LDAPMessage 返回,函数调用的目的就是分析这一结构,进一步研究被返回的实体和属性等。有时也负责解释这些属性。下面我们将详细介绍API函数调用。
四、 LDAP API函数调用
这里所有的调用都含有一个“连接手柄”(connection handle)它指向关于每个连接的信息的LDAP结构。许多调用的返回结果都是LDAPMessage结构形式。下面我们会描绘出这些必要的结构。
1. 建立连接
ldap_open() 建立一个同 LDAP server的连接。有关定义如下:
LDAP *ldap_open( char *hostname, int portno );

参数说明:
hostname 空格分开的主机名字表或点分开的LDAP server 可以连接到的主机的IP地址串。主机试着依次连接表中列出的每个名字直到某个连接成功时才停止。
portno 欲连接的TCP端口号。如果省略则为 LDAP_PORT.
如果连接不能建立,则返回值为NULL。
2. Authenticating to the directory
ldap_bind() 和它的同类派生常用来识别目录:
int ldap_bind( LDAP *ld, char *dn, char *cred, int method );
int ldap_bind_s( LDAP *ld, char *dn, char *cred, int method );
int ldap_simple_bind( LDAP *ld, char *dn, char *passwd );
int ldap_simple_bind_s( LDAP *ld, char *dn, char *passwd );
int ldap_kerberos_bind( LDAP *ld, char *dn );
int ldap_kerberos_bind_s( LDAP *ld, char *dn );
参数说明:
ld 连接手柄;
dn 被bind的实体名;
cred 识别证书;
method LDAP_AUTH_SIMPLE, LDAP_AUTH_KRBV41, 或
LDAP_AUTH_KRBV42, 用以表明要使用的识别方法。
passwd 为 ldap_simple_bind()而准备的口令,并与实体中的
userPassword 属性比较。
3. Closing the connection
ldap_unbind() 用来解开同目录的联系并断开建立的连接。
int ldap_unbind( LDAP *ld );

参数说明:
ld 连接手柄;
通过调用ldap_unbind() ,则ld 连接手柄就无效了。
4. Searching
ldap_search() 等用来查找 LDAP目录,返回与实体匹配的属性。
struct timeval {
long tv_sec;
long tv_usec;
};
int ldap_search(
LDAP *ld,
char *base,
int scope,
char *filter,
char *attrs[],
int attrsonly
);
int ldap_search_s(
LDAP *ld,
char *base,

int scope,
char *filter,
char *attrs[],
int attrsonly,
LDAPMessage **res
);
int ldap_search_st(
LDAP *ld,
char *base,
int scope,
char *filter,
char *attrs[],
int attrsonly,
struct timeval *timeout,
LDAPMessage **res
);

参数说明:
ld 连接手柄;
base 开始寻找的基础对象的DN
Scope :LDAP_SCOPE_BASE,LDAP_SCOPE_ONELEVEL, 或LDAP_SCOPE_SUBTREE,用来表明查找的范围。
filter :是一个表示LDAP查询的filter,是字符串表示,它的格式
定义在RFC 1588中。
attrs :一系列指针字符用于表征查找返回属性
attrsevly:布尔参数:0表示返回属性类型和值;非0,仅返回类型。
timeout 为 ldap_search_st() 而说明当地查找操作的超时值。
res 为同步调用准备的结果参数,记录查找完成的结果。
在ld连接手柄中有三个域控制查找操作的进行。它们是:
ld_sizelimit 查找实体实体返回的个数,如果为零,表示无限制。
ld_timelimit 查找时间限制,如果为零,表示无限制。
ld_deref LDAP_DEREF_NEVER,LDAP_DEREF_SEARCHING,
LDAP_DEREF_FINDING,LDAP_DEREF_ALWAYS之一。
用来说明再查找中别名怎麽处理。
LDAP_DEREF_NEVER: 在搜索中或者查找那基础对象时
做不复引用别名。
LDAP_DEREF_SEARCHING: 在基础对象的附属的搜索
中而不是查找那基础对象时做复引用别名。
LDAP_DEREF_FINDING: 在基础对象而不是其附属的
搜索中做复引用别名。
LDAP_DEREF_ALWAYS: 在搜索中或者查找那基础对
象时做都复引用别名。
一个异步查找通过调用ldap_search()进行初始化.该操作返
回本初始化查找的消息id,要想得到这个结果,可以调用ldap_result().
一个同步查找可以调用ldap_search_s() 或 ldap_search_st()来
实现.除了 ldap_search_st() 多了一个参数描述查找时限外,这两个
函数的功能基本是一样的。他们都返回一个查找结果,是LDAP
_SUCCESS 或一些错误信息(看下面的错误处理Error Handling).
查找操作返回的实体(如果有)必包含一个参数res .这个参数对调
用者来说是不透明的。Entries, attributes, values等等都必须调用下面
的分析程序才能进行分析。包含参数 res 的 结果只有不再使用且调
用 ldap_msgfree()时才被释放掉。
5. Reading an entry
LDAP 不直接支持读操作,但此操作可以基于实体的DN的查找来仿效。其参数设置如下:
scope LDAP_SCOPE_BASE,
filter "(objectclass=*)".
则attrs 包含有返回的属性表。
6. Listing the children of an entry
LDAP 也不直接支持表操作,同上我们有:
scope LDAP_SCOPE_ONELEVEL,
filter "(objectclass=*)".
则attrs 就包含了要返回的每个子女实体的属性表。
7. Modifying an entry
ldap_modify() 和 ldap_modify_s() 常用来修改现存的LDAP
实体。有关定义如下:
typedef struct ldapmod {
int mod_op;
char *mod_type;
union {
char **modv_strvals;
struct berval **modv_bvals;
} mod_vals;
} LDAPMod;
#define mod_values mod_vals.modv_strvals
#define mod_bvalues mod_vals.modv_bvals

int ldap_modify( LDAP *ld, char *dn, LDAPMod *mods[] );
int ldap_modify_s( LDAP *ld, char *dn, LDAPMod *mods[] );
参数说明:
ld 连接手柄;
dn 被修改的实体名;
mods 修改表,填入修改方式,如ADD、DELETE等。
LDAPMod 结构中的域解释如下:
mod_op 修改操作,它可以是LDAP_MOD_ADD,
LDAP_MOD_DELETE,或LDAP_MOD_REPLACE.
这个域也用来表明包含在mod_vals union中的值的类
型.
mod_type 被修改的属性的类型。
mod_vals 需要增加、删除或替换的值。
ldap_modify_s() 返回的是来自修改操作的LDAP 错误代码,可以
调用ldap_perror()及其一类的函数来解释。
ldap_modify() 返回的是它对请求初始化的消息 id ,或者是代表错误的值 -1 ,这个操作结果可以通过调用 ldap_result()来获得。
Modifying the RDN of an entry
ldap_modrdn()和 ldap_modrdn_s() 常用来改变LDAP 实体的名字。
int ldap_modrdn(
LDAP *ld,
char *dn,
char *newrdn,
int deleteoldrdn
);
int ldap_modrdn_s(
LDAP *ld,
char *dn,
char *newrdn,
int deleteoldrdn
);

5、请问一下WINDOWS SERVER 2012 上建AD域控,也可以自带安装LDAP服务吗?还要要安装第三方的LDAP服务?谢谢

看MOSS2007 部署图示指南说需先建域我2003 server没建域业安装wss3.0 sp2请问谁能说明底域控制器必须要

6、如何让ad服务器做samba的认证服务器

查看新版本
yum -y install autoconf automake libtool gcc gcc-c++ libstdc++-devel python python-devel gnutls gnutls-devel python-libs libacl-devel libacl-devel git gdb ncurses ncurses-devel openldap openldap-devel

cd /usr/local/src
wget
tar zxvf samba-4.2.2.tar.gz
cd samba-4.2.2
./configure
make
make install

groupadd samba
useradd -c "samba" -m -g goodman -p goodpassword sambatest
echo sambapassword>/root/p.txt
echo sambapassword>>/root/p.txt
cat /root/p.txt|pdbedit -a sambatest -t
/etc/init.d/smb restart

egrep -v '#|;|^$' /etc/samba/smb.conf
/etc/init.d/smb start

7、怎样填写设置LDAP账户的服务器和BaseDN

BASEDN可参见LDAP账户的服务器的slapd.conf里的相关配置.

8、ldap有几种,如windows ad域 ibm的l

系统要求
要按本文介绍的步骤进行配置,您需要一个 IBM LDAP 客户端、AIX 和配置了 LDAP 协议的 Microsoft® Windows Active Directory 2000/2003 服务器。
Netgroups
Netgroups 可以使用经过组织的名称来方便地标识主机组、人或域,以进行访问控制(请参见 Netgroups 侧栏)。您可以使用 netgroups 来限制对远程登录和 Shell 的访问。网络组存储于 Windows 2000/2003 Microsoft Active Directory 服务器中。您可以将 Windows Active Directory 服务器配置为 IBM LDAP 客户端的 LDAP 服务器。这些组中的用户可以访问 IBM LDAP 客户端系统。

例如,假定您有一台拥有大量用户的 LDAP 服务器,其中配置了几个 LDAP 客户端,并且您希望允许一定数量用户对这些 LDAP 客户端进行访问。您必须确保在 Netgroups 中定义这些用户。
IBM LDAP 使用 AIX 5.3 TL 05 或更高的版本提供对 Windows 2000/2003 Microsoft Active Directory 服务器的支持。请阅读 IBM 红皮书汇总中的 Integrating AIX 5L into Heterogeneous LDAP Environments(请参见参考资料),以获得使用 Microsoft Active Directory 服务器配置 IBM LDAP 客户端的所有配置细节。
配置
执行下面的步骤,以便使用 Microsoft Active Directory 服务器在 IBM LDAP 客户端上配置 Netgroups:
AIX 的 /etc/netgroup 文件中定义了需要对 IBM LDAP 客户端计算机进行访问的组和用户。/etc/netgroup 文件定义了网络范围内的组。这个文件里的每一行定义了一个组,并按如下所示的格式进行格式化:
Group name (hostname, username, domain name)
请看以下示例: testgroup (znim.austin.ibm.com, user1, test)
testgroup1 (, user2,)
请不要在上面的条目中使用短横线(-)。
将 /etc/netgroup 映射文件复制到 Windows 2000/2003 Active Directory 服务器。

与ADLDAP服务器相关的知识