我們正在向當前使用 Windows 集成身份驗證進行單點登錄的應用程式添加現代身份驗證 (OAuth/OIDC)。用戶登錄到 Windows 作業站,許多應用程式可以使用這些憑據,通過 Kerberos 透明地進行身份驗證。
我們的應用程式是一個基于 dot net web 服務的應用程式,我們為使用瀏覽器的用戶提供一個客戶端,并在 WinForms 中提供一個桌面客戶端。瀏覽器方案沒有問題,因為身份提供者將資訊存盤在瀏覽器中,這些資訊可以以類似于 WIA (IWA) 的方式跨應用程式重用,但我們不確定處理 WinForms 桌面應用程式案例的最佳方式。目前,WinForms 應用程式打開一個瀏覽器視窗以使用典型的基于瀏覽器的方法進行身份驗證。來自身份提供者的詳細資訊使用重定向和基于自定義協議的 URL 通過瀏覽器傳遞回 WinForms 應用程式。
這一切都很好,但用戶體驗不是特別緊張,并且對于用戶已經登錄的情況,要求他們在瀏覽器視窗中按下按鈕,因為當前基于 Chromium 的瀏覽器似乎不愿意在沒有最近的情況下進行重定向用戶互動。
有沒有更好的辦法?
uj5u.com熱心網友回復:
根據RFC8252的標準選項如您所描述:
- 通過系統瀏覽器登錄
- 使用基于環回或私有方案的 URL
我有一些關于此的博客文章,這是一個棘手的流程。帖子鏈接到您可以運行的代碼示例,以稍微探索 UX。您可能會發現環回 URL 避免了單擊按鈕的需要,盡管我個人認為基于私有方案的 URL 更清晰。
您可以執行一些 UX 操作,例如插頁式網頁,以更好地控制斷開連接的瀏覽器中發生的情況。我看到公司在桌面登錄后重定向到他們自己的網站,以改善用戶體驗。
從長遠來看,我希望這會被API Driven OAuth Flows取代,這樣你就永遠不需要離開應用程式。現在,您可能不得不忍受一些 UX linitations,但從安全角度來看,這是正確的流程。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/332897.html
