標準授權地址的意義以及window.open方法是否可用?
標準授權地址的意義在於提供一個統一的身份驗證服務,以確保集團所有系統都能夠通過單一的授權中心進行身份驗證,從而實現單點登錄(SSO)功能。這意味著用戶只需要一次登錄(雙因子認證也是一次雙因子認證),就能夠訪問所有與授權中心相連的系統,無需逐個進行登錄操作,從而提高了用戶的使用便捷性和工作效率。 現在的使用的iframe、JS掃碼等功能,雖然可以讓開發者很自由地設計自己的身份驗證頁面,但破壞了單點登錄功能,且存跨域等安全問題。
使用標準授權地址,需要接入系統轉到標準授權地址,授權結束后再回到接入系統。這其實是一個很標準且最安全的流程,但可能會有些用戶一時不能理解他訪問的網站被授權中心的登錄界面覆蓋了。 當然隨著中央授權中心普及這種情況終將被大家接受。
此時大家可能會想到使用window.open,在網上也有很多OAuth2的案例使用此方法。 但Javascript方法,有可能被瀏覽器攔截,但一般用戶主動發起的不會被攔截,能正常使用。
所以開發者可以嘗試使用window.open此折中方法, 但中央授權中心還是強烈推薦直接原窗口中重載至標準授權地址。
- function ssoOidcOpen(authzUrl) {
- var wW = 400;
- var wH = 600;
- var top = (window.screen.availHeight - wH) / 2;
- var left = (window.screen.availWidth - wW) / 2;
- window.open(
- authzUrl,
- "oidc-authz-win",
- `width=${wW},height=${wH},top=${top},left=${left},titlebar=0;status=0;`
- );
- }