本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明如何使用表示狀態傳輸(REST)API功能在身份服務引擎(ISE)上執行訪客相關任務。 思科訪客API是一組基於REST的操作,提供安全的HTTPS和經過身份驗證的訪問來管理思科訪客使用者。藉助API,您可以建立、讀取、更新、刪除和搜尋訪客使用者。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
附註:其他ISE版本的過程相似或相同。除非另有說明,否則您可以在所有2.x ISE軟體版本上使用這些步驟。
為了使用API,需要在ISE中設定啟用外部RESTful服務(ERS)和發起人身份驗證。ERS支援基本身份驗證,通過埠9060運行。身份驗證憑證已加密,並且是請求標頭的一部分。ERS要求ISE管理員為使用者分配特殊許可權以執行操作。
本文檔將介紹以下配置步驟:
1.在ISE上啟用ERS
2.為ERS設定管理員和發起人帳戶
3.建立訪客帳戶
4.讀取、更新、刪除訪客資料
要在ISE上使用REST API功能,必須啟用ERS。
導覽至Administration > System > Settings > ERS settings > Enable ERS for read/write,如下圖所示。

所有與ERS相關的資訊都在ISE的HTTPS埠9060上作為軟體開發套件(SDK)提供。啟用ERS並使用具有「ERS-Admin」或「ERS-Operator」許可權的管理員帳戶登入後,可以訪問此功能。
為了使用ERS,ISE需要具有為其分配的ERS-Admin或ERS-operator許可權的管理帳戶。需要建立管理員帳戶並將其新增到各自的組中。或者,ERS訪問也適用於超級管理員帳戶。
為了將API用於訪客功能,ERS管理員需要門戶的原始資料,如門戶ID、訪客身份組等。但是,為了讀取/建立/更新或刪除任何訪客資料,需要啟用ERS訪問許可權的發起人帳戶。


為了通過API建立訪客帳戶,必須將API呼叫作為發起人並通過其識別的發起門戶進行ISE。
步驟1。若要獲取在ISE上預配置的所有發起人門戶的門戶ID,請使用具有此處提供的資訊的任何REST客戶端:
| 方法 | GET |
| URL | https://<ISE-IP>:9060/ers/config/sponsorportal |
| 憑證 | 使用ERS管理員憑據 |
| 標頭 | Content-Type:application/xml 接受:application/xml |


預期輸出:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns3:searchResult total="1"
xmlns:ns5="ers.ise.cisco.com"
xmlns:ers-v2="ers-v2"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns3="v2.ers.ise.cisco.com">
<ns3:resources>
<ns5:resource description="Default portal used by sponsors to create and manage accounts for authorized visitors to securely access the network"
id="274a95f0-2e58-11e9-98fb-0050568775a3" name="Sponsor Portal (default)">
<link rel="self" href="https://10.127.197.186:9060/ers/config/sponsorportal/274a95f0-2e58-11e9-98fb-0050568775a3" type="application/xml"/>
</ns5:resource>
</ns3:resources>
</ns3:searchResult>
感興趣的值是發起人門戶的門戶ID,用於建立訪客使用者。在本例中,ID是「274a95f0-2e58-11e9-98fb-0050568775a3」。
步驟2.使用此API呼叫建立訪客帳戶。這裡的portalID值是從步驟1取得的。
| 方法 | POST |
| URL | https://<ISE-IP>:9060/ers/config/guestuser/ |
| 憑證 | 使用發起人帳戶憑據 |
| 標頭 | Content-Type:application/vnd.com.cisco.ise.identity.guestuser.2.0+xml 接受:application/vnd.com.cisco.ise.identity.guestuser.2.0+xml |
| 本文 |
<?xml version="1.0" encoding="UTF-8"?> |
附註:此處顯示的正文內容可用作模板(在SDK中也可用)。 確保fromDate和toDate與validDays對應。位置、訪客型別和其他值在引用所使用的ISE時必須有效,只有這樣,呼叫才會成功。
附註:進行此呼叫時使用的憑據必須是對映到發起人組的有效發起人帳戶。這裡的ERS管理員憑據無法正常工作。有關詳細資訊,請參閱本指南的前一節。



預期輸出:

導航到ISE GUI > Master GuestReport,以驗證是否建立了帳戶:

附註:無法從發起人門戶指定每個訪客帳戶的自定義使用者名稱和密碼組合。這個API方法可以用來滿足這個要求。
以下是一些對訪客資料執行各種操作的API呼叫示例。SDK中提供了所有可用的選項及其格式。
| 方法 | GET |
| URL | https://<ISE-IP>:9060/ers/config/guestuser/name/{name} |
| 憑證 | 使用發起人帳戶憑據 |
| 標頭 | Content-Type:application/xml 接受:application/xml |

預期輸出:
200 OK
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns4:guestuser id="3b967932-86f8-11ea-aafe-72889dc971d1" name="johndoe"
xmlns:ers="ers.ise.cisco.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns4="identity.ers.ise.cisco.com">
<link rel="self" href="https://10.127.197.186:9060/ers/config/guestuser/name/johndoe" type="application/xml"/>
<customFields/>
<guestAccessInfo>
<fromDate>04/25/2020 18:55</fromDate>
<location>Delhi</location>
<toDate>04/28/2020 19:55</toDate>
<validDays>3</validDays>
</guestAccessInfo>
<guestInfo>
<company>Cisco</company>
<creationTime>04/25/2020 18:55</creationTime>
<emailAddress>abcd@cisco.com</emailAddress>
<enabled>false</enabled>
<firstName>John</firstName>
<lastName>Doe</lastName>
<notificationLanguage>English</notificationLanguage>
<password>9618</password>
<phoneNumber>9999998877</phoneNumber>
<smsServiceProvider>Global Default</smsServiceProvider>
<userName>johndoe</userName>
</guestInfo>
<guestType>Contractor (default)</guestType>
<personBeingVisited>abcd3@cisco.com</personBeingVisited>
<reasonForVisit>Visiting Bob from Accounting</reasonForVisit>
<sponsorUserId>1f7627f0-86f8-11ea-aafe-72889dc971d1</sponsorUserId>
<sponsorUserName>Sponsor_ERS</sponsorUserName>
<status>AWAITING_INITIAL_LOGIN</status>
</ns4:guestuser>

這需要首先從呼叫獲取訪客ID,然後使用此API中的該ID。在此示例中,訪客ID為「3b967932-86f8-11ea-aafe-72889dc971d1」。
| 方法 | PUT |
| URL | https://<ISE-IP>:9060/ers/config/guestuser/resetpassword/{id} |
| 憑證 | 使用發起人帳戶憑據 |
| 標頭 | Content-Type:application/xml 接受:application/xml |
此方法不允許指定新密碼。ISE將使用新的自動生成的密碼返回輸出。
預期輸出:
200 OK
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns3:operationResult
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns3="ers.ise.cisco.com">
<attributesList>
<attribute name="password" value="2557"/>
</attributesList>
</ns3:operationResult>
| 方法 | 刪除 |
| URL | https://<ISE-IP>:9060/ers/config/guestuser/name/{name} |
| 憑證 | 使用發起人帳戶憑據 |
| 標頭 | Content-Type:application/xml 接受:application/xml |

預期輸出:

目前沒有適用於此組態的驗證程序。
本節提供的資訊可用於對組態進行疑難排解。
一些常見錯誤及其可能的原因:
401 Unauthorized
<message type="ERROR" code="CRUD operation exception">
<title>Sponsor does not have permission to access REST Apis</title>
</message>
修正:這意味著用於使訪客帳戶的發起人帳戶對映到未啟用ERS訪問的發起人組。編輯與此對應的發起人組並使用程式設計介面(Guest REST API)啟用訪問思科ISE訪客帳戶。
400 Bad Request
<message type="ERROR" code="CRUD operation exception">
<title>Creating GuestUser failed due to com.cisco.cpm.guestaccess.validation.GuestAccessValidationException: Portal not found for portal session e1fc15a7-a170-4d6a-b02c-0ab7b0bc54ff</title>
修正:在ISE上輸入的門戶ID不存在或不正確。從發起人門戶的「Get」呼叫獲取該門戶的正確門戶ID。
200(確定):指示REST API成功執行了所需的操作。
201(建立):表示在集合內建立了資源。
204(無內容):這通常作為對PUT、POST或DELETE請求的響應傳送。
400(錯誤請求):用於請求語法格式錯誤、引數無效等問題的通用錯誤代碼。閱讀消息詳細資訊(如果可用)以瞭解原因。
401(未授權):這表示執行操作所使用的憑據錯誤、沒有憑據或帳戶無權執行此操作。
500(內部伺服器錯誤):指示伺服器端的問題。登入ISE可幫助瞭解原因。
有關ISE的REST API用法的詳細資訊,請參閱Guest REST API。
意見