2014-06-20 50 views
0

我有一個使用Azure ADFS和Azure ACS進行身份驗證的MVC應用程序。當用戶首次登錄時,他們將被重定向到Azure ASC進行身份驗證。成功完成後,用戶將通過令牌重新回到站點,並且可以正常使用系統。Azure ACS在登出後不強制重新進行身份驗證

當用戶註銷時,他們被重定向到註銷頁面,然後返回到原始登錄屏幕。問題是,當他們再次點擊登錄鏈接時,它會自動再次登錄用戶,而不需要他們重新進行身份驗證。這意味着,這是不可能改變用戶在不關閉瀏覽器,如果用戶離開瀏覽器窗口打開的任何人都可以單擊登錄鏈接並登錄爲用戶

我的註銷代碼如下:

public void Logout() 
    { 
     var fc = FederatedAuthentication.FederationConfiguration.WsFederationConfiguration; 
     var signOutMessage = new SignOutRequestMessage(new Uri(fc.Issuer), fc.Realm); 
     FederatedAuthentication.WSFederationAuthenticationModule.SignOut(signOutMessage.WriteQueryString()); 
    } 

signOutMessage.WriteQueryString()生成以下內容:

https://myacsnamespace.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wreply=http%3a%2f%2flocalhost%3a44301%2f 

有我在ACS配置不正確的東西,或者是我的代碼缺少的東西。我無法弄清楚如何自動停止重新認證舊用戶

回答

0

通常,adfs登錄應該要求用戶重新進行認證。
但是,如果用戶登錄到域內的計算器,她將自動登錄(因爲她已登錄到活動目錄)。在域外的計算機上,用戶需要提供密碼,請求瀏覽器 您想如何改變這種行爲? example of browser requesting credentials (in dutch)

+0

等待,因爲「計算機」何時將登錄憑據傳遞給瀏覽器? IE也許這樣做,但是我希望Firefox和Chrome不會。 – mxmissile

+0

它更像是在您的網絡服務器上使用Windows身份驗證。這也是自動發生的。我不知道每種情況下發生的事情的確切流程。我只能確定(因爲我們使用它),無論瀏覽器如何,它都以這種方式工作。我*假設*在服務器和客戶端之間進行某種身份驗證協商。在域內,這是通過單向和域外adfs服務器切換到http基本身份驗證的方式完成的... –

+0

我認爲您指的是Azure ADFS何時與本地活動目錄集成。我們的系統並非如此。用戶必須使用ACS以與其Windows登錄無關的用戶名登錄。 – Neil

相關問題