本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹通過REST身份服務通過資源所有者密碼憑據實現的Cisco ISE 3.0與Azure AD的整合。
本文檔介紹如何配置身份服務引擎(ISE)3.0與Microsoft(MS)Azure Active Directory(AD)的整合並對其進行故障排除,該整合是通過在資源所有者密碼憑據(ROPC)的幫助下實現的具象狀態傳輸(REST)身份(ID)服務實現的。
思科建議您瞭解以下主題的基本知識:
ISE
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
ISE REST ID功能基於ISE 3.0 - REST身份驗證服務中引入的新服務。此服務負責與Azure AD over Open Authorization(OAuth)ROPC交換進行通訊,以便執行使用者身份驗證和組檢索。預設情況下禁用REST Auth服務,在管理員啟用該服務後,它將在部署中的所有ISE節點上運行。由於在使用者身份驗證時與雲進行REST Auth服務通訊,路徑上的任何延遲都會導致身份驗證/授權流出現額外的延遲。此延遲不在ISE控制範圍內,必須仔細規劃和測試REST身份驗證的任何實施,以避免對其他ISE服務產生影響。
1. Azure雲管理員建立新的應用程式(應用)註冊。此應用的詳細資訊稍後將在ISE上使用,以便與Azure AD建立連線。
2. Azure雲管理員必須使用以下內容配置應用:
3. ISE管理員啟用REST身份驗證服務。在執行任何其他操作之前,必須先完成此操作。
4.將更改寫入配置資料庫並在整個ISE部署中複製。
5.在所有節點上啟動REST身份驗證服務。
6. ISE管理員使用步驟2中的詳細資訊配置REST ID儲存。
7.將更改寫入配置資料庫並在整個ISE部署中複製。
8. ISE管理員建立新的身份庫序列或修改已存在的身份庫序列並配置身份驗證/授權策略。
9.將更改寫入配置資料庫並在整個ISE部署中複製。
10.端點啟動身份驗證。根據ROPC協定規範,使用者密碼必須通過加密HTTP連線以明文形式提供給Microsoft身份平台;因此,到目前為止,ISE支援的唯一可用身份驗證選項為:
11.通過Radius與ISE策略服務節點(PSN)交換。
12. Process Runtime(PrRT)通過內部API向REST ID服務傳送包含使用者詳細資訊(使用者名稱/密碼)的請求。
13. REST ID服務將OAuth ROPC請求通過超文本傳輸協議安全(HTTPS)傳送到Azure AD。
14. Azure AD執行使用者身份驗證並提取使用者組。
15.身份驗證/授權結果返回到ISE。
在點15之後,身份驗證結果和提取的組返回到PrRT,其中涉及策略評估流程並分配最終身份驗證/授權結果。Access-Accept with attributes from the authorization profile或Access-Reject returned to Network Access Device(NAD)。
1.找到AppRegistration Service,如下圖所示。
圖 2.
a.在全域性搜尋欄中鍵入AppRegistration。
b.按一下App registration service。
2.建立新的應用註冊。
圖 3.
3.註冊新應用。
圖 4.
a.定義應用的名稱。
b.定義哪些帳戶可以使用新應用程式。
c.按收銀機按鈕。
4.導覽至Certificate & secrets。
圖 5.
5.建立New client secret
,如下圖所示。
圖 6.
6.設定client secret
如圖所示。
圖 7.
a.定義新金鑰的說明。
b.選擇到期期間。
c.按一下Add
按鈕。
7.複製並儲存加密值(以後在整合配置時需要在ISE上使用)。
圖 8.
8.導航回到Overview
「」頁籤,以便複製App ID
和。
圖 9.
9.為應用啟用ROPC。
圖 10.
a.導航到選項卡Authentication
。
b.找到「Advanced settings(高級設定)」部分。
c.選擇Yes
for — 將應用程式視為公共客戶端。
d.按一下Save
按鈕。
10.Add group claims
到App。
圖 11.
a.導航到令牌配置。
b.按on - Add groups claim
。
11.定義需要新增的組型別
圖 12.
a.選擇 — 所有組。
b.按一下Add
按鈕。
12.新增API permissions
。
圖 13.
a.導航至API permissions
。
b.按一下Add permission
。
13.新增權Microsoft Graph
限。
圖 14.
14.新增Application permissions
。
圖 15.
15.新增權Group.Read.All
限。
圖 16.
a.找到API型別 — 組。
b.選擇Group.Read.All
。
c.按一下Add permissions
按鈕。
附註:藉助不同的API許可權,可以通過多種方式從Azure AD獲取使用者組資料。在Cisco TAC實驗中,此示例中介紹的方法被證明是成功的。如果您的Azure AD管理員建議使用其他API許可權,請使用其他API許可權。
16.Grant admin consent
API許可權。
圖 17.
17.確認管理員的授權同意。
圖 18.
此時,您可以考慮在Azure AD端完全配置整合。
1.定位至「身份管理」設定。
圖 19.
導航至Administration > Identity Management> Settings
。
2.啟用REST ID服務(預設情況下禁用)。
圖 20.
導航到REST ID Store Settings
,然後更改REST ID儲存設定的狀態Enable
,然後更改Submit
。
3.建立REST ID儲存。
圖 21.
切換到該External Identity Sources
頁籤,按一下REST (ROPC)
子頁籤,然後按一下Add。
4.配置REST ID儲存。
圖 22.
a.定義ID儲存名稱。稍後配置授權策略時,可在ISE詞典清單中找到此名稱。此外,此名稱顯示在身份驗證策略設定中可用的ID儲存清單中,以及身份儲存序列配置中可用的ID儲存清單中。
b.提供客戶端ID(在Azure AD整合配置部分的步驟8中從Azure AD獲取)。
c.提供客戶端密碼(在Azure AD整合配置部分的步驟7中從Azure AD獲取)。
d.提供租戶ID(在Azure AD整合配置部分的步驟8中從Azure AD獲取)。
e.配置使用者名稱Sufix — 預設情況下,ISE PSN使用終端使用者提供的使用者名稱,該使用者名稱以sAMAccountName格式提供(短使用者名稱,例如bob);在這種情況下,Azure AD無法找到使用者。使用者名稱Sufix是新增到使用者提供的使用者名稱中的值,以便將該使用者名稱設定為UPN格式。
注意:由於ROPC在身份驗證期間依賴使用者名稱屬性,因此僅限於使用者身份驗證。Azure AD中的裝置對象沒有使用者名稱屬性。
f.按測試連線以確認ISE可以使用提供的應用詳細資訊來建立與Azure AD的連線。
g.按「載入組」以將Azure AD中的可用組新增到REST ID儲存中。此處的示例顯示了管理員體驗的樣子。
附註:請注意思科錯誤ID CSCvx00345的缺陷,因為它會導致組無法載入。該缺陷已在ISE 3.0補丁2中修復。
圖 23.
h.提交您的更改。
5.在此步驟中,考慮建立新的身份儲存序列,其中包括新建立的REST ID儲存。
6.當REST ID儲存或包含已分配給身份驗證策略的身份儲存序列時,將Process Failure的預設操作從DROP更改為REJECT(如圖所示)。
圖 24.
a.找到使用REST ID儲存的身份驗證策略。
b.開啟「選項」下拉選單。
c. Process Failed的更改預設操作從DROP更改為REJECT。
當REST ID儲存內發生特定故障時,需要這樣才能避免在NAD端標籤為失效的PSN,如下所示:
7.將REST ID儲存字典新增到授權策略中。
圖 25.
a.開啟「所有字典」下拉選單。
b.使用與REST ID儲存相同的方式找到名為的字典。
8.新增外部身份組(自ISE 3.0起,REST ID儲存字典中唯一可用的屬性是外部組)。
圖 26.
在Dot1x身份驗證的情況下,可以使用網路訪問字典中的EAP隧道條件來匹配EAP-TTLS嘗試,如下圖所示。
圖 27.
a.定義EAP隧道等於EAP-TTLS以匹配需要轉發到REST ID儲存的嘗試。
b.在REST ID儲存中直接選擇或身份儲存序列(包含在「使用」列中)。
在單個授權策略內部,來自Azure AD的外部組可以與EAP隧道型別一起使用:
圖 28.
對於基於VPN的流,您可以使用隧道組名稱作為區分因素:
身份驗證策略:
授權策略:
圖 29.
使用本節內容,確認您的組態是否正常運作。
1.確認REST身份驗證服務在ISE節點上運行。
要檢查此項,需要在目標ISE節點的安全外殼(SSH)外殼中執行show application status ise命令:
skuchere-ise30-1/admin# show application status ise
ISE PROCESS NAME STATE PROCESS ID
--------------------------------------------------------------------
Database Listener running 101790
Database Server running 92 PROCESSES
Application Server running 39355
Profiler Database running 107909
ISE Indexing Engine running 115132
AD Connector running 116376
M&T Session Database running 107694
M&T Log Processor running 112553
Certificate Authority Service running 116226
EST Service running 119875
SXP Engine Service disabled
Docker Daemon running 104217
TC-NAC Service disabled
pxGrid Infrastructure Service disabled
pxGrid Publisher Subscriber Service disabled
pxGrid Connection Manager disabled
pxGrid Controller disabled
PassiveID WMI Service disabled
PassiveID Syslog Service disabled
PassiveID API Service disabled
PassiveID Agent Service disabled
PassiveID Endpoint Service disabled
PassiveID SPAN Service disabled
DHCP Server (dhcpd) disabled
DNS Server (named) disabled
ISE Messaging Service running 104876
ISE API Gateway Database Service running 106853
ISE API Gateway Service running 110426
Segmentation Policy Service disabled
REST Auth Service running 63052
SSE Connector disabled
2.驗證身份驗證時是否使用了REST ID儲存(檢查步驟)。部分)。
a.PSN使用選定的REST ID儲存啟動純文字檔案身份驗證。
b.已與Azure雲建立連線。
c.實際驗證步驟 — 注意此處顯示的延遲值。如果您使用安全雲的所有身份驗證都遇到嚴重延遲,這會影響其他ISE流,因此整個ISE部署變得不穩定。
d.確認身份驗證成功。
e.確認答覆中提供的群組資料。
f.使用使用者組資料填充的會話上下文。有關ISE會話管理流程的更多詳細資訊,請考慮閱讀本文的 — 連結。
3.確認已選擇預期的身份驗證/授權策略(對於詳細的身份驗證報告的此調查概述部分)。
圖 30.
本節提供的資訊用於對組態進行疑難排解。
若要疑難排解REST身份驗證服務的所有問題,需要首先複查ADE.log文件。支援捆綁包位置-/support/adeos/ade
REST Auth Service的搜尋關鍵字是 — ROPC-control。
此範例顯示REST身份驗證服務如何啟動:
2020-08-30T11:15:38.624197+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Starting
2020-08-30T11:15:39.217794+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] inside docker_image_exists
2020-08-30T11:15:39.290301+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Image exist with ID =
2020-08-30T11:15:39.291858+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Docker image doesn't exist
2020-08-30T11:15:39.293768+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Load docker image ROPC
2020-08-30T11:15:39.359490+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Error: No such image: ROPC
2020-08-30T11:15:42.789242+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Loaded image: ROPC:latest
2020-08-30T11:15:42.830411+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Docker image ROPC successfully loaded.
2020-08-30T11:15:42.832131+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Setting up REST Auth Service
2020-08-30T11:15:42.844051+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] inside docker_create_container
2020-08-30T11:15:53.479968+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Copying binaries to the docker container...
2020-08-30T11:15:55.325973+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Container run status false
2020-08-30T11:15:57.103245+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Container run status true
2020-08-30T11:15:57.105752+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Creating ROPC pid file
2020-08-30T11:15:57.278374+02:00 skuchere-ise30-1 admin: info:[application:operation:ROPC-control.sh] Container run status true
在服務無法啟動或意外中斷的情況下,始終應在有問題的時間範圍內檢視ADE.log。
在使用REST ID儲存區時,如果身份驗證失敗,則始終需要從詳細的身份驗證報告開始。在「其他屬性」區域中,您可以檢視包含由Azure雲返回的錯誤的RestAuthErrorMsg部分:
圖 31.
在ISE 3.0中,由於REST ID功能的受控引進,預設情況下啟用它的調試。所有與REST ID相關的日誌都儲存在ROPC檔案中,這些檔案可以通過CLI檢視:
skuchere-ise30-1/admin# sh logging application | i ropc
755573 Oct 04 2020 09:10:29 ropc/ropc.log
skuchere-ise30-1/admin# sh logging application ropc/ropc.log
23:49:31.449 [http-nio-9601-exec-6] DEBUG c.c.i.r.c.ROPCController - Starting ROPC auth flow
23:49:31.788 [http-nio-9601-exec-6] DEBUG c.c.i.r.u.ScimUtility - Found user and pass in the SCIM filter
在安裝了補丁的ISE 3.0上,請注意檔名是rest-id-store.log,而不是ropc.log。提供的上一個搜尋示例有效,因為資料夾名稱未更改。
或者從ISE支援包提取這些檔案。
以下是幾個顯示不同工作和非工作場景的日誌示例:
1. ISE節點不信任Azure Graph時的證書錯誤。當組未載入到REST ID儲存設定中時,可以看到此錯誤。
20:44:54.420 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start proxy load for URI 'https://graph.microsoft.com/v1.0/groups'
20:44:54.805 [http-nio-9601-exec-7] ERROR c.c.i.r.p.a.AzureIdentityProviderFacade - Couldn't fetch application groups, REST error
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
此問題表示Microsoft graph API證書不受ISE信任。ISE 3.0.0.458未在受信任儲存中安裝DigiCert全域性根G2 CA。這一點記錄在缺陷中
— 思科錯誤ID CSCvv80297要解決此問題,您需要在ISE受信任儲存中安裝DigiCert全域性根G2 CA,並將其標籤為受思科服務信任。
證書可從此處下載 — https://www.digicert.com/kb/digicert-root-certificates.htm
2.錯誤的應用程式密碼。
10:57:53.200 [http-nio-9601-exec-1] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
10:57:54.205 [http-nio-9601-exec-1] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '401'. Error - '{"error":"invalid_client","error_description":"AADSTS7000215: Invalid client secret is provided.\r\nTrace ID: 99cc29f7-502a-4aaa-b2cf-1daeb071b900\r\nCorrelation ID: a697714b-5ab2-4bd1-8896-f9ad40d625e5\r\nTimestamp: 2020-09-29 09:01:36Z","error_codes":[7000215],"timestamp":"2020-09-29 09:01:36Z","trace_id":"99cc29f7-502a-4aaa-b2cf-1daeb071b900","correlation_id":"a697714b-5ab2-4bd1-8896-f9ad40d625e5","error_uri":"https://login.microsoftonline.com/error?code=7000215"}'
10:57:54.206 [http-nio-9601-exec-1] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.InvalidApplicationAuthException: AADSTS7000215: Invalid client secret is provided.
Trace ID: 99cc29f7-502a-4aaa-b2cf-1daeb071b900
Correlation ID: a697714b-5ab2-4bd1-8896-f9ad40d625e5
Timestamp: 2020-09-29 09:01:36Z - Error Codes: [7000215]
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateApplication(AzureIdentityProviderFacade.java:117)
3.錯誤的應用程式ID。
21:34:36.090 [http-nio-9601-exec-4] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
21:34:36.878 [http-nio-9601-exec-4] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '400'. Error - '{"error":"unauthorized_client","error_description":"AADSTS700016: Application with identifier '825aab1f-be45-4d53-92fe-bb756' was not found in the directory '83cc4b2c-c608-4563-b6bd-dc8e83977ff6'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You have sent your authentication request to the wrong tenant.\r\nTrace ID: 6dbd0fdd-0128-4ea8-b06a-5e78f37c0100\r\nCorrelation ID: eced0c34-fcc1-40b9-b033-70e5abe75985\r\nTimestamp: 2020-08-31 19:38:34Z","error_codes":[700016],"timestamp":"2020-08-31 19:38:34Z","trace_id":"6dbd0fdd-0128-4ea8-b06a-5e78f37c0100","correlation_id":"eced0c34-fcc1-40b9-b033-70e5abe75985","error_uri":"https://login.microsoftonline.com/error?code=700016"}'
21:34:36.879 [http-nio-9601-exec-4] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.InvalidApplicationAuthException: AADSTS700016: Application with identifier '825aab1f-be45-4d53-92fe-bb756' was not found in the directory '83cc4b2c-c608-4563-b6bd-dc8e83977ff6'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You have sent your authentication request to the wrong tenant.
Trace ID: 6dbd0fdd-0128-4ea8-b06a-5e78f37c0100
Correlation ID: eced0c34-fcc1-40b9-b033-70e5abe75985
Timestamp: 2020-08-31 19:38:34Z - Error Codes: [700016]
4.未找到使用者。
10:43:01.351 [http-nio-9601-exec-2] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '400'. Error - '{"error":"invalid_grant","error_description":"AADSTS50034: The user account bob does not exist in the 83cc4b2c-c608-4563-b6bd-dc8e83977ff6 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: 9417a19e-66f8-4887-ab7a-a9ee268b1a00\r\nCorrelation ID: df3722ff-cd29-4ea2-98fc-fff0117a8db9\r\nTimestamp: 2020-08-31 08:46:57Z","error_codes":[50034],"timestamp":"2020-08-31 08:46:57Z","trace_id":"9417a19e-66f8-4887-ab7a-a9ee268b1a00","correlation_id":"df3722ff-cd29-4ea2-98fc-fff0117a8db9","error_uri":"https://login.microsoftonline.com/error?code=50034"}'
10:43:01.352 [http-nio-9601-exec-2] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.ROPCResponseErrorException: {"error":"invalid_grant","error_description":"AADSTS50034: The user account bob does not exist in the 83cc4b2c-c608-4563-b6bd-dc8e83977ff6 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: 9417a19e-66f8-4887-ab7a-a9ee268b1a00\r\nCorrelation ID: df3722ff-cd29-4ea2-98fc-fff0117a8db9\r\nTimestamp: 2020-08-31 08:46:57Z","error_codes":[50034],"timestamp":"2020-08-31 08:46:57Z","trace_id":"9417a19e-66f8-4887-ab7a-a9ee268b1a00","correlation_id":"df3722ff-cd29-4ea2-98fc-fff0117a8db9","error_uri":"https://login.microsoftonline.com/error?code=50034"}
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateUser(AzureIdentityProviderFacade.java:87)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.authenticateUser(AzureROPCFlow.java:100)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.doEntireFlow(AzureROPCFlow.java:69)
at com.cisco.ise.ROPC.controllers.ROPCController.ROPCAuthFlow(ROPCController.java:168)
at com.cisco.ise.ROPC.controllers.ROPCController.get(ROPCController.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
5.使用者密碼已過期 — 通常可以為新建立的使用者生成,因為Azure管理員定義的密碼需要在登入到Office365時更改。
10:50:55.096 [http-nio-9601-exec-4] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '401'. Error - '{"error":"invalid_grant","error_description":"AADSTS50055: The password is expired.\r\nTrace ID: 776120b2-9687-4f88-bf93-822a4d019c00\r\nCorrelation ID: 5defbdc6-3a7f-425f-91e9-ba3c10fcc410\r\nTimestamp: 2020-08-31 08:54:51Z","error_codes":[50055],"timestamp":"2020-08-31 08:54:51Z","trace_id":"776120b2-9687-4f88-bf93-822a4d019c00","correlation_id":"5defbdc6-3a7f-425f-91e9-ba3c10fcc410","error_uri":"https://login.microsoftonline.com/error?code=50055","suberror":"user_password_expired"}'
10:50:55.097 [http-nio-9601-exec-4] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.ROPCResponseErrorException: {"error":"invalid_grant","error_description":"AADSTS50055: The password is expired.\r\nTrace ID: 776120b2-9687-4f88-bf93-822a4d019c00\r\nCorrelation ID: 5defbdc6-3a7f-425f-91e9-ba3c10fcc410\r\nTimestamp: 2020-08-31 08:54:51Z","error_codes":[50055],"timestamp":"2020-08-31 08:54:51Z","trace_id":"776120b2-9687-4f88-bf93-822a4d019c00","correlation_id":"5defbdc6-3a7f-425f-91e9-ba3c10fcc410","error_uri":"https://login.microsoftonline.com/error?code=50055","suberror":"user_password_expired"}
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateUser(AzureIdentityProviderFacade.java:87)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.authenticateUser(AzureROPCFlow.java:100)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.doEntireFlow(AzureROPCFlow.java:69)
at com.cisco.ise.ROPC.controllers.ROPCController.ROPCAuthFlow(ROPCController.java:168)
at com.cisco.ise.ROPC.controllers.ROPCController.get(ROPCController.java:85)
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
6.由於API許可權錯誤,無法載入組。
12:40:06.624 [http-nio-9601-exec-9] ERROR c.c.i.r.u.RestUtility - Error response in 'GET' request. Status - '403'. Error - '{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"date": "2020-08-30T10:43:59",
"request-id": "da458fa4-cc8a-4ae8-9720-b5370ad45297"
}
}
}'
7.當Azure端上不允許使用ROPC時,身份驗證失敗。
11:23:10.824 [http-nio-9601-exec-2] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
11:23:11.776 [http-nio-9601-exec-2] ERROR c.c.i.r.u.RestUtility - Error response in 'POST' request. Status - '401'. Error - '{"error":"invalid_client","error_description":"AADSTS7000218: The request body must contain the parameter: 'client_assertion' or 'client_secret'.\r\nTrace ID: 856d1ced-06c3-4446-a856-813789579b00\r\nCorrelation ID: b0a9cb82-4f37-46b3-abf5-361d8ce34094\r\nTimestamp: 2020-08-31 09:27:08Z","error_codes":[7000218],"timestamp":"2020-08-31 09:27:08Z","trace_id":"856d1ced-06c3-4446-a856-813789579b00","correlation_id":"b0a9cb82-4f37-46b3-abf5-361d8ce34094","error_uri":"https://login.microsoftonline.com/error?code=7000218"}'
11:23:11.777 [http-nio-9601-exec-2] ERROR c.c.i.r.c.ROPCController - Request related Error
com.cisco.ise.ROPC.entities.exceptions.ROPCResponseErrorException: {"error":"invalid_client","error_description":"AADSTS7000218: The request body must contain the parameter: 'client_assertion' or 'client_secret'.\r\nTrace ID: 856d1ced-06c3-4446-a856-813789579b00\r\nCorrelation ID: b0a9cb82-4f37-46b3-abf5-361d8ce34094\r\nTimestamp: 2020-08-31 09:27:08Z","error_codes":[7000218],"timestamp":"2020-08-31 09:27:08Z","trace_id":"856d1ced-06c3-4446-a856-813789579b00","correlation_id":"b0a9cb82-4f37-46b3-abf5-361d8ce34094","error_uri":"https://login.microsoftonline.com/error?code=7000218"}
at com.cisco.ise.ROPC.providers.azure.AzureIdentityProviderFacade.authenticateUser(AzureIdentityProviderFacade.java:87)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.authenticateUser(AzureROPCFlow.java:100)
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.doEntireFlow(AzureROPCFlow.java:69)
at com.cisco.ise.ROPC.controllers.ROPCController.ROPCAuthFlow(ROPCController.java:168)
at com.cisco.ise.ROPC.controllers.ROPCController.get(ROPCController.java:85)
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
8.身份驗證失敗,因為使用者不屬於Azure端的任何組。
21:54:55.976 [http-nio-9601-exec-5] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
21:54:57.312 [http-nio-9601-exec-5] ERROR c.c.i.r.p.a.AzureROPCFlow - Missing claims in the id token: "name" or "groups"
21:54:57.313 [http-nio-9601-exec-5] ERROR c.c.i.r.c.ROPCController - Server Error
com.cisco.ise.ROPC.entities.exceptions.JsonParseException: Json exception: Missing claims in the id token: "name" or "groups"
at com.cisco.ise.ROPC.providers.azure.AzureROPCFlow.validateIdTokenPayload(AzureROPCFlow.java:93)
9.成功的使用者身份驗證和組檢索。
11:46:03.035 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - Starting ROPC auth flow
11:46:03.037 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.ScimUtility - Found user and pass in the SCIM filter
11:46:03.037 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - Getting the right ROPC handler for the request IDPType AZURE
11:46:03.037 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - Getting user groups from handler
11:46:03.038 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start building http client
11:46:03.039 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start proxy load for URI 'https://login.microsoftonline.com/83cc4b2c-c608-4563-b6bd-dc8e83977ff6/oauth2/v2.0/token'
11:46:03.039 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start check if host is bypass
11:46:03.039 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Iterating bypass hosts '192.168.1.10,10.201.228.98,10.62.145.72,172.16.201.204,172.16.201.203' to find host 'login.microsoftonline.com'
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Proxy server found with address '192.168.255.40' and port '8080', load to httpclient
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - Start adding proxy credentials to builder
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.u.HttpClientWrapper - No credentials found for proxy
11:46:03.040 [http-nio-9601-exec-7] DEBUG c.c.i.r.e.c.CertificateCache - Created SSLContext with TLSv1.2 algorithm
11:46:03.041 [http-nio-9601-exec-7] DEBUG c.c.i.r.e.c.CertificateCache - SSLContext initialized with trust managers
11:46:04.160 [http-nio-9601-exec-7] DEBUG c.c.i.r.c.ROPCController - The ROPCHandlerResponse is: {
"schemas" : [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
"userName" : "username",
"name" : {
"formatted" : "bob"
},
"displayName" : "bob",
"groups" : [ {
"value" : "17db2c79-fb87-4027-ae13-88eb5467f25b"
} ],
"roles" : [ ]
}
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
10-Jan-2023 |
重新認證 |
1.0 |
27-Oct-2020 |
初始版本 |