W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Solr 可以支持用戶使用 BasicAuthPlugin 的基本身份驗(yàn)證。
您還可以使用授權(quán)插件來(lái)配置Solr,使其具有在系統(tǒng)中執(zhí)行各種活動(dòng)的權(quán)限。授權(quán)插件在“基于規(guī)則的授權(quán)插件”一節(jié)中進(jìn)行了介紹。
要使用基本身份驗(yàn)證,您必須先創(chuàng)建一個(gè)security.json文件。這個(gè)文件以及它的放置位置將在“使用security.json啟用插件”一節(jié)中詳細(xì)介紹。
對(duì)于基本身份驗(yàn)證,security.json文件必須有一個(gè)authentication部分,它定義用于身份驗(yàn)證的類??梢栽趧?chuàng)建文件時(shí)添加用戶名和密碼(例如:sha256(password+salt) hash),或者可以稍后使用基本驗(yàn)證API添加,如下所述。
該authorization部分與基本身份驗(yàn)證無(wú)關(guān),但它是一個(gè)單獨(dú)的授權(quán)插件,旨在支持 fine-grained 用戶訪問(wèn)控制。有關(guān)更多信息,請(qǐng)參閱基于規(guī)則的授權(quán)插件。
示例security.json顯示了如下所示的顯示兩個(gè)部分,以顯示這些插件是如何協(xié)同工作的:
{
"authentication":{ 【1】
"blockUnknown": true, 【2】
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="} 【3】
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"permissions":[{"name":"security-edit",
"role":"admin"}], 【4】
"user-role":{"solr":"admin"} 【5】
}}
在這個(gè)文件中定義了幾個(gè)東西,以下的解釋對(duì)應(yīng)于上述的序號(hào):
將您的設(shè)置保存到名為security.json的本地文件中。如果您在獨(dú)立模式下使用Solr,則應(yīng)將此文件放在 $SOLR _home 中。
如果blockUnknown沒(méi)有出現(xiàn)在security.json文件中,它將默認(rèn)為false。這具有不需要身份驗(yàn)證的效果。在某些情況下,你可能需要這個(gè);例如,如果您想要使用security.json,但尚未準(zhǔn)備好啟用身份驗(yàn)證。但是,您需要確保將此參數(shù)設(shè)置為true,以便在您的系統(tǒng)中真正啟用身份驗(yàn)證。
如果您正在使用SolrCloud,則你必須上傳security.json到ZooKeeper。您可以使用這個(gè)示例命令,確保ZooKeeper端口是正確的:
bin/solr zk cp file:path_to_local_security.json zk:/security.json -z localhost:9983
使用基本身份驗(yàn)證插件時(shí)需要記住一些事項(xiàng):
身份驗(yàn)證API允許修改用戶標(biāo)識(shí)和密碼。API為端點(diǎn)提供特定的命令來(lái)設(shè)置用戶詳細(xì)信息或刪除用戶。
admin/authentication
此端點(diǎn)不是特定于集合的,因此將為整個(gè)Solr集群創(chuàng)建用戶。如果用戶需要被限制到特定的集合,那么可以使用授權(quán)規(guī)則來(lái)完成。
該set-user命令允許您添加用戶并更改其密碼。例如,以下定義了兩個(gè)用戶及其密碼:
curl --user solr:SolrRocks http://localhost:8983/solr/admin/authentication -H 'Content-type:application/json' -d '{
"set-user": {"tom" : "TomIsCool" ,
"harry":"HarrysSecret"}}'
該delete-user命令允許您刪除用戶。用戶密碼不需要發(fā)送來(lái)刪除用戶。在下面的例子中,我們要求將用戶ID “tom”和“harry”從系統(tǒng)中刪除。
curl --user solr:SolrRocks http://localhost:8983/solr/admin/authentication -H 'Content-type:application/json' -d '{
"delete-user": ["tom","harry"]}'
為身份驗(yàn)證插件設(shè)置任意屬性。唯一受支持的屬性是'blockUnknown'
curl --user solr:SolrRocks http://localhost:8983/solr/admin/authentication -H 'Content-type:application/json' -d '{
"set-property": {"blockUnknown":false}}'
在SolrJ中,需要為每個(gè)請(qǐng)求設(shè)置基本認(rèn)證憑證,如下例所示:
SolrRequest req ;//create a new request object
req.setBasicAuthCredentials(userName, password);
solrClient.request(req);
查詢例子:
QueryRequest req = new QueryRequest(new SolrQuery("*:*"));
req.setBasicAuthCredentials(userName, password);
QueryResponse rsp = req.process(solrClient);
將以下行添加到solr.in.sh或solr.in.cmd文件。此示例告訴bin/solr命令行使用“basic”作為認(rèn)證類型,并使用用戶名“solr”和密碼“SolrRocks”傳遞憑證:
SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: