簡體   English   中英

使用ADFS身份驗證以其他用戶身份登錄

[英]Login as different user using ADFS Authentication

我是在Web應用程序中使用ADFS的新手,需要一些幫助。

我已經創建了一個簡單的mvc Web應用程序,並且似乎在運行ADFS(當我訪問通過adfs服務器進行身份驗證並重定向到我的網站的網站時)。 現在,我想要的功能之一是讓管理員能夠在我的網站上模擬用戶,以便他們可以像模仿用戶一樣看到該網站。 例如,如果我以John Smith身份登錄,則我的HttpContext.Current.User是John Smith。 我能夠輕松地在舊站點上執行此操作,因為我可以設置auth cookie。

那么問題是有辦法做到這一點嗎?

一些代碼可能有助於了解我的設置。

Startup.Auth.cs

public partial class Startup
{
    private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
    private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];

    public void ConfigureAuth(IAppBuilder app)
    {
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseWsFederationAuthentication(
            new WsFederationAuthenticationOptions
            {
                Wtrealm = realm,
                MetadataAddress = adfsMetadata
            });
    }
}

任何幫助,將不勝感激。

你真的不能那樣做。 當ADFS對用戶進行身份驗證時,它將生成一個已簽名的令牌,該令牌將發送回您的Web應用程序。 WsFederationAuthentication中間件接收此令牌,對其進行驗證並從中創建聲明主體。

您的cookie中間件將索賠主體序列化為一個cookie,該cookie在應用程序之間來回移動。

為了使您想要的工作正常,您需要使ADFS為其他人發行令牌。 沒有他們的憑據將無法正常工作。

通常,您可以讓應用程序根據用戶所處的角色來更改其外觀。您可以讓ADFS針對SQL存儲執行角色查找,並讓其向用戶發出不同的角色聲明。 這樣一來,您就可以像具有相同角色的其他人一樣來體驗該應用程序。

這是使用ADFS時以其他用戶身份登錄的方式:

使用Windows上的ADFS 2.0,可以通過更改c:\\ windows \\ inetpub \\ adfs \\ ls目錄下web.config文件中本地身份驗證類型的順序,將adfs服務器配置為使用不同的身份驗證方法。

方法1:當ADFS使用Windows身份驗證進行身份驗證時

按住SHIFT鍵並右鍵單擊“瀏覽器”鏈接,以使用不同的憑據打開瀏覽器。 然后訪問您的應用程序,您將以運行瀏覽器的所有憑據登錄。

要么

注銷和/或切換用戶在其工作站上。

方法2:更改ADFS服務器以使用基於窗體的身份驗證。 注銷應用程序。

也可以通過以下鏈接退出adfs服務器:

HTTPS:// {DNS_name_of_RP_STS} /adfs/ls/?wa=wsignout1.0

然后,返回到應用程序並登錄。

暫無
暫無

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

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