.NET插件 - 用于身份验证的多个IDP

时间:2016-02-17 22:11:32

标签: authentication adfs shibboleth

我们需要构建基于.NET的插件/组件,以便根据数据库配置启用针对ADFS,Azure AD和Shibboleth等多个IDP提供程序的身份验证。即,根据可配置参数,匿名用户将针对任何一个IDP(如ADFS,Azure AD或Shibboleth IDP)进行身份验证。

我们的应用程序网址(“https://www.contoso.com/ProcessToken.aspx”)将在所有3个提供商中注册为RP标识符。

我们不会对任何提供商进行任何web.config更改。

在运行时,用户将访问需要重定向到提供程序(ADFS,Shibboleth,Azure)上的任何登录页面URL以进行基于用户组织的身份验证的公共页面(Proesstoken.aspx)。 (例如:用户A到ADFS,用户B到Shibboleth等)

在IDP成功进行身份验证后,用户需要将提供程序(ADFS / Shibboleth / Azure AD)重定向到已注册的RP Url。

在重定向页面(ProcessToken.aspx)中,我们计划获取安全令牌并解密所需的声明。

主要目的是将身份验证与应用程序逻辑分离,并且将来可以扩展到其他提供程序。

PS:考虑像OWIN身份验证中间层,.NET组件等选项。

需要有关如何以及从何处开始的指导。

2 个答案:

答案 0 :(得分:0)

您可以将ADFS配置为使声明提供者信任与其他IDP的Owin将确认身份验证。困难的部分是从令牌中读取属性。 ADFS与Owin框架一起使用ws-federation,我还没弄清楚如何阅读SAML。

令人困惑的是,有一次答案是WIF,但现在4.51已经发布,WIF被转移到了Owin。多租户应用程序的文档充其量只是粗略的。

答案 1 :(得分:0)

查看实现此多身份验证方案的IdentityServer 3OWIN : ASP.NET MVC application with multiple authentication options

重点是您使用NuGet下载所需的所有协议,而不是使用OWIN通过app.use将它们全部下载。