聯合註銷是指用戶使用外部身份提供程式登錄IdentityServer,然後用戶通過IdentityServer未知的工作流程註銷該外部身份提供程式的情況。當用戶註銷時,對IdentityServer進行通知將非常有用,這樣它就可以將用戶從IdentityServer和使用IdentityServer ...
聯合註銷是指用戶使用外部身份提供程式登錄IdentityServer,然後用戶通過IdentityServer未知的工作流程註銷該外部身份提供程式的情況。當用戶註銷時,對IdentityServer進行通知將非常有用,這樣它就可以將用戶從IdentityServer和使用IdentityServer的所有應用程式中簽出。
並非所有外部身份提供商都支持聯合註銷,但那些提供的機制將提供通知客戶端用戶已註銷的機制。此通知通常以<iframe>
來自外部身份提供商的“已註銷”頁面的請求的形式出現。然後IdentityServer必須通知其所有客戶(討論這裡),也通常在一個請求的<iframe>
形式從內外部身份提供的<iframe>
。
使聯合註銷成為特殊情況(與正常註銷相比)的原因是聯合註銷請求不是IdentityServer中的正常註銷端點。實際上,每個外部IdentityProvider都將在IdentityServer主機中具有不同的端點。這是因為每個外部身份提供者可能使用不同的協議,並且每個中間件都在不同的端點上進行偵聽。
所有這些因素的效果是沒有像正常註銷工作流那樣呈現“註銷”頁面,這意味著我們缺少對IdentityServer客戶端的註銷通知。我們必須為每個聯合註銷端點添加代碼,以呈現必要的通知以實現聯合註銷。
幸運的是,IdentityServer已包含此代碼。當請求進入IdentityServer並調用外部身份驗證提供程式的處理程式時,IdentityServer檢測這些請求是否是聯合註銷請求,如果是聯合註銷請求,它將自動呈現與此處描述的註銷相同的<iframe>
。簡而言之,自動支持聯合註銷。