摘录 LDAP】的更多相关文章

1.LDAP就是 light DAP, 轻量级目录访问协议     LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写     LDAP标准实际上是在X.500标准基础上产生的一个简化版本 这是一个开放的协议, 具体的实现有 Netscape LDAP, Novell NDS, MS AD等等目录服务,这3个是使用最广,影响最大的.Netscape LDAP server主要使用在unix或类unix系统上, MS AD自然只能在win…
理解LDAP与LDAP注入 0x01 LDAP简介 查阅了一些网上的资料,读了好久还是觉得理解起来很困难,感觉还是不够干,之后看到的一个博客http://www.chinaunix.net/old_jh/49/593660.html的,觉得写的相当不错,摘录了些也说说自己的理解吧,有错误的希望大家指正. LDAP,轻量目录访问协议 |dn :一条记录的位置| |dc :一条记录所属区域| |ou :一条记录所属组织| |cn/uid:一条记录的名字/ID| 此处我更喜欢把LDAP和 数据库类比起…
#ldap 安裝配置 环境Centos7#安装 yum install -y openldap openldap-clients openldap-servers migrationtools pam_ldap python-ldap# 关闭防火墙 systemctl stop firewalld.service#配置域名解析echo "192.168.20.43 domain.com" >> /etc/hosts#配置ldap服务 vim /etc/openldap/sl…
通过AD作为用户认证的数据源.整个管理用户认证逻辑就在LdapAuthenticationSource类中实现. LdapSettingProvider:定义LDAP的setting和提供DefautValue.主要提供配置访问AD数据库的账号信息. LdapSettings/ILdapSettings:通过settingManager获取LDAP settings AbpZeroLdapModuleConfig/IAbpZeroLdapModuleConfig: 提供激活Ldap认证的配置.…
注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式. 交互方式(所有通信都是单向的): View 传送指令到 Controller Controller 完成业务逻辑后,要求 Model 改变状态 Model 将新的数据发送到 View,用户得到反馈 更详细的说明: 模型(Mod…
前言 由于公司内部的系统越来越多,为了方便用户使用,通过django进行了单点登录和统一认证的尝试,目前实现了django项目的单点登录和非django项目的统一认证,中间波折挺多,涉及的技术包括django\memcache\ldap等,如果有时间的话,后边会逐步更新博客分开介绍实现过程. sso的实现相对复杂,期间也调研了如cas+ldap,最后采取了一种学习成本较低的方式,即通过mc共享session方式实现单点登录.有兴趣并且懂java的同学可以自行了解cas.应该是一种更成熟的sso解…
前言 参考本系列之前的文章,我们已经搭建了ldap并且可以通过django来操作ldap了,剩下的就是下游系统的接入了,现在的应用场景,我是分了2个层次,第一层次是统一认证,保证各个系统通过ldap来维护统一的用户名和密码,第二层次就是sso单点登录,即一个系统登录,其他系统即是登录状态,一个系统登出,其他系统也自动登出,也就是我们登录公司内部的N个系统,其实总共只需要登录一次即可. 目前,django的下游系统可以接入单点,理论上,只要语言支持memcache客户端,通过session维持登录…
前言 接上篇文章 [原创]django+ldap实现统一认证部分一(django-auth-ldap实践) 继续实现我们的统一认证 python-ldap 我在sso项目的backend/lib/common/下添加一个ldaphelper.py文件,其中定义一个类 #!/usr/bin/env python # -*- coding:utf-8 -*- import ldap import ldap.modlist as modlist # 加载log配置 import logging log…
前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 ,ldap部署相关,ldap双机\LAM配置管理\ldap备份还原,目前来说,我们已经有了高可用性的ldap环境了,里边也有了一些用户信息,后边要说一说通过django调用ldap的实现方式,里边主要涉及3个模块,django-auth-ldap:用于从ldap同步账户.登录验证,它和ldap结合的很好,但它不能反向直接操作ldap,只能进行从ldap向下游系统的同步,所以还需要python-ldap模块,以便…
前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 就单点登录实现过程进行详细记录,ldap是一切的基础,可以把它理解成一个读强写弱的文件类型数据库,统一认证我们通过ldap来实现,里边保存了账户信息.为什么不用其他的关系型数据库呢?我这里的需求是因为在使用的很多软件默认都支持ldap,比如我们后续要接入的svn.vpn.jira等,使用ldap可以更方便一些. ldap相关部署的文档网上资料比较多,这边就不着重说明了,请参考这篇文章http://www.cnb…
[目录] 0x1 LDAP介绍 0x2 LDAP注入攻击及防御 0x3 参考资料 0x1 LDAP介绍 1 LDAP出现的背景 LDAP(Lightweight Directory Access Protocol):轻量级目录访问协议,是一种在线目录访问协议.LDAP主要用于目录中资源的搜索和查询,是X.500的一种简便的实现. 先看一下LDAP出现的背景: 随着互联网的广泛使用,web应用的数量呈爆炸式的增长,而这些应用的资源和数据呈分布式存储于目录中.通常不同的应用会有专属于自己相关数据的目…
# -*- coding: UTF-8 -*- import ldap, ConfigParser, os from ldap import modlist LDAP_HOST = "mydomain.com" USER = "cn=admin,dc=mydomain,dc=com" PASSWORD = password BASE_DN = dc=mydomain,dc=comclass LdapOpt(object): def __init__(self, se…
最近两周由于要学习测试LDAP,所以对于用脚本操作LDAP很感兴趣,所以就做了一些脚本,都是比较简单的脚本吧. 废话不多说了哈.直接上教程 首先声明:我使用的是JLDAP操作LDAP,所以需要从官网下载一个JAR包,这里你们自己百度一下就能找到了. 第一步,一切的开端!!!!链接LDAP import com.novell.ldap.LDAPAttribute; import com.novell.ldap.LDAPConnection; import com.novell.ldap.LDAPE…
yum install -y openldap openldap-servers openldap-clients pam_ldap nss-pam-ldapd vsftpd slappasswd #记录备用 {SSHA}70WfjeJVZhmGy0wfSUKcOGsKPgLR7/ae cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf vi /etc/openldap/slapd.conf修改s…
一.什么是空指针? 空指针 是一个特殊的指针值. 空指针 是指可以确保没有向任何一个对象的指针.通常使用宏定义 NULL 来表示空指针常量值. 空指针 确保它和任何非空指针进行比较都不会相等,因此经常作为函数发生异常时的返回值使用.另外,对于第 5 章的链表来说,也经常在数据的末尾放上一个空指针来提示:“请注意,后面已经没有元素了哦.” 在如今的操作系统下,应用程序一旦试图通过空指针引用对象,就会马上招致一个异常并且当前应用程序会被操作系统强制终止.因此,如果每次都使用 NULL 来初始化指针变…
在开发一些小程序的时候,也许我们并不在意作用域的必要性.可是,当你书写几万行,甚至几十万行的代码的时候,没有作用域肯定是不能忍受的. C 语言有如下 3 种作用域. 1.全局变量 在函数之外声明的变量,默认地会成为全局变量.全局变量在任何地方都是可见的.当程序被分割为多个源代码文件进行编译时,声明为全局变量的变量也是可以从其他源代码文件中引用的. 2.文件内部的静态变量 就算对于像全局变量那样被定义在函数外面的变量,一旦添加了 static,作用域就只限定在当前所在的源代码文件中.通过 stat…
一.数组 和 指针 的微妙关系 数组 是指将固定个数.相同类型的变量排列起来的对象. 正如之前说明的那样,给指针加 N,指针前进“当前指针指向的变量类型的长度 X N”. 因此,给指向数组的某个元素的指针加 N 后,指针会指向 N 个之后的元素. #include <stdio.h> int main(void) { int array[5]; int *p; int i; /* 给数组 array 的各元素设定值 */ for (i = 0; i < 5; i++) { array[i…
一.指向函数的指针 函数名可以在表达式中被解读成“指向函数的指针”,因此,正如代码清单 2-2 的实验那样,写成 func 就可以取得指向函数的指针. “指向函数的指针”本质上也是指针(地址),所以可以将它赋给指针型变量. 比如有下面的函数原型: int func(double d); 保存指向此函数的指针的变量的声明如下: int (*func_p)(double); 然后写成下面这样,就可以通过 func_p 调用 func, int (*func_p)(double); // 声明 fun…
一.函数的形参的声明 C 语言可以像下面这样声明函数的形参: void func(int a[]) {     // ... } 对于这种写法,无论怎么看都好像要向函数的参数传递数组. 可是,在 C 中是不能够将数组作为函数的参数进行传递的.无论如何,在这种情况下,你只能传递指向数组初始元素的指针. 在声明函数形参时,作为类型分类的数组,可以被解读成指针. void func(int a[]) { } 可以被自动地解读为 void func(int *a) { } 此时,就算你定义了数组的元素的…
一.混乱的声明——如何自然地理解 C 的声明? 通常,C 的声明 int hoge; 这样,使用“类型 变量名;”的形式进行书写. 可是,像“指向 int 的指针”类型的变量,却要像下面这样进行声明: int *hoge_p; 似乎这里声明了一个名为 *hoge_p 的变量,而实际上,这里声明的变量是 hoge_p,hoge_p 的类型是“指向 int 的指针”. 因为这种声明方式不太好理解,所以有人提出将 * 靠近类型这一侧进行书写,如下: int* hoge_p; 的确,这种书写方式符号“类…
问题1:安装完启动ldap服务报错: ldap: unrecognized service? 原因在于新版的openldap将服务名改为了slapd,使用service slapd start即可启动. 问题2:当使用slapd作为服务名启动,还是报错. 56fc9e64 ldif_read_file: Permission denied for "/etc/openldap/slapd.d/cn=config.ldif" 很明显是权限问题,修改slapd.d的权限: chown -R…
Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等,schema给LDAP服务器提供了LDAP目录中类别,属性等信息的识别方式,让这些 可以被LDAP服务器识别.    在LDAP的schema中,有四个重要的元素:    1. Objectclass    objectclass定义了一个类别,这个类别会被不同的目录(在LDAP中就是一个Entry…
1. LDAP的存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶. 在文件系统中, 这些独一无二的属性就是带有完整路径的文件名.比如/etc/passwd,该文件名在该路径下是独一无二的.当然我们可以有/usr/passwd, /opt/passwd,但是根据它们的完整路径,它们仍然是唯一的. 在LDAP中,一个条目的区分名称叫做“dn”或者叫做区分名.…
1.安装openldap -server: [root@dlp ~]# yum -y install openldap-servers openldap-clients [root@dlp ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG [root@dlp ~]# chown ldap. /var/lib/ldap/DB_CONFIG [root@dlp ~]# systemctl star…
记录一下最近研究ldap+nfs的情况 ldap这个东西上次研究nis的时候就有人说那是上个世纪的老东西了,不应该继续使用.虽然意识到如此但时间不够还是使用了nis,这次乘着重做就干脆切换到ldap,可这次相当不顺利,折腾了一个星期左右,现在总算折腾好了,中间被坑了无数次,记录一下以备下次继续参考吧. 关防火墙,关防火墙,关防火墙 没想到这次又被这个大坑害了一把,因为用的是redhat7.0, 所以每次安装之后都是直接service iptables off, 一看提示没有就大意了,没把防火墙作…
前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了这本<javascript 高级程序设计> ,在每个晚上抽出一个小时来看这本纸质书,系统的学习这门语言. 本文中摘录的都是一些在阅读中,感觉比较重要的信息.如果文中出现差错,欢迎园友拍砖. 摘录: 数据类型   undefined  使用var声明 但未对其初始化   Null null值    …
最近公司使用CAS连接LDAP,实现单点登录.遇到了这个问题:登录后,抛出错误: 查看CAS后台,看到这个异常. javax.naming.TimeLimitExceededException: LDAP: error code 3 百度,Bing找了一遍,发现是LDAP服务器的配置问题. 我们使用的是OpenLdap,到对应目录下看到两个配置文件,ldap.conf和slapd.conf,在ldap.conf中看到被注释掉的TIMELIMIT.去掉注释,改成0,如图: 然后,重启OpenLda…
第一步:ldap + kerberos 整合  ,参考之前的文章 第二步:google authentication 安装配置,参考之前的文章 第三步:整合 ldap + kerberos + google authentication 1. 由于sshd默认在使用了秘钥或者kerberos验证的时候,就通过了验证,不再执行google authentication的动态密码验证,所以我们需要新版本的sshd的AuthenticationMethods选项 支持,这个选项参数指定sshd必须完成…
要开启openldap的日志功能是非常简单的:1.在slapd.conf中加一行:loglevel        4095      2.在/etc/rsyslog.conf 中加入ldap日志文档:local4.*                                                /var/log/ldap.log3.在终端用命令重启rsyslog服务# service rsyslog restart4.在/var/log/下可以找到一个ldap.log文件…
第一部分:ldap1. 安装ldap yum install -y openldap openldap-clients openldap-servers openldap-devel 2. 配置ldap # cat /etc/openldap/slapd.conf include /etc/openldap/schema/core.schemainclude /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/inetor…