openldap加密
❶ 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 之間的同步。
以下組件的更新版本現在作為新的模塊流提供:
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的階段來執行。