簡體   English   中英

使用ADFS和STS一次注銷

[英]Single Sign Out with ADFS and STS

目前,我們在使用ADFS 2.0和外部IP-STS進行單一注銷時遇到問題。 我們的設置是:RP1 <-信任-> ADFS 2.0 <-信任->定制IP-STS RP2 <-信任-> ADFS 2.0 <-信任->定制IP-STS

單一登錄部分的效果非常好,如果用戶已經使用自定義IP-STS登錄以訪問RP1,則此后他們可以在同一瀏覽器會話中訪問RP2,而無需再次登錄。

但是問題出在注銷過程中。 當用戶從RP1注銷時,通過使用Fiddler,我們可以看到:

  1. 注銷請求(wsignout1.0)發送到ADFS
  2. ADFS將注銷請求轉移到自定義IP-STS
  3. 自定義IP-STS進程正確注銷操作,然后返回到ADFS
  4. ADFS確實返回到(已注銷)RP1
  5. RP1不再經過身份驗證,因此當然會提示您再次登錄(正確)
  6. 這里有問題: RP2仍然可以正常工作(具有先前的聲明)。 而且ADFS不會將任何wsignoutcleanup1.0操作發送到RP2。

我假設ADFS應該為具有相同會話的所有RP登出,但事實並非如此。 我錯了嗎? 還是我在這里缺少某種配置?

當然,我們可以選擇從自定義IP-STS向RP顯式發送wsignoutcleanup1.0操作到RP,但是我們需要解析“ wctx”以獲得我不想使用的原始RP Url。 我還嘗試將wsignoutcleanup1.0操作從“自定義IP-STS”發送回ADFS(步驟3),但它也無濟於事。

我的猜測是,您不是通過wsignoutcleanup返回iframe,而是返回圖像。 因此,adfs不會返回嵌套的 iframe,換句話說,它不會正確升級注銷。

正確的順序是

1個應用程序將注銷請求發送到adfs

2 adfs將請求升級到外部sts

3 sts使用wsignoutcleanup返回指向經過身份驗證的應用程序(在這種情況下為adfs)的iframe序列

4 adfs將帶wsignoutcleanup的嵌套iframe返回給所有經過身份驗證的應用程序,包括rp1和rp2

聽起來好像自定義STS沒有將簽出清除發送到ADFS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM