我们需要构建基于.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组件等选项。
需要有关如何以及从何处开始的指导。
答案 0 :(得分:0)
您可以将ADFS配置为使声明提供者信任与其他IDP的Owin将确认身份验证。困难的部分是从令牌中读取属性。 ADFS与Owin框架一起使用ws-federation,我还没弄清楚如何阅读SAML。
令人困惑的是,有一次答案是WIF,但现在4.51已经发布,WIF被转移到了Owin。多租户应用程序的文档充其量只是粗略的。
答案 1 :(得分:0)
查看实现此多身份验证方案的IdentityServer 3或OWIN : ASP.NET MVC application with multiple authentication options。
重点是您使用NuGet下载所需的所有协议,而不是使用OWIN通过app.use将它们全部下载。