簡體   English   中英

使用 cURL 的 Cisco ACI 身份驗證不起作用

[英]Cisco ACI Authentication with cURL doesn't work

我一直在閱讀有關思科ACI自動化與卷曲這里,並試圖按照同樣的步驟。

不幸的是,該代碼不適用於 cURL。 我收到以下錯誤。

C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{"aaaUser":{"attributes":{"name":"user007","pwd":"password007"}}}'
{"totalCount":"1","imdata":[{"error":{"attributes":{"code":"400","text":"JSON parsing failed - incomplete attribute value at line: 1"}}}]}
C:\>

然而,當我使用 Postman 測試相同的代碼時,它就像一個魅力。 curl 命令有什么問題?

注意:我沒有將-c cookie.txt放在這個例子中,因為即使它在那里我也會得到同樣的錯誤。

期望輸出

獲得正確的 HTTP 200 響應,而不是 400 Bad Request ..

您需要先登錄:

curl -X POST -k https://APIC_IP_ADDRESS/api/aaaLogin.xml -d '<aaaUser name="USERNAME" pwd="PASSWORD"/>' -c cookie.txt

APIC 控制器返回存儲在 cookie 中的令牌。 它將持續 5 分鍾。 您必須使用此 cookie 來運行任何以下REST API

例如,創建新 Tenat、新應用程序配置文件和新 EPG 的REST API將如下所示:

curl -b cookie.txt -X POST -k https://APIC_IP_ADDRESS/api/node/mo/uni.xml -d '<polUni> <fvTenant name="TENANT-NAME" descr="TENANT-NAME-DESC" status=""> <fvAp name="APP-PROF-NAME">   <fvAEPg name="NEW-EPG-NAME" > </fvAEPg> </fvAp> </fvTenant> </polUni>' -c cookie.txt

您需要轉義雙引號 (")

C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{\"aaaUser\":{\"attributes\":{\"name\":\"user007\",\"pwd\":\"password007\"}}}'

事實上,你甚至可以只對用戶和密碼使用雙引號:

C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{aaaUser:{attributes:{name:\"user007\",pwd:\"password007\"}}}'

你需要轉義 \\" 的原因是因為 curl 在構造和發送 POST 消息時會刪除它們。這是來自 whireshark 的捕獲: whireshark capture

參考: https : //stackoverflow.com/a/15828662/147637

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM