[英]Using Passive Authentication in IdentityServer with OWIN in MVC5
我正在尝试设置一个概念证明,以便将我们的表单身份验证与SQL成员资格提供程序一起转移到代理身份验证过程中。 为了做到这一点,我计划利用Thinktecture的Identity Server 2作为身份提供者。
我已经下载了IdentityServer 2并安装了它并尝试按照此处的说明进行操作: http : //www.cloudidentity.com/blog/2014/02/20/ws-federation-in-microsoft-owin-componentsa-quick-start/
但是,每当我尝试访问受AuthorizeAttribute限制的控制器操作时,我得到一个401的HttpResponse而不是重定向到IdentityServer的登录页面。 Startup.Auth.cs设置如下:
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(WsFederationAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType
});
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
MetadataAddress = "https://dvancuykidstrial.cloudapp.net/FederationMetadata/2007-06/FederationMetadata.xml"
,Wtrealm = "http://owin2.testing.com/"
,AuthenticationMode = AuthenticationMode.Passive
,BackchannelCertificateValidator = new FakeCertificateValidator()
});
}
}
顺便提一下,FakeCertificateValidator只是ICertificateValidator的一个实现,它只在调用Validate函数时返回true。 这只是让我通过我用于PoC的自签名证书。
public class FakeCertificateValidator : ICertificateValidator
{
public bool Validate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
}
谁能看到我在这里做错了什么?
我从这里得到了答案: https : //katanaproject.codeplex.com/discussions/551624 。 问题是我设置了以下内容:
AuthenticationMode = AuthenticationMode.Passive
根据讨论,两种模式之间的差异如下:
在被动模式下,需要通过名称调用中间件。 在活动模式下,中间件将启动任何401响应
我假设(错误地)两种模式之间的差异更像是: WIF中的主动和被动联合
我正在使用OpenIdConnect而不是联盟,但症状是相同的,所以这可能会有所帮助。 在我从nuGet获取3.0.0-rc1 OWIN软件包后,我的应用程序正常运行。 此外我的代理设置由于某种原因没有被提取,所以我不得不在我的web.config中添加一个部分:
<system.net>
<defaultProxy>
<proxy proxyaddress="http://your.proxy.server.com"/>
</defaultProxy>
</system.net>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.