繁体   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