kerberos与openldap整合

合集下载

OpenLDAP安装及配置

OpenLDAP安装及配置

OpenLDAP安装及配置OpenLDAP安装及配置折腾了好多天总算是折腾出些眉⽬来了,openldap在linux下的安装与⽂件的配置估计令好多⼈都⽐较头疼吧?我就遇到了这样的问题。

下⾯我就⼤致说⼀下openldap的安装过程以及所遇到的⼀些问题的处理办法。

1.安装BerkeleyDB我选⽤的数据库是BerkeleyDB-4.8.26,在安装openldap之前需要把BDB先装好。

安装步骤如下:1)⾸先把下载好的⽂件db-4.8.26.tar解压,⽣成⽂件夹db-4.8.26,# cd db-4.8.26/build_unix# ../dist/configure# make# make install这个过程⼀般没什么问题,默认安装到了/usr/local下,⽬录名,BerkeleyDB.4.8,2) 接下来应该把BerkeleyDB.4.8下include和lib⽂件夹下的⽂件都考到usr⽂件夹下相应的include和lib⽂件下。

也可以通过以下命令来实现#cp /usr/local/ BerkeleyDB.4.8/include/* /usr/include#cp /usr/local/ BerkeleyDB.4.8/lib/* /usr/lib注意:*后边要有空格,这是cp命令的格式2.安装openldap同样,先解压,我⽤的是openldap-2.4.13,安装步骤如下#cd openldap-2.4.13#env CPPFLAGS=”-I/usr/local/ BerkeleyDB.4.8/include” LDFLAGS=”-L/usr/local/ BerkeleyDB.4.8/lib”./configure --prefix=/usr/local/openldap出现Making servers/slapd/backends.cAdd config…Add ldif…Add monitor…Add bdb…Add hdb…Add relay…Make servers/slapd/overlays/statover.cAdd syncprov…Please run “make depend” to build dependencies就可以进⾏下⼀步了,# make depend#make#make test# make install这样openldap就基本上安装完成了,但在这⼀步容易出现⼀些问题。

一种单jvm进程中同时支持多个kerberos认证的方法与流程

一种单jvm进程中同时支持多个kerberos认证的方法与流程

一种单jvm进程中同时支持多个kerberos认证的方法与流程如何在单个JVM进程中同时支持多个Kerberos认证Kerberos是一种网络身份验证协议,可用于在计算机网络中进行强大的身份验证。

当涉及到在单个JVM进程中同时支持多个Kerberos认证时,有一些特定的步骤和流程需要遵循。

在本文中,我们将一步一步回答如何实现这个需求。

步骤1:理解Kerberos认证的基本原理在开始之前,我们需要对Kerberos认证的基本原理有一定的了解。

Kerberos使用对称密钥加密和票据传递来验证用户和服务之间的身份。

它依赖于KDC(Key Distribution Center)服务器来分发凭证和密钥。

Kerberos身份验证包括以下步骤:1. 用户发送用户名和密码到KDC。

2. KDC验证用户的身份并生成一个票据(Ticket)。

3. 用户使用票据向服务请求访问。

4. 服务使用服务密钥解密并验证票据。

5. 如果票据有效,则服务授予用户访问权限。

步骤2:准备环境和配置KDC在单个JVM进程中同时支持多个Kerberos认证之前,我们需要设置KDC 服务器和相关配置。

KDC是负责管理用户和服务的密钥分发的服务器。

1. 安装KDC服务器:选择一个合适的KDC服务器,例如MIT Kerberos 或Microsoft Active Directory。

2. 配置KDC:根据您的环境和需求,配置KDC服务器和相关认证参数,包括Realm(领域)、Principal(主体)和Keytabs(密钥文件)等。

步骤3:配置JVM以支持多个Kerberos认证现在,我们可以开始配置JVM以支持多个Kerberos认证。

1. 创建不同的JAAS(Java Authentication and Authorization Service)配置文件:JAAS是Java的身份验证和授权框架,用于配置各种身份验证模块和策略。

