ADFS+;IdentityServer3+;移动+;MVC
我正在构建一个具有以下上下文的原型ADFS+;IdentityServer3+;移动+;MVC,adfs,identityserver3,thinktecture,Adfs,Identityserver3,Thinktecture,我正在构建一个具有以下上下文的原型 两个客户端应用程序(MVC和Mobile) 将服务器3标识为依赖方 作为身份提供者的ADFS 3.0 IdentityServer3.WsFederation插件提供SAML支持 MVC端已经完成,但我不确定如何接近移动端 我以前的尝试使用了Web API和ADFS的“ADFS/services/trust/13/usernamemix”端点。这允许移动设备向API发送凭据,然后API使用ADFS的端点对用户进行身份验证。然后它将JWT令牌返回到移动应用程
- 两个客户端应用程序(MVC和Mobile)
- 将服务器3标识为依赖方
- 作为身份提供者的ADFS 3.0
- IdentityServer3.WsFederation插件提供SAML支持
首先,我不建议将SAML用于移动设备(特别是本机应用程序),因为SAML假定客户端是浏览器。在移动应用程序中,它打开浏览器进行身份验证,这并不是我认为最好的方法。我建议对移动设备使用OpenID/Oauth Idp可以支持多种登录协议,如WS-Fed、SAML2.0或OAuth。这取决于客户端是否使用相关协议 对于使用IdentityServer3的WS-Fed,有一个OWIN中间件可以帮助实现它
using Microsoft.Owin.Security.WsFederation;
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = "https://localhost:44309/core", //identityserver3
Wreply = "replyaddress",
MetadataAddress = "https://localhost/federationmetadata.xml",
AuthenticationType = "adfs",
Caption = "ADFS",
SignInAsAuthenticationType = "sometype"
});
上面的代码将带您进入ADFS登录屏幕,成功身份验证后,您将重定向回上面提到的
Wreply
地址,它将返回SAML 1.1响应。您需要解析它并使用它。如果您需要SAML令牌,您如何不可知?我们可以使用JWT或SAML令牌。