【云原生】nacos權(quán)限制認(rèn)證-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)堅(jiān)信:善待客戶,將會成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨嚒N覀儚牟缓鲇瞥踉L客戶,我們用心做好本職工作,不忘初心,方得始終。10年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)是成都老牌網(wǎng)站營銷服務(wù)商,為您提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、H5高端網(wǎng)站建設(shè)、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、微信小程序定制開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。鑒權(quán) 服務(wù)端如何開啟鑒權(quán) 非Docker環(huán)境

按照官方文檔配置啟動,默認(rèn)是不需要登錄的,這樣會導(dǎo)致配置中心對外直接暴露。而啟用鑒權(quán)之后,需要在使用用戶名和密碼登錄之后,才能正常使用nacos。

開啟鑒權(quán)之前,application.properties中的配置信息為:

### If turn on auth system:
nacos.core.auth.enabled=false

開啟鑒權(quán)之后,application.properties中的配置信息為:

### If turn on auth system:
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true

注意:鑒權(quán)開關(guān)是修改之后立馬生效的,不需要重啟服務(wù)端。

Docker環(huán)境

官方鏡像

如果使用官方鏡像,請?jiān)趩觗ocker容器時(shí),添加如下環(huán)境變量

NACOS_AUTH_ENABLE=true

例如,可以通過如下命令運(yùn)行開啟了鑒權(quán)的容器:

docker run --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -p 8848:8848 nacos/nacos-server

除此之外,還可以添加其他鑒權(quán)相關(guān)的環(huán)境變量信息:

namedescriptionoption
NACOS_AUTH_ENABLE是否開啟權(quán)限系統(tǒng)默認(rèn):false
NACOS_AUTH_TOKEN_EXPIRE_SECONDStoken 失效時(shí)間默認(rèn):18000
NACOS_AUTH_TOKENtoken默認(rèn):SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_CACHE_ENABLE權(quán)限緩存開關(guān) ,開啟后權(quán)限緩存的更新默認(rèn)有15秒的延遲默認(rèn) : false

然后運(yùn)行docker-compose構(gòu)建命令,例如

docker-compose -f example/standalone-derby.yaml up

自定義鏡像

如果選擇自定義鏡像,請?jiān)跇?gòu)建鏡像之前,修改nacos工程中的application.properties文件,

將下面這一行配置信息

nacos.core.auth.enabled=false

修改為

nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true

然后再配置nacos啟動命令。

客戶端如何進(jìn)行鑒權(quán) Java SDK鑒權(quán)

在構(gòu)建“Properties”類時(shí),需傳入用戶名和密碼。

properties.put("username","${username}");
properties.put("password","${password}");

示例代碼

try {
    // Initialize the configuration service, and the console automatically obtains the following parameters through the sample code.
	String serverAddr = "{serverAddr}";
	Properties properties = new Properties();
	properties.put("serverAddr", serverAddr);

    // if need username and password to login
        properties.put("username","nacos");
        properties.put("password","nacos");

	ConfigService configService = NacosFactory.createConfigService(properties);
} catch (NacosException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Open-API鑒權(quán)

首先需要使用用戶名和密碼登陸nacos。

curl -X POST '127.0.0.1:8848/nacos/v1/auth/login' -d 'username=nacos&password=nacos'

若用戶名和密碼正確,返回信息如下:

{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyOTE2Nn0.2TogGhhr11_vLEjqKko1HJHUJEmsPuCxkur-CfNojDo","tokenTtl":18000,"globalAdmin":true}

接下來進(jìn)行配置信息或服務(wù)信息時(shí),應(yīng)當(dāng)使用該accessToken鑒權(quán),在url后添加參數(shù)accessToken={accessToken},其中{accessToken}為登錄時(shí)返回的token信息,例如

curl -X GET '127.0.0.1:8848/nacos/v1/cs/configs?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyMzkyM30.O-s2yWfDSUZ7Svd3Vs7jy9tsfDNHs1SuebJB4KlNY8Q&dataId=nacos.example.1&group=nacos_group'
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTYyMzkyM30.O-s2yWfDSUZ7Svd3Vs7jy9tsfDNHs1SuebJB4KlNY8Q&port=8848&healthy=true&ip=11.11.11.11&weight=1.0&serviceName=nacos.test.3&encoding=GBK&namespaceId=n1'
開啟服務(wù)身份識別功能

開啟鑒權(quán)功能后,服務(wù)端之間的請求也會通過鑒權(quán)系統(tǒng)的影響??紤]到服務(wù)端之間的通信應(yīng)該是可信的,因此在1.2~1.4.0版本期間,通過User-Agent中是否包含Nacos-Server來進(jìn)行判斷請求是否來自其他服務(wù)端。

但這種實(shí)現(xiàn)由于過于簡單且固定,導(dǎo)致可能存在安全問題。因此從1.4.1版本開始,Nacos添加服務(wù)身份識別功能,用戶可以自行配置服務(wù)端的Identity,不再使用User-Agent作為服務(wù)端請求的判斷標(biāo)準(zhǔn)。

開啟方式:

### 開啟鑒權(quán)
nacos.core.auth.enabled=true

### 關(guān)閉使用user-agent判斷服務(wù)端請求并放行鑒權(quán)的功能
nacos.core.auth.enable.userAgentAuthWhite=false

### 配置自定義身份識別的key(不可為空)和value(不可為空)
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example

** 注意 ** 所有集群均需要配置相同的server.identity信息,否則可能導(dǎo)致服務(wù)端之間數(shù)據(jù)不一致或無法刪除實(shí)例等問題。

舊版本升級

考慮到舊版本用戶需要升級,可以在升級期間,開啟nacos.core.auth.enable.userAgentAuthWhite=true功能,待集群整體升級到1.4.1并穩(wěn)定運(yùn)行后,再關(guān)閉此功能。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:【云原生】nacos權(quán)限制認(rèn)證-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article4/djgiie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、App設(shè)計(jì)、網(wǎng)站營銷、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化