针对每个Kerberos认证,我们需要创建一个独立的JAAS 配置文件。

LDAP安装与开发

LDAP安装与开发

编译并安装OpenLDAP本节讨论Senior Level Linux Professional(LPIC-3)考试301 的302.1 主题的内容。

这个主题的权值为3。

在本节中,学习如何:∙从源代码编译和配置OpenLDAP∙理解OpenLDAP 后端数据库∙管理OpenLDAP 守护进程∙排除安装期间的错误OpenLDAP 是一个实现LDAP 服务器和相关工具的开放源码应用程序。

因为它是开放源码的,所以可以免费下载它的源代码。

OpenLDAP 项目并不直接发布二进制代码,但是大多数主流的发行版都打包了二进制代码。

在本教程中,学习如何从源代码和软件包安装OpenLDAP。

从源代码编译第一步是从项目站点下载OpenLDAP 的最新版本(见参考资料中的下载链接)。

这个项目通常有两个当前版本:一个是稳定版本,另一个是测试版本。

本教程使用稳定版2.3.30 和2.3.38。

如果按照本教程进行操作,一些目录名可能会随版本而变化。

为了从下载的文件中提取源代码,输入tar -xzf openldap-stable-20070831.tgz。

这会将下载的文件解压到一个目录中。

用cd openldap-2.3.38命令进入这个新目录(根据需要替换您的OpenLDAP 版本号)。

现在的位置在源代码目录中。

现在必须配置系统的构建环境,然后构建这个软件。

OpenLDAP 使用脚本configure执行这些操作。

输入./configure --help就可以看到可用的所有选项。

一些选项定义安装文件的位置(比如--prefix):其他选项定义希望安装的OpenLDAP 特性。

清单1 列出特性及其默认设置。

清单 1. 与OpenLDAP 特性相关的配置选项SLAPD (Standalone LDAP Daemon) Options:--enable-slapd enable building slapd [yes]--enable-aci enable per-object ACIs (experimental) [no]--enable-cleartext enable cleartext passwords [yes]--enable-crypt enable crypt(3) passwords [no]--enable-lmpasswd enable LAN Manager passwords [no]--enable-spasswd enable (Cyrus) SASL password verification [no]--enable-modules enable dynamic module support [no]--enable-rewrite enable DN rewriting in back-ldap and rwm overlay[auto]--enable-rlookups enable reverse lookups of client hostnames [no]--enable-slapi enable SLAPI support (experimental) [no]--enable-slp enable SLPv2 support [no]--enable-wrappers enable tcp wrapper support [no]SLAPD Backend Options:--enable-backends enable all available backends no|yes|mod--enable-bdb enable Berkeley DB backend no|yes|mod [yes]--enable-dnssrv enable dnssrv backend no|yes|mod [no]--enable-hdb enable Hierarchical DB backend no|yes|mod [yes]--enable-ldap enable ldap backend no|yes|mod [no]--enable-ldbm enable ldbm backend no|yes|mod [no]--enable-ldbm-api use LDBM API auto|berkeley|bcompat|mdbm|gdbm [auto]--enable-ldbm-type use LDBM type auto|btree|hash [auto]--enable-meta enable metadirectory backend no|yes|mod [no]--enable-monitor enable monitor backend no|yes|mod [yes]--enable-null enable null backend no|yes|mod [no]--enable-passwd enable passwd backend no|yes|mod [no]--enable-perl enable perl backend no|yes|mod [no]--enable-relay enable relay backend no|yes|mod [yes]--enable-shell enable shell backend no|yes|mod [no]--enable-sql enable sql backend no|yes|mod [no]SLAPD Overlay Options:--enable-overlays enable all available overlays no|yes|mod--enable-accesslog In-Directory Access Logging overlay no|yes|mod [no] --enable-auditlog Audit Logging overlay no|yes|mod [no]--enable-denyop Deny Operation overlay no|yes|mod [no]--enable-dyngroup Dynamic Group overlay no|yes|mod [no]--enable-dynlist Dynamic List overlay no|yes|mod [no]--enable-lastmod Last Modification overlay no|yes|mod [no]--enable-ppolicy Password Policy overlay no|yes|mod [no]--enable-proxycache Proxy Cache overlay no|yes|mod [no]--enable-refint Referential Integrity overlay no|yes|mod [no]--enable-retcode Return Code testing overlay no|yes|mod [no]--enable-rwm Rewrite/Remap overlay no|yes|mod [no]--enable-syncprov Syncrepl Provider overlay no|yes|mod [yes]--enable-translucent Translucent Proxy overlay no|yes|mod [no]--enable-unique Attribute Uniqueness overlay no|yes|mod [no]--enable-valsort Value Sorting overlay no|yes|mod [no]SLURPD (Replication Daemon) Options:--enable-slurpd enable building slurpd [auto]Optional Packages:--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)--with-subdir=DIR change default subdirectory used for installs--with-cyrus-sasl with Cyrus SASL support [auto]在清单1 中,可以看到许多特性在默认情况下是禁用的,比如元目录和模块。

大数据平台kerberos安装部署文档

大数据平台kerberos安装部署文档

大数据平台-kerberos安装部署文档————————————————————————————————作者: ————————————————————————————————日期:ﻩ1.环境准备1.1.操作系统本次安装部署要求在操作系统为CentOS release 6.5(Final)的版本下进行部署,所以在安装部署kerberos之前请先确保操作系统为以上版本,并且集群中各机器已做时钟同步。

本次安装部署以csdm-hadoop-04作为主kdc服务器,以csdm-hadoop-05作为从kdc服务器,以csdm-hadoop-03作为客户端。

一般不建议在服务器上再安装其他应用程序,比如hadoop。

但为了节省资源本次安装在这三台机器均已安装hadoop相关软件。

1.2.创建操作用户创建操作系统hdfs、yarn、mapred用户,并使其归属于hadoop用户组: adduserhdfs -gHadoopadduseryarn -g Hadoopadduser mapred-gHadoop1.3.配置hosts文件为各台机器修改/etc/hosts文件,将真实ip与主机名对应配置,服务端与客户端均需配置,形如:(不能存在127.0.0.1的配置,否则hadoop进行kerberos验证时将会出错)1.4.关闭防火墙执行以下命令关闭防火墙:service iptables stop出现以下界面表示关闭成功1.5.注册服务与端口的对应在/etc/service文件最后增加以下信息,以便后续使用:ﻩkrb5_prop754/tcp # Kerberos slave propagation2.安装配置Kerberos2.1.安装rpm包➢以root用户登录并创建目录存放安装包:mkdir /var/kerberos➢上传安装包文件到创建的目录,包括krb5-libs-1.10.3-10.el6_4.6.x86_64.rpm、krb5-server-1.10.3-10.el6_4.6.x86_64.rpm(客户端可不安装)、krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm➢执行安装命令:rpm -ivh krb5-libs-1.10.3-10.el6_4.6.x86_64.rpmrpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm【客户端可不安装】ﻫrpm -ivh krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm➢查看上述包是否已安装成功:rpm –qa krb5*若出现以下情况则代表安装成功。

11_Hadoop基础技术-KerberosLDAP

11_Hadoop基础技术-KerberosLDAP

密码太多的烦恼
聊天工具 游戏
看漫画
邮箱 微博
听音乐 追剧追番
各种登录。。。 账号密码记不住呀!!!
统一身份认证
统一身份认证就类似于游乐园的通行规则一样,游客可以 通过一个通行证(秘钥)来畅玩授权过的游乐项目。
在开源大数据平台中,用户可能需要同时使用很多开源组 件,因此会涉及到每个组件的身份认证和访问权限等问题。 利用统一的认证服务能够更好的管理用户的身份认证及会 话管理等。
单点登录的特点如下:
为用户提供便捷服务 提高运维和管理效率 简化应用系统的开发
实现单点登录的主流技术
对于单点登录的实现,主要有如下六种技术:
cookies技术
Broker-based技术
Agent-based技术
Agent and Broker-based技术
Gateway-based技术
Ldap 服务器
身份认证功能设计
LdapServer通过使用Group(组)和Role(角色)的身份认证方式来管理用户,从而更好地管理 不同组织下的用户的属性和权限。
LdapServer的Group(组)是对用户进行统一的组管理,如果用户添加到该组中,该组的 member属性中就会添加成员的dn记录。
LdapServer作为目录服务系统是由目录数据库和一套访问协议组成的系统:
LdapServer基于OpenLDAP开源技术实现。 LdapServer以Berkeley DB作为默认的后端数据库。 LdapServer是基于LDAP标准协议的一种具体开源实现。
LdapServer组织模型
例:左下方节点dn为:
cn=stu_George,uid=001, ou=Primary school, dc=CN,dc=edu

OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证

OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证

导读LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。

目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。

目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。

目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。

而目录服务的更新则一般都非常简单。

这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。

为了访问存储在目录中的信息,就需要使用运行在TCP/IP 之上的访问协议—LDAP。

LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。

常见的例子是通讯簿,由以字母顺序排列的名字、地址和电话号码组成。

目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的。

也就是目录服务不适于进行频繁的更新,属于典型的分布式结构。

总结:对于查询操作多于更新操作的(认证)系统来说,使用OpenLDAP是一个比关系数据库如MySq、PostgreSQL等更好的选择。

LDAP的功能在LDAP的功能模型中定义了一系列利用LDAP协议的操作,主要包含以下4部分:查询操作:允许查询目录和取得数据,其查询性能比关系数据库好。

更新操作:目录的更新操作没关系数据库方便,更新性能较差,但也同样允许进行添加、删除、修改等操作。

复制操作:前面也提到过,LDAP是一种典型的分布式结构,提供复制操作,可将主服务器的数据的更新复制到设置的从服务器中。

认证和管理操作:允许客户端在目录中识别自己,并且能够控制一个会话的性质。

而本文所要将的OpenLDAP就是一个优秀的开源的LDAP实现。

OpenLDAP安装配置及疑惑解答1. 安装和配置OpenLDAP安装软件非常简单,但在配置过程中遇到了不少坎坷,不是服务启动不成功就是验证不成功。

openldap-多级同步

openldap-多级同步

3. 所有机器设置为镜像模式。

MirrorMode=True进一步分析看来N-Way Master模式具有比MirrorMode更多的配置项,从一定意义上来讲,MirrorMode是N-Way Master的一个特例。

由此引起我对N-Way Master Mode的极大兴趣,是否有更灵活的其他用发可以发掘呢?我将目光注意到了一个MirrorMode的配置项上,如没有这个项目,则MirrorMode的配置即变为普通syncreplica,如有,则标志为对等的镜像模式。

这个开关是否是控制服务器在集群里的读写模式的关键呢?如果这个开关灵活运用,是否可以在服务器之间形成单向+对等的复杂关系呢?后来通过查看openldap的源代码,确定了这个开关的确是控制服务器读写模式的重点。

结果我们可以在N-Way Master配置中引入不对等的配置,假设我们有4台服务器分别命名为ldap1 ldap2 ldap3 ldap4已经配置为N-Way Master模式。

我们将ldap2 ldap3 ldap4的MirrorMode关闭,同时把syncrepl的配置只保留ldap1为源,将会形成什么结果?结果就是,我们做了一个很有意思的主从结构,从N-Way Master的模式,转换到了Master-Slave配置,这个配置的好处是什么呢?此种模式下,主从服务器的配置文件差异只有一个小参数:MirrorMode=True/False,而其他所有配置完全相同。

如此以来我们将会有比较大的机会来做配置文件数据库cn=config的全部同步,并且有机会保持此种差异而不引起整个架构的变化。

我们可以灵活使用一个syncrepl的配置中的一个很有意思的限制,将可以把这个MirrorMode排除在数据库同步的内容之外:exattrs="olcMirrorMode"。

则我们将上面的例子改变为rid=002 provider=ldap://:389 binddn="cn=config"bindmethod=simple credentials=secret searchbase="cn=config"exattrs="olcMirrorMode" type=refreshAndPersist而且如果我们的slave服务器上使用这个syncrepl配置,将不会把master端的MirrorMode参数同步过来。

OPENLDAP API 编程简述

OPENLDAP API 编程简述
int ld_timelimit;
int ld_sizelimit;
int ld_errno;
char *ld_matched;
> ld是连接句柄
4、 ldap_search()族API查询LDAP目录:
int ldap_search(
LDAP *ld,
char *base,
int scope,
> hostname是LDAP服务器的地址,可以是IP或域名;
> portno是LDAP服务器的端口号,缺省的端口是常数:LDAP_PORT;
> 返回值:成功返回一个struct LDAP指针是一个连接句柄用于以后的操作,
失败返回NULL。
说明:该Entry会作为LDAP判断用ld句柄是否有权进行操作的依据(可
以用帐号去理解,一般系统在配置时会设置一个rootdn可看作超级用户帐
号)
> passwd是对应dn的帐号密码。
> method是验证方法:LDAP_AUTH_SIMPLE,LDAP_AUTH_KRBV41,或
int ldap_simple_bind( LDAP *ld, char *dn, char *passwd );
int ldap_simple_bind_s( LDAP *ld, char *dn, char *passwd );

1、 ldap_open() 打开到LDAP服务器的连接:
typedef struct ldap {
/* ... opaque parameters ... */
int ld_deref;
ldap_simple_bind_s )。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

kerberos与openldap整合
一、安装kerberos
1.安装方法:编译源代码。

2.kerberos版本:krb5-1.7。

接下来我们开始安装kerberos:
1../configure –prefix=/usr/local/
注:--prefix=/usr/local/用来指定kerberos的安装路径。

在此之前,我们需
要在usr/local/目录下创建var文件夹,在usr/local/var目录下创建krb5kdc
文件夹。

2.make
3.make install
安装kerberos 之后,开始写配置文件:
在目录/etc/下找到配置文件krb5.conf进行修改
在目录/usr/local/var/krb5kdc 下创建数据库配置文件kdc.conf和权限管理文件kadm5.acl。

这里为了方便,我们进行了最简单的权限配置。

创建数据库:/usr/local/sbin/kdb5_util create –r KDC -s
这样就基本完成了kerberos 的安装了。

接下来我们启动服务,测试服务是否安装成功。

启动服务:usr/local/sbin/krb5kdc
添加管理主体:
启动kadmin服务:
启动kadmin服务失败。

通过修改目录/etc 下的hosts文件就可以解决这一问题
这个名字要与配置文件中的名字保持一致。

再次启动kadmin服务就能成功了
通过启动以上几个服务,kerberos基本安装成功了。

二、安装openldap
1.安装方法:编译源代码。

2.openldap版本:openldap-2.
3.40。

接下来我们就开始安装openldap:
1../configure --prefix=/usr/local/openldap
注:prefix=/usr/local/openldap是用来指定安装路径的。

需要我们先手动
在/usr/local/目录新建openldap这个文件夹。

2.make depend
3.make
4.make test
5.make install
安装openldap 之后,开始写配置文件
在usr/local/openldap/etc/openldap/下找到配置文件slapd.conf
1.引入schema文件
2.修改目录名,设置管理员
3.设置密码
当前的密码是以明文的形式保存在配置文件之中,这样存在安全隐患,我们可以通过/usr/local/openldap/sbin下的slappasswd,将密码加密成密文的形式,保存于配置文件中。

将密文形式的密码粘贴到配置文件中
写完配置文件之后,进行数据录入
我们采用导入ldif文件的方式进行数据录入的。

首先创建一个ldif文件,在里面写入要导入openldap中的数据,内容如下:
注:每一行的行首、行尾一定不能有空格、Tab!!!
通过命令:ldapadd –x –D “cn=admin,dc=kerberos,dc=kdc”–W –f test.ldif 完成数据录入。

通过命令:ldapsearch -x -b "dc=kerberos0,dc=kdc0" "(objectclass=*)"查询
ldap中的数据。

通过以上几个步骤,可以确定openldap已经安装成功,接下来我们来安装kerbreos
三、安装kerberos
1.安装方法:编译源代码。

2.kerberos版本:krb5-1.7。

接下来我们开始安装kerberos:
1../configure --prefix=/usr/local/–with-ldap
注:--prefix=/usr/local/用来指定kerberos的安装路径,--with-ldap是将
kerberos和ldap进行整合。

在此之前,我们需要在usr/local/目录下创建var文件夹,在usr/local/var
目录下创建krb5kdc文件夹。

2.make
3.make install
安装kerberos之后,开始写配置文件
在目录/etc/下找到配置文件krb5.conf进行修改
注:红线框出来的部分,是用来指定ldap为kerberos存放数据的地方,注意在写配置文件的时候不要漏泄了这一句。

蓝线框出来的部分,是存放进入ldap的密码文件的目录。

写完了kerberos的配置文件,我还要修改openldap的配置文件,使openldap 支持kerberos。

修改openldap配置,使其支持kerberos有两种情况:
1.静态通过slapd.conf配置,每次配置后需要重新启动ldap服务2.slapd.d来动态配置,不需要重新配置ldap服务器。

这里我们采用的是静态配置方法。

对于静态ldap的情况很简单就是在slapd.conf文件中配置加上
1.引入kerberos.schema
在kerberos的安装源代码,目录src/plugins/kdb/ldap/libkdb_ldap下找到kerberos.schema文件,拷贝到目录/usr/local/openldap/etc/openldap/schema下,然后在配置文件中引入kerberos.schema。

2.在slapd.conf中添加ACL
3.krb5principalName添加索引。

以上就完成了对openldap的配置文件的修改。

接下来就进行数据的录入:
1.创建全局container(ou=krb5,dc=kerberos0,dc=kdc0)
2.管理“域”的dn(cn=kdc-srv,ou=krb5,dc=kerberos0,dc=kdc0)
3.kdc服务的dn(cn=adm-srv,ou=krb5,dc=kerberos0,dc=kdc0)
同样是采用导入ldif文件的方式进行数据录入
通过命令:ldapadd –x –D “cn=admin,dc=kerberos,dc=kdc”–W –f krb.ldif 完成数据录入。

图中用红线框出来的部分就是kerberos进入ldap所需的密码,接下来我们就需要经这两个密码提取出来,以文件的形式放入krb5.conf配置文件中所指定的目录下。

通过命令:kdb5_ldap_util -D cn=admin,dc=kerberos,dc=kdc stashsrvpw -f /etc/kerberos/service.keyfile cn=kdc-srv,ou=krb5,dc=kerberos,dc=kdc和
kdb5_ldap_util –D,cn=admin,dc=kerberos,dc=kdc stashsrvpw -f /etc/kerberos/service.keyfile cn=adm-srv,ou=krb5,dc=kerberos,dc=kdc提取密码。

接下为kerberos创建域:
kdb_ldap_util –D cn=admin,dc=kerberos,dc=kdc create –r KDC –s.
这样就完成openldap对kerberos的支持。

四、测试
1.添加管理主体
命令addprinc,添加主体。

命令listprincs,列出所有的主体。

用红线框出来的就是我们刚才创建的主体。

2.启动服务
命令kinit,获取票据。

命令klist,列出票据。

相关文档
最新文档