当前位置:首页 » 密码管理 » openldap加密

openldap加密

发布时间: 2023-01-11 18:37:47

❶ OpenLDAP 服务端配置(一): 基本配置

本文基于 OpenLDAP 的安装后整理。

需要注意的是, 在 slaptest 命令生成的文件为 root 用户所有 , 需要用 chown 命令修改其属主, 然后再重启 slapd 服务

可以借助开源工具 migrationtools 将已有的 用户、密码以及用户组添加到openldap中。具体方式如下:

先安装工具

根据实际域名,修改 /usr/share/migrationtools/migrate_common.ph 配置文件中的如下字段

使用工具 migrate_base.pl 生成根域条目并导入到OpenLDAP中:

输入前面设置的 admin 密码即可将根域条目导入。

默认情况下, OpenLDAP 服务端与客户端之间使用明文进行验证、查询等操作。 由于互联网上数据传输存在不安全的因素, 所以需要配置OpenLDAP来支持加密传输数据。

自己创建 CA 证书的基本步骤如下:

其中以下字段需要根据实际情况填写:

并在该路径下生成以下密钥

根据前面 CA 签发自身密钥的输入信息,填入下面的字段

修改配置文件 /etc/openldap/slapd.conf 中的下列配置项

❷ windows下配置openldap,manager的连接:LDAP error:无效的凭据

刚遇到这个问题,找到原因了,让我来告诉你吧!!
首先,连接正确的 User DN(或 Username)应该是:cn=manager,dc=xxx,dc=aaa
xxx和aaa为自定义配置的值
然后检查客户端工具中输入文本框的位置是否有自动添加dc=xxx,dc=aaa的配置(比如LdapBrowser中有append base DN 的勾选框),有的话就可以不需要这部分,没有的话就要输入完整的值才能验证成功

❸ 服务器怎么设置用户

1、首先点击桌面开始菜单,打开“控制面板”;

❹ Circle linux 8.3正式发布了

欢迎来到Circle Linux社区!我们宣布正式发行x86_64 和aarch64架构的Circle Linux 8.3 版本。此发行版是社区每个成员这几个月共同辛勤劳作的结晶。

Circle Linux发行版是一个稳定、流畅和安全的平台,它从上游供应商的下游构建(充当昔日 CentOS 角色)。Circle Linux完全遵守再发行政策,并且致力与上游产品在功能上完全兼容。

若要下载Circle Linux发行版,请访问https://www.cclinux.org/download。

安全

Cyrus SASL 现在支持使用 SASL/GSSAPI 和 SASL/GSS-SPNEGO 插件进行通道绑定。因此,当在 openldap 库中使用时,此功能使 Cyrus SASL 能够保持与 Microsoft Active Directory 和 Microsoft Windows 系统的兼容性和访问权限,这些系统为 LDAP 连接引入了强制通道绑定。

Libreswan 基于上游版本 3.32。Libreswan现在采用rfc8247的加密建议,并将首选项从SHA-1和RSA-pkcsv1.5更改为SHA-2和RSA-PSS。Libreswan 支持 XFRMi 虚拟 ipsecXX 接口,可简化编写防火墙规则。

libssh 程序库已更新至 0.9.4 版本。此更新添加了对 PEM 文件中 Ed25519 密钥的支持, 对 diffie-hellman-group14-sha256 密钥交换算法的支持,对libssh 客户端配置文件中Match 关键字的 localuser 支持。

gnutls 软件包已更新至上游版本 3.6.14。gnutls 现在拒绝包含无效字符或格式的 Time 字段的证书。gnutls 现在检查可信 CA 证书的最小密钥大小。

openscap 软件包已更新至上游版本 1.3.3。此更新添加了 autotailor 脚本,使您能够使用命令行界面 (CLI) 生成裁剪文件。

网络

IPv4 和 IPv6 连接跟踪模块已合并到 nf_conntrack 模块。

NetworkManager 在取消激活设备时,将自动协商、速度和双工设置重置为它们的原始值。

支持XDP 需满足一些条件。部分支持xdp-tools。

默认情况下,dracut程序现在在初始RAM磁盘中使用NetworkManager。

内核命令行中的网络配置已合并到 ip 参数下。

内核

Circle Linux 8.3 现在支持 page owner 跟踪功能。Page owner 跟踪器会跟踪内核内存消耗情况,这有助于调试内核内存泄漏并检测使用大量内存的驱动程序。

Flamegraph 支持 perf 工具。perf 命令行工具支持 flamegraphs 来生成系统性能的图形化表示。perf 数据被分组成带有类似堆栈后端的样本。因此,这些数据被转换为可视化表示,以便更容易地识别计算密集型代码区域。

现在完全支持 libbpf 软件包,它对 bpftrace 和 bpf/xdp 开发很重要。

lshw 工具现在提供更多的 CPU 信息。

现在完全支持Mellanox ConnectX-6 Dx 网络适配器。

高可用和集群

Pacemaker 现在支持新的priority-fencing-delay 集群属性,它允许您配置一个双节点集群,以便在分割情况下运行资源最少的节点是被隔离的节点。

Pacemaker 现在通过降级一个被提升的资源而不是完全停止它来支持恢复。

/etc/sysconfig/sbd 文件现在支持 SBD_SYNC_RESOURCE_STARTUP 参数以更好地控制 SBD 和 Pacemaker 之间的同步。

动态编程语言、Web和数据库服务

以下组件的更新版本现在作为新的模块流提供:

Circle Linux 8.3 中更新了以下组件:

以下编译器和开发工具:

已知问题

由于Circle Linux是基于RHEL源码构建而来,RHEL发行说明中已知的问题很有可能出现在Circle Linux中。我们将在得知新问题或错误时更新此部分。

源代码

所有 Circle Linux 8 的源代码均托管在https://git.cclinux.org。

获取帮助

Circle Linux由社区驱动提供帮助和指导支持。如果您是新手,最好从https://wiki.cclinux.org/zh/home开始获取帮助。

致谢

我们由衷感谢社区每位成员所付出的努力。没有你们日夜不辞劳苦地工作,我们不可能如此快速地发行此版本,也不可能见证社区巨变。你们因为热爱而无私奉献,我们因为你们而意义非凡。

Copyright (C) 2021 Circle Linux 项目

❺ 如何加密的OpenLDAP连接使用STARTTLS

这种情况多是由于ldap的数据不足,或者dns解析不足引起。可结合samba4联合创建ad可以使用的数据。

❻ 如何移动ldap context

1. LDAP简介
LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP 之上的访问协议—LDAP。

LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。条目相当于关系数据库中表的记录;条目是具有区别名DN (Distinguished Name)的属性(Attribute),DN是用来引用条目的,DN相当于关系数据库表中的关键字(Primary Key)。属性由类型(Type)和一个或多个值(Values)组成,相当于关系数据库中的字段(Field)由字段名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。类型的一个例子就是mail,其值将是一个电子邮件地址。

LDAP的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织 (organization)(o=Acme)或组织单元(organizational units) (ou=People)。一个组织单元可能包含诸如所有雇员、大楼内的所有打印机等信息。此外,LDAP支持对条目能够和必须支持哪些属性进行控制,这是有一个特殊的称为对象类别(objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目能够及至少应该包含哪些属性。例如:inetorgPerson对象类需要支持sn(surname)和cn(common name)属性,但也可以包含可选的如邮件,电话号码等属性。

2. LDAP简称对应
o– organization(组织-公司)
ou – organization unit(组织单元-部门)
c - countryName(国家)
dc - domainComponent(域名)
sn – suer name(真实名称)
cn - common name(常用名称)

3. 目录设计
设计目录结构是LDAP最重要的方面之一。下面我们将通过一个简单的例子来说明如何设计合理的目录结构。该例子将通过Netscape地址薄来访文。假设有一个位于美国US(c=US)而且跨越多个州的名为Acme(o=Acme)的公司。Acme希望为所有的雇员实现一个小型的地址薄服务器。

我们从一个简单的组织DN开始:
dn: o=Acme, c=US

Acme所有的组织分类和属性将存储在该DN之下,这个DN在该存储在该服务器的目录是唯一的。Acme希望将其雇员的信息分为两类:管理者(ou= Managers)和普通雇员(ou=Employees),这种分类产生的相对区别名(RDN,relative distinguished names。表示相对于顶点DN)就shi :

dn: ou=Managers, o=Acme, c=US
dn: ou=Employees, o=Acme, c=US

在下面我们将会看到分层结构的组成:顶点是US的Acme,下面是管理者组织单元和雇员组织单元。因此包括Managers和Employees的DN组成为:
dn: cn=Jason H. Smith, ou=Managers, o=Acme, c=US
dn: cn=Ray D. Jones, ou=Employees, o=Acme, c=US
dn: cn=Eric S. Woods, ou=Employees, o=Acme, c=US

为了引用Jason H. Smith的通用名(common name )条目,LDAP将采用cn=Jason H. Smith的RDN。然后将前面的父条目结合在一起就形成如下的树型结构:

cn=Jason H. Smith
+ ou=Managers
+ o=Acme
+ c=US
-> dn: cn=Jason H. Smith,ou=Managers,o=Acme,c=US

现在已经定义好了目录结构,下一步就需要导入目录信息数据。目录信息数据将被存放在LDIF文件中,其是导入目录信息数据的默认存放文件。用户可以方便的编写Perl脚本来从例如/etc/passwd、NIS等系统文件中自动创建LDIF文件。

下面的实例保存目录信息数据为testdate.ldif文件,该文件的格式说明将可以在man ldif中得到。
在添加任何组织单元以前,必须首先定义Acme DN:
dn: o=Acme, c=US
objectClass: organization

这里o属性是必须的
o: Acme

下面是管理组单元的DN,在添加任何管理者信息以前,必须先定义该条目。
dn: ou=Managers, o=Acme, c=US
objectClass: organizationalUnit
这里ou属性是必须的。

ou: Managers
第一个管理者DN:
dn: cn=Jason H. Smith, ou=Managers, o=Acme, c=US
objectClass: inetOrgPerson
cn和sn都是必须的属性:
cn: Jason H. Smith
sn: Smith
但是还可以定义一些可选的属性:
telephoneNumber: 111-222-9999
mail: [email protected]
localityName: Houston

可以定义另外一个组织单元:
dn: ou=Employees, o=Acme, c=US
objectClass: organizationalUnit
ou: Employees

并添加雇员信息如下:
dn: cn=Ray D. Jones, ou=Employees, o=Acme, c=US
objectClass: inetOrgPerson
cn: Ray D. Jones
sn: Jones
telephoneNumber: 444-555-6767
mail: [email protected]
localityName: Houston
dn: cn=Eric S. Woods, ou=Employees, o=Acme, c=US
objectClass: inetOrgPerson
cn: Eric S. Woods
sn: Woods
telephoneNumber: 444-555-6768
mail: [email protected]
localityName: Houston

4. 配置OpenLDAP
本文实践了在 Windows 下安装配 openldap,并添加一个条目,LdapBrowser 浏览,及 java 程序连接 openldap 的全过程。

1. 下载安装 openldap for windows,当前版本2.2.29下载地址:http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
相关链接:http://lucas.bergmans.us/hacks/openldap/
安装很简单,一路 next 即可,假设我们安装在 c:\openldap

2. 配置 openldap,编辑 sldap.conf 文件
1) 打开 c:\openldap\sldap.conf,找到
include C:/openldap/etc/schema/core.schema,在它后面添加
include C:/openldap/etc/schema/cosine.schema
include C:/openldap/etc/schema/inetorgperson.schema

