LDAP Broker 探索機制

使用 ActiveMQ Classic 5 > LDAP Broker 探索機制

當系統中的 Broker 數量龐大時,設定網路拓撲可能會相當繁瑣。為了協助簡化這類情況的設定負擔,可以將 Broker 設定為使用 LDAP v3 目錄伺服器來查找其 Broker 連線。

注意

此基本功能是為了滿足 AMQ-358 而新增的。此實作存在已知的問題和限制。這些缺陷已在 AMQ-1587 中解決。本頁討論的功能需要附加至 JIRA 問題 AMQ-1587 的修補程式。此修補程式應可順利套用至 ActiveMQ Classic 5.0.0 版本或目前的開發主幹。

LDAP v3 目錄伺服器相容性

下表列出已知可與 LDAP 探索功能搭配使用的目錄伺服器子集及其相容性。如果大多數 LDAP v3 目錄伺服器正確實作 RFC2307 結構描述,則應支援此功能。為了支援持續搜尋功能,伺服器必須實作 draft-ietf-ldapext-psearch-03.txt 中定義的延伸。

供應商 產品 版本 RFC2307 draft-ietf-ldapext-psearch-03.txt
Apache ApacheDS 1.0.x (tick) (tick)
Microsoft Active Directory Windows 2000, Windows 2003 (warning) (error)
Microsoft Active Directory Windows 2003 R2 (tick) (error)
Sun OpenDS 0.9.x (tick) (tick)
OpenLDAP OpenLDAP 2.3.x, 2.4.x (tick) (error)

(警告) 預設情況下,不支援 RFC2307 的 LDAP v3 目錄伺服器。可以手動匯入來新增支援。請參閱供應商的特定設定需求以了解如何執行此操作。
(錯誤) 不支援 draft-ietf-ldapext-psearch-03.txt 的 LDAP v3 目錄伺服器。

LDAP 網路連接器屬性

屬性 預設值 必要 描述
uri null 要連線的 LDAP v3 伺服器的 URI (例如 ldap://host:port, failover://(ldap://host1:port,ldap://host2:port))。
base null 用作搜尋條件根目錄的 RDN 基底。
user null ,如果未使用 anonymousAuthentication 需要繫結至伺服器的使用者名稱。
password null ,如果未使用 anonymousAuthentication 需要繫結至伺服器的密碼。
anonymousAuthentication false ,如果未使用 user/password 如果要匿名繫結至伺服器,請啟用此選項。建議使用此選項而非使用 user/password 屬性,因為您的登入認證不會儲存在未加密的 XML 檔案中。
searchEventListener false 如果您希望 Broker 與符合搜尋條件的項目變更保持同步,請啟用此選項。
searchScope ONELEVEL_SCOPE 可以是 javax.naming.directory.SearchControls 類別定義的任何搜尋範圍。OBJECT_SCOPE - 搜尋由基底定義的命名物件。ONELEVEL_SCOPE - 搜尋基底的一層。SUBTREE_SCOPE - 搜尋以基底為根的整個子樹。
searchFilter (&(objectClass=ipHost)(objectClass=ipService)) 可以是符合 RFC2254 的任何篩選條件。如果指定了自訂篩選條件,則實際使用的搜尋篩選條件將為 (&(&(objectClass=ipHost)(objectClass=ipService))(USER CUSTOM))。

其他屬性

Broker 網路中定義的所有屬性也可供 ldapNetworkConnector 使用。為正常網路連接器定義的任何屬性都將用作連線參數,以連線至符合搜尋條件的任何已探索到的 Broker。

範例 1:簡單的 Broker 網路

網路設定

拓撲 LDAP v3 目錄結構 項目

ActiveMQ Classic 設定 (activemq.xml)

srv-a.mydomain.com

<broker brokerName="srv-a.mydomain.com" ...>
   ...

   <networkConnectors>
      <ldapNetworkConnector uri="ldap://myldap.mydomain.com:389"
                            base="dc=brokers,dc=mydomain,dc=com"
                            anonymousAuthentication="true"
                            searchFilter="(cn=*)"
                            searchScope="SUBTREE_SCOPE"
                            />
   </networkConnectors>

   ...
</broker>

srv-b.mydomain.com

<broker brokerName="srv-b.mydomain.com" ...>
   ...

   <networkConnectors/>
      <!-- NO NETWORK CONNECTORS -->
   </networkConnectors>

   ...
</broker>

範例 2:較大的 Broker 網路

網路設定

拓撲 LDAP v3 目錄結構

ActiveMQ Classic 設定 (activemq.xml)

srv-a.mydomain.com

<broker brokerName="srv-a.mydomain.com" ...>
   ...

   <networkConnectors>
      <ldapNetworkConnector uri="ldap://myldap.mydomain.com:389"
                            base="dc=brokers-for-srv-a,dc=mydomain,dc=com"
                            anonymousAuthentication="true"
                            searchFilter="(cn=*)"
                            searchScope="SUBTREE_SCOPE"
                            networkTTL="2"
                            />
      <!-- networkTTL=2 since we want messages to flow from srv-a to srv-c -->
   </networkConnectors>

   ...
</broker>

srv-b.mydomain.com

<broker brokerName="srv-b.mydomain.com" ...>
   ...

   <networkConnectors/>
      <ldapNetworkConnector uri="ldap://myldap.mydomain.com:389"
                            base="dc=brokers-other,dc=mydomain,dc=com"
                            anonymousAuthentication="true"
                            searchFilter="(cn=*)"
                            searchScope="SUBTREE_SCOPE"
                            />
   </networkConnectors>

   ...
</broker>

srv-c.mydomain.com

<broker brokerName="srv-c.mydomain.com" ...>
   ...

   <networkConnectors/>
      <!-- NO NETWORK CONNECTORS -->
   </networkConnectors>

   ...
</broker>

srv-d.mydomain.com

<broker brokerName="srv-d.mydomain.com" ...>
   ...

   <networkConnectors/>
      <ldapNetworkConnector uri="ldap://myldap.mydomain.com:389"
                            base="dc=brokers-other,dc=mydomain,dc=com"
                            anonymousAuthentication="true"
                            searchFilter="(cn=*)"
                            searchScope="SUBTREE_SCOPE"
                            />
   </networkConnectors>

   ...
</broker>

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌均為 Apache 軟體基金會的商標。Copyright © 2024, The Apache Software Foundation。授權條款為 Apache License 2.0