我正在使用以下背景构建原型。
MVC方面已经完成,但我不确定如何接近移动端。
我以前的尝试使用了Web API和ADFS' " ADFS /服务/信任/ 13 / usernamemixed"端点。这允许移动设备向API发送凭证,然后API使用ADFS的端点对用户进行认证。然后它将JWT令牌返回给移动应用程序。
我们必须从Idp接收SAML令牌(可能是ADFS或不同的Idp),但我们的应用程序与令牌类型无关。
我有两个问题。
答案 0 :(得分:0)
首先,我不推荐SAML for Mobile设备(特别是原生应用),因为SAML将客户端视为浏览器。在移动应用程序中,它会打开一个浏览器进行身份验证,这不是我感觉最好的方法。我建议将OpenID / Oauth用于移动设备。
Idp可以支持多种登录协议,例如WS -Fed,SAML 2.0或OAuth。这取决于客户使用相关协议。
来到WS - Fed with IdentityServer3,有一个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响应。你需要解析并使用它。