接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
include C:/openldap/etc/schema/corba.schema
include C:/openldap/etc/schema/dyngroup.schema
include C:/openldap/etc/schema/java.schema
include C:/openldap/etc/schema/misc.schema
include C:/openldap/etc/schema/nis.schema
include C:/openldap/etc/schema/openldap.schema

2) 还是在 sldap.conf 文件中,找到
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
把这两行改为
suffix "o=teemlink,c=cn"
rootdn "cn=Manager,o=teemlink,dc=cn"

suffix 就是看自己如何定义了,后面步骤的 ldif 文件就必须与它定义了。还要注意到这个配置文件中有一个 rootpw secret,这个 secret 是 cn=Manager 的密码,以后会用到,不过这里是明文密码,你可以用命令: slappasswd -h {MD5} -s secret 算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。

3. 启动 openldap
CMD 进入到 c:\openldap 下,运行命令 sldapd -d 1
用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。

4. 建立条目,编辑导入 ldif 文件
1) 新建一个 ldif(LDAP Data Interchanged Format) 文件(纯文本格式),例如 test.ldif,文件内容如下:

dn: o=teemlink
objectclass: top
objectclass: organization
o: develop

2) 执行命令:ldapadd -l test.ldif

5. 使用LDAP Browser进行访问
5.1安装LDAP Browser2.6软件,进行如下操作:



5.2显示效果


5. Java操作LDAP

5.1 用JNDI进访问

package cn.myapps.test;

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class LdapTest {
public void JNDILookup() {
String root = "o=teemlink,c=cn";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.0.30/" + root);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=Nicholas,ou=产品,o=teemlink,c=cn");
env.put(Context.SECURITY_CREDENTIALS, "123456");
DirContext ctx = null;

try {
ctx = new InitialDirContext(env);
Attributes attrs = ctx.getAttributes("cn=Nicholas,ou=产品");
System.out.println("Last Name: " + attrs.get("sn").get());
System.out.println("认证成功");
} catch (javax.naming.AuthenticationException e) {
e.printStackTrace();
System.out.println("认证失败");
} catch (Exception e) {
System.out.println("认证出错:");
e.printStackTrace();
}
if (ctx != null) {
try {
ctx.close();
} catch (NamingException e) {
// ignore
}
}
}

public static void main(String[] args) {
LdapTest LDAPTest = new LdapTest();
LDAPTest.JNDILookup();
}
}

5.2 用JLDAP进访问
访问地址:http://www.openldap.org/jldap/ 并下载相关lib

import com.novell.ldap.*;

import java.io.UnsupportedEncodingException;

public class List

{

public static void main(String[] args)

{
int ldapPort = LDAPConnection.DEFAULT_PORT;
int searchScope = LDAPConnection.SCOPE_ONE;
int ldapVersion = LDAPConnection.LDAP_V3;
boolean attributeOnly = false;
String attrs[] = null;
String ldapHost = "192.168.0.30";
String loginDN = "cn=Manager,o=teemlink,c=cn";
String password = "secret";
String searchBase = "ou=develop,o=teemlink,c=cn";
String searchFilter = "objectClass=*";

LDAPConnection lc = new LDAPConnection();
try {
// connect to the server
lc.connect(ldapHost, ldapPort);

// bind to the server
lc.bind(ldapVersion, loginDN, password.getBytes("UTF8"));

LDAPSearchResults searchResults =

lc.search(searchBase, // container to search
searchScope, // search scope
searchFilter, // search filter
attrs, // "1.1" returns entry name only
attributeOnly); // no attributes are returned

// print out all the objects
while (searchResults.hasMore()) {
LDAPEntry nextEntry = null;
try {
nextEntry = searchResults.next();
System.out.println("\n" + nextEntry.getDN());
System.out.println(nextEntry.getAttributeSet());
} catch (LDAPException e) {
System.out.println("Error: " + e.toString());
// Exception is thrown, go for next entry
continue;
}
}

// disconnect with the server
lc.disconnect();

} catch (LDAPException e) {
System.out.println("Error: " + e.toString());
} catch (UnsupportedEncodingException e) {
System.out.println("Error: " + e.toString());
}
System.exit(0);
}
}

5.3 用JDBC-LDAP进访问
访问地址:http://www.openldap.org/jdbcldap/ 并下载相关lib

package jdbcldap;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcLdap {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Class.forName("com.octetstring.jdbcLdap.sql.JdbcLdapDriver");
String ldapConnectString = "jdbc:ldap://192.168.0.30/o=teemlink,c=cn?SEARCH_SCOPE:=subTreeScope";
Connection con = DriverManager.getConnection(ldapConnectString, "cn=Manager,o=teemlink,c=cn", "secret");

String sql = "SELECT * FROM ou=develop,o=teemlink,c=cn";

Statement sat = con.createStatement();
ResultSet rs = sta.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(1));
}

if (con != null)
con.close();
}
}

❼ java通过ladp修改ad用户密码的问题。

我觉得可能你没有权限修改那个节点,或者你给的密码本身不是加密的,不符合它的要求.
像之前在 OpenLDAP 中就可以对跟密码相关的节点设定仅允许管理器账户访问.因此 AD 本身是操作系统管理,它可能有其它的完整性验证方法来核对你的修改是否有效,本身AD服务器有其它额外的功能,比如与其它服务器同步数据,在多个域控制器之间交换数据,因此它会加一些额外功能,它不仅仅是 LDAP.

建议你使用 apache 网站上的 LDAP Schema editor 这个 eclipse 插件来试验一下修改密码是否成功,毕竟它的客户端功能更强大,考虑得更全面,如果它不能修改密码,那就可能是有些局限性了,毕竟 AD 在 LDAP 上应该是添加了不少额外功能,甚至有些锁定的区域.

❽ centos7安装openldap

1.安装openldap及对应的组件

yum install *openldap*

2.修改slapd.conf文件

vi /etc/openldap/slapd.conf
找到这一行include /etc/openldap/schema/XXX.schema
可以把在/etc/openldap/schema 目录下有用的schema 文件加到这里!
本次实验按他默认设置,没作添加!
suffix "dc=my-domain,dc=com" rootdn "cn=Manager,dc=my-domain,dc=com"
这里要填定你的域名,客户端连接的时候要用到的!如你的域名google.com “dc=google,dc=com”
##这和你的hostname 无关
rootpw secret
这一行是明文的密码设置,可以用MD5加密,方法可以问问google !默认是被注释的,所以要把#号去掉’secret ’ 就是你的密码
这三行我改成了这样,大家可以参考一下
suffix "dc=google,dc=com" rootdn "cn=root,dc=google,dc=com" rootpw 123456

3.开启openldap服务了
/etc/rc.d/init.d/ldap start
4.重启ldap时会报错
/etc/rc.d/init.d/ldap restart
Stopping slapd: [OK]
Checking configuration files for slapd:bdb_db_open: Warning - No DB_CONFIG file found in directory /var/lib/ldap: (2) Expect poor performance for suffix dc=my-domain,dc=com.
config file testing succeeded [OK] Starting slapd: [OK]
虽然启动成功!当是警告在/var/lib/ldap 的目录下找不到DB_CONFIG的文件
解决办法:将/etc/openldap/ 下的DB_CONFIG.example 的文件,复制到/var/lib/ldap 下,改名为 DB_CONFIG 就行了!
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG service ldap restart
没报错了!!openldap 已经装完了!

5.ldap 默认没有日志文件的,要自己创建建立openldap的日志文件
vi /etc/syslog.conf

加入一行

local4.* /var/log/ldap.log

重启 syslog
/etc/rc.d/init.d/syslog restart

另:
1.OpenLDAP资料存放的位置: /var/lib/ldap/ 目录内,如果要重新设定LDAP server,先停止执行 ldap ( service ldap stop ),再移除资料目录下的所有档案 ( rm -Rf /var/lib/ldap/* )
2.OpenLDAP相关设定档的所在位置: /etc/openldap

6.客户端连接LDAP。
推荐几个客户端软件:ldapadmin ,JXplorer,LDAP Browser\Editor, LDAP Administrator (收费)

使用客户端前先在ldap服务中创建初始数据,否则用客户端连接的时候会提示连接失败!假设存放在/var/lib/ldap/test.ldif中,文件内容如下:

# vi /var/lib/ldap/test.ldif 路径和文件文可以自定,记住就行了 dn: dc=<MY-DOMAIN>,dc=<COM> objectclass: dcObject objectclass: organization o: <MY ORGANIZATION> dc: <MY-DOMAIN> dn: cn=Manager,dc=<MY-DOMAIN>,dc=<COM> objectclass: organizationalRole cn: Manager

ldap的数据默认放在”/var/lib/ldap”目录下,通过root账户运行slapadd命令添加的数据产生的文件属性属于root用户root组,但是service启动ldap是用ldap用户启动的,所以需要把这些文件的属性修改一下。下面这句脚本代码非常重要,否则数据只能读不能修改删除,血的教训。
将目录资料所在资料目录的拥有者?群组,指定为ldap:

chown -Rf ldap:ldap /var/lib/ldap

将目录根节点(root node)加到资料库:

slapadd -v -l /etc/openldap/data/root.ldif

重新启动ldap

/etc/rc.d/init.d/ldap restart

如果不成功,检查一下以上哪里做错了!
防火墙关了没!

❾ 想知道ltpa 和 ldap 的关系

LTPA(Lightweight Third Party Authentication)技术是IBM的标准。当某用户访问某WebSphere URL时,系统会提示他输入用户名和口令进行登录。这时用户可以输入他的惟一标识符,通过验证后,Web服务器将把该用户的Web 浏览器中显示的Web 站点内容发送回来。在场景后台,WebSphere入口网站服务器将会建立包含已鉴别使用者认证的单点登录Cookie(默认值是LTPA记号),并且会一直发送该cookie, 而浏览器通常的默认设置是允许接收cookie的,因此用户的浏览器将保存这个cookie。 LTPA cookie是临时的,只在浏览器内存中存留,用户如果关闭浏览器,cookie就会被永久删除。LTPA cookie的特点如下:
(1)LTPA cookie是一种典型的浏览器cookie。LTPA cookie特有的名称是LtpaToken。当配置 SSO时,在配置实用工具中,LTPA cookie有一个被编码值,隐藏起cookie中包含的重要信息并且通过Internet传输。
(2)LTPA cookie 不能跨域,通常SSO环境必须部署到单一DNS域中,即每台服务器都在同一DNS域中。
(3)在用户已经登录并且该用户的浏览器接收到 LTPA cookie以后,在HTTP通信中不再需要进行特定的配置,浏览器运行的标准方法就是浏览器将自动发送该cookie。浏览器不断地向任何正确的DNS域中的URL目标发送HTTP请求,通过这种途径不断地向外发送LPTA cookie。当SSO服务接收到HTTP请求并且发现请求中包含了LTPA cookie时,服务器将验证cookie,随即可知道该cookie属于哪一位已经登录的用户,服务器就可以允许这个用户对这台服务器进行适当的访问。浏览器的任务就是确定在什么时候应该随同HTTP通信一起发出LTPA cookie。当用户浏览到一个不在同一DNS域中的URL时, 因为该cookie不适用于这个新的DNS域,浏览器则不会发送 LTPA cookie,新的DNS目标的接收服务器就不知道用户是谁,这时会提示用户输入他的用户名和口令。
(4)LTPA cookie是安全的,因为服务器在创建它时,使用一组加密密钥进行了安全加密。加密密钥用于对cookie进行编码,编码后的cookie传送到用户浏览器,而浏览器只对有加密密钥的cookie进行解码和验证cookie的完整性,并随时检测cookie是否被篡改过。在SSO环境中的所有服务器必须共享同一个加密密钥。当SSO服务器接收到HTTP请求并发现其中包含LTPA cookie时,就使用它共享的加密密钥副本验证cookie,这时有效的cookie信息就使服务器能够识别出登录的用户。
SSO服务器使用的安全加密确保了没有任何伪造cookie的机会。没有加密密钥,其他非法 的cookie不会通过验证,伪造的cookie将被忽略。因此,SSO服务器不会被入侵。
在WebSphere Portal环境中,LTPA加密密钥通常在配置SSO时由WebSphere 创建。管理员可以将密钥导出到文件中,然后转移该文件到其他的SSO服务器(例如Domino),在那里导入密钥。系统的管理维护人员应该非常小心地处理密钥文件,把所有的副本保护好。
这样,LTPA技术就实现了WebSphere Portal门户网站的安全性

LDAP
来自 ChinaUnix Wiki
轻型目录访问协议,即Lightweight Directory Access Protocol (LDAP)是一个访问在线目录服务的协议。

目录 [隐藏]
1 概述
2 协议内容
3 RFC
4 产品
5 外部链接

[编辑]概述
鉴于原先的目录访问协议(Directory Access Protocol即DAP)对于简单的互联网客户端使用太复杂,IETF设计并指定LDAP做为使用X.500目录的更好的途径。LDAP在TCP/IP之上定义了一个相对简单的升级和搜索目录的协议。

常用词"LDAP目录"可能会被误解,而实际并没有"LDAP目录"这么一个目录种类。通常可以用它来描述任何使用LDAP协议访问并能用X.500标识符标识目录中对象的目录。与ISODE提供的X.500协议的网关相比,尽管OpenLDAP及其来自密歇根大学的前身等的目录基本上设计成专门为LDAP访问而优化的, 但也没有比其他用LDAP协议访问的目录额外多出来所谓“LDAP目录”。

协议的第三版由Netscape的Tim Howes,ISODE的Steve Kille和Critical Angle Inc的Mark Wahl撰写。

❿ pg12数据库有没有pgAgent

PostgreSQL 12 已经发布,该版本在各方面都得到了加强,包括显着地提升查询性能,特别是对大数据集,总的空间利用率方面。这个版本为应用程序开发人员提供了更多的功能,比如对 SQL/JSON 路径表达式的支持,优化公共表达式(WITH查询)的执行,以及对生成列的支持等。



PostgreSQL 除了持续对 PostgreSQL 系统的可扩展性、稳健性进行开发外,还更多地在本地化、授权控制以及更加容易的管理进行增强。这个版本也引入了 可插拨的表存取接口,来允许开发者在表的创建和使用时使用不同的存取方式。具体如下:

全面的性能提升

PostgreSQL 12版本在性能和易维护性方面有了显着的增强,尤其是对索引和分区子系统。

PostgreSQL 12 对标准索引类型B树索引进行了优化,以使其可以可以更好地处理索引更新频率较高类型的负载的的总体性能,使用最常使用的TPC-C 性能测试,PostgreSQL 12 平均可以提升约 40% 的空间利用率和查询性能。

对分区表的查询也得到了较大改进,特别是对那些有数千个分区的表,而结果只需从几个有限的分区提取数据的查询。PostgreSQL 12 对通过 INSERT 和COPY指令将数据加入分区表的操作,也有加强,包括现在可以在不阻塞查询的情况下增加新的分区。

另外,PostgreSQL 12 对索引的优化也提升了总体的性能,包括生成 GiST、GIN 或 SP-GiST 索引的 WAL 日志的负载显着减少,在 GiST 类型索引上创 建INCLUDE选项的包含索引,SP-GiST 索引现在支持<->距离操作的 K-NN(即相邻最近)查询,以及CREATE STATISTICS指令现在支持最常用值 MCV 的统计来帮助那些字段值非均匀分布的查询生成更优化的查询计划。

通过使用 LLVM,从 PostgreSQL 11 版引入的 JIT 即时编译,在 PostgreSQL 12 中缺省已是启用状态,JIT 即时编译对带有 WHERE 条件、对象列表、 聚合以及一些内部操作都会提供性能上的帮助。当然,用户在安装或是编译时需要包含 LLVM 模块。

对 SQL 标准一致性和功能的增强

PostgreSQL 一直以来以其对 SQL 标准符合性而着称,这也是其名称由 POSTGRES 改为 PostgreSQL 的一个小原因。PostgreSQL 12 又增加了几个新特性 来持续实现对 SQL 标准的符合性的强化。

PostgreSQL 12 加入了对 JSON 文档进行查询时使用 JSON 路径表达式的功能,这也是 SQL/JSON 中定义的规范。对使用 JSONB 格式保存的文档,这些查 询可以利用已有的索引机制来高效地提取数据。

公共表达式,也称之为 WITH 查询,在 PostgreSQL 12 中可以实现非物化操作处理,这对很多现在已有的查询有很大帮助。目前在这个版本中,WITH 查询的前提条件是非递归查询并且仅可被外层查询引用一次。

PostgreSQL 12 也引入了“生成列”功能,这也是 SQL 标准中的要求,这些字段值是通过同一表中其它列计算而来的。在这一版本中,PostgreSQL 支持“保存生成列值”的功能,即将这些计算出来的数据存储在磁盘上。

本地化

PostgreSQL 12 扩充了对 ICU 排序规则的支持,允许用户自行定义非标准的排序方式,比如允许大小写不敏感或是按口音不敏感的比较规则。

授权控制

PostgreSQL 通过再次扩展了一些的安全方面的功能来强化了它本来就很稳健的权限控制。这个版本中通过 GSSAPI 接口支持客户端和服务端的双向加密, 如果在编译时加入 OpenLDAP 模块,PostgreSQL 也支持搜索 LDAP 服务器的功能。

另外,PostgreSQL 12 现在支持多约束的授权方式。如在使用scram-sha-256的授权方式,PostgreSQL 服务器现在可以强制一个客户端在提供用户名、使用clientcert=verify-full选项,再必须提供有效的 SSL 证书的方式来强化安全授权。

系统管理

PostgreSQL 12 的REINDEX CONCURRENTLY指令可以在不影响新的索引写入的前提下让用户执行重那建索引操作,这有助于用户实现不停机对 较大索引的重建。

还有,PostgreSQL 12 通过使用pg_checksums指令对停机的 PostgreSQL 来开启或关闭页校验功能,该功能有助于检查已写入磁盘的数据一致性, 而以前版本中该操作仅允许在 initdb的阶段来执行。

热点内容
查询数据库中的表 发布:2025-08-22 17:54:56 浏览:315
java代码混淆加密 发布:2025-08-22 17:52:36 浏览:404
eclipse写java 发布:2025-08-22 17:51:53 浏览:788
绕频加密 发布:2025-08-22 17:44:31 浏览:816
嵌入式android应用开发 发布:2025-08-22 17:27:59 浏览:341
为什么王者安卓转区ios会卡顿 发布:2025-08-22 17:27:49 浏览:538
ubuntu共享访问 发布:2025-08-22 17:27:11 浏览:130
李兴华android开发实战经典 发布:2025-08-22 17:22:06 浏览:477
android查看uid 发布:2025-08-22 17:22:00 浏览:623
i3哪个配置最低 发布:2025-08-22 17:21:59 浏览:606