您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何配置Kafka客戶端以使用LDAP進(jìn)行身份驗(yàn)證”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
此處顯示的示例將以粗體突出顯示與身份驗(yàn)證相關(guān)的屬性,以將其與其他必需的安全屬性區(qū)分開,如下例所示。假定已為Apache Kafka集群啟用了TLS,并且應(yīng)該為每個(gè)安全集群啟用TLS。
security.protocol=SASL_SSLssl.truststore.location=/opt/cloudera/security/jks/truststore.jks
我們在下面的所有示例中都使用Kafka-console-consumer 。所有概念和配置也適用于其他應(yīng)用程序。
LDAP代表輕量級目錄訪問協(xié)議,并且是用于身份驗(yàn)證的行業(yè)標(biāo)準(zhǔn)應(yīng)用程序協(xié)議。它是CDP上Kafka支持的身份驗(yàn)證機(jī)制之一。
LDAP認(rèn)證也通過SASL框架完成,類似于Kerberos。SASL支持各種身份驗(yàn)證機(jī)制,例如我們在上一篇文章中介紹過的GSSAPI,以及將用于LDAP身份驗(yàn)證的PLAIN。
必須設(shè)置以下Kafka客戶端屬性,以配置Kafka客戶端通過LDAP進(jìn)行身份驗(yàn)證:
# Uses SASL/PLAIN over a TLS encrypted connectionsecurity.protocol=SASL_SSLsasl.mechanism=PLAIN# LDAP credentialssasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="supersecret1";# TLS truststoressl.truststore.location=/opt/cloudera/security/jks/truststore.jks
上面的配置使用SASL / PLAIN進(jìn)行身份驗(yàn)證,并使用TLS(SSL)進(jìn)行數(shù)據(jù)加密。LDAP身份驗(yàn)證的選擇是在SASL / PLAIN的服務(wù)器端處理程序上配置的,我們將在本節(jié)后面介紹。
LDAP和Kerberos是不同的身份驗(yàn)證協(xié)議,各有其優(yōu)缺點(diǎn)。但是,在Kafka集群中使用這些協(xié)議并不是相互排斥的。同時(shí)為集群啟用Kerberos和LDAP身份驗(yàn)證是一種有效的配置。
身份目錄服務(wù)(例如Active Directory,RedHat IPA和FreeIPA)支持Kerberos和LDAP身份驗(yàn)證,并且為Kafka集群啟用了這兩種功能,從而為客戶端提供了處理身份驗(yàn)證的不同選擇。
LDAP可以消除與配置Kerberos客戶端有關(guān)的一些復(fù)雜性,例如要求在客戶端安裝Kerberos庫以及在更嚴(yán)格的環(huán)境中與Kerberos KDC的網(wǎng)絡(luò)連接。
與Kerberos協(xié)議不同,當(dāng)使用LDAP進(jìn)行身份驗(yàn)證時(shí),用戶憑據(jù)(用戶名和密碼)通過網(wǎng)絡(luò)發(fā)送到Kafka集群。因此,當(dāng)為Kafka啟用LDAP身份驗(yàn)證時(shí),為Kafka客戶端之間的所有通信啟用并實(shí)施TLS加密非常重要。這將確保憑據(jù)始終通過網(wǎng)絡(luò)加密,并且不會受到損害。
必須將所有Kafka代理配置為對其SASL端點(diǎn)使用SASL_SSL安全協(xié)議。
安裝Kafka服務(wù)時(shí),默認(rèn)情況下未為Kafka代理啟用LDAP身份驗(yàn)證,但是在Cloudera數(shù)據(jù)平臺(CDP)上配置它非常容易:
在Cloudera Manager中,在Kafka服務(wù)配置中設(shè)置以下屬性以匹配您的環(huán)境:通過選擇LDAP作為上面的SASL / PLAIN身份驗(yàn)證選項(xiàng),Cloudera Manager會自動將Kafka Brokers配置為使用以下SASL / PLAIN回調(diào)處理程序,該實(shí)現(xiàn)LDAP驗(yàn)證:
org.apache.kafka.common.security.ldap.internals.LdapPlainServerCallbackHandler
Kafka必須通過TLS連接(LDAPS)連接到LDAP服務(wù)器。為確保Kafka代理可以信任LDAP服務(wù)器證書,請將LDAP服務(wù)器的CA證書添加到Kafka服務(wù)使用的信任庫中。您可以在Cloudera Manager的以下屬性中找到信任庫的位置:
運(yùn)行以下命令(以root用戶身份)以將LDAP CA證書添加到信任庫中:
keytool \ -importcert \-keystore /opt/cloudera/security/jks/truststore.jks \-storetype JKS \ -alias ldap-ca \-file /path/to/ldap-ca-cert.pem
單擊Kafka>操作>重新啟動以重新啟動Kafka服務(wù)并使更改生效。
Kafka服務(wù)器的LDAP回調(diào)處理程序使用Apache Shiro庫將用戶ID(簡短登錄名)映射到LDAP領(lǐng)域中的用戶實(shí)體。它通過提供一個(gè)“用戶DN模板”來做到這一點(diǎn),給定用戶短名稱,該模板可用于在LDAP中派生用戶專有名稱:
例如,如庫文檔中所述,“如果目錄使用LDAP uid屬性表示用戶名,則jsmith用戶的用戶DN可能如下所示:
uid=jsmith,ou=users,dc=mycompany,dc=com
在這種情況下,您可以使用以下模板值設(shè)置此屬性:
uid={0},ou=users,dc=mycompany,dc=com"
這將LDAP回調(diào)處理程序的使用限制為以用戶名是專有名稱的一部分的方式配置的LDAP目錄。對于RedHat IPA和FreeIPA實(shí)現(xiàn),通常是上面這樣。但是,在Active Directory中,默認(rèn)情況下,專有名稱的格式為:
CN=Smith, John, ou=users, dc=mycompany, dc=com
它們包含用戶的全名而不是用戶ID,這使得不可能通過簡單的模式從簡短的用戶名中獲取它。幸運(yùn)的是,對于Active Directory ,除專有名稱外,<用戶名> @ <域>也是有效的LDAP用戶名。如果使用的是Active Directory,則可以將LDAP用戶DN模板設(shè)置為以下模板(使用上面的mycompany.com示例):
{0}@mycompany.com
如果您的LDAP目錄不接受可以如上所述構(gòu)造的用戶名,請考慮使用Kerberos身份驗(yàn)證而不是LDAP。
以下是使用Kafka控制臺使用者使用LDAP身份驗(yàn)證從主題讀取的示例:
# Complete configuration file for LDAP auth$ cat ldap-client.propertiessecurity.protocol=SASL_SSLsasl.mechanism=PLAINsasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="alice" password="supersecret1";ssl.truststore.location=/opt/cloudera/security/jks/truststore.jks# Connect to Kafka using LDAP auth$ kafka-console-consumer \ --bootstrap-server host-1.example.com:9093 \ --topic test \ --consumer.config ./ldap-client.properties
注意:上面的配置文件包含敏感憑據(jù)。確保設(shè)置了文件許可權(quán),以便只有文件所有者才能讀取它。
到目前為止,Kerberos和LDAP身份驗(yàn)證是行業(yè)標(biāo)準(zhǔn),是我們在整個(gè)客戶群中與Kafka一起使用的最常見的身份驗(yàn)證機(jī)制。但是,它們并不是唯一的。
Kerberos和LDAP要求Kafka集群與后端目錄服務(wù)集成,有時(shí)在某些環(huán)境中不可用。在這種情況下,仍然可以使用其他方法(例如相互TLS身份驗(yàn)證或帶有密碼文件后端的SASL / PLAIN)為Kafka集群設(shè)置身份驗(yàn)證。
“如何配置Kafka客戶端以使用LDAP進(jìn)行身份驗(yàn)證”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。