首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADFS + IdentityServer3 + Mobile + MVC

ADFS + IdentityServer3 + Mobile + MVC
EN

Stack Overflow用户
提问于 2017-02-03 15:42:59
回答 1查看 192关注 0票数 0

我正在构建一个具有以下上下文的原型。

  • 两个客户端应用程序(MVC和Mobile)
  • IdentityServer3作为依赖方
  • ADFS 3.0作为身份提供程序
  • IdentityServer3.WsFederation yServer3.WsFederation插件提供SAML支持

MVC方面已经完成了,但我不知道如何接近移动端。

我之前的尝试使用了Web和adfs的"adfs/services/trust/13/usernamemixed“端点。这允许移动设备向API发送凭据,然后API使用ADFS的端点对用户进行身份验证。然后,它将一个JWT令牌返回给移动应用程序。

我们必须从Idp接收SAML令牌(可以是ADFS,也可以是不同的Idp),但是我们的应用程序不知道令牌的类型。

我有两个问题。

  1. IdentityServer3不支持使用上面的端点(据我所知) ws信任,那么对于移动设备登录,这个场景的正确方法是什么?
  2. 是需要的WsFederation插件,因为IdentityServer3可以为客户端应用程序处理将SAML令牌转换为JWT的工作。
EN

回答 1

Stack Overflow用户

发布于 2017-02-06 13:30:56

首先,我不推荐SAML用于移动设备(特别是本地应用程序),因为SAML假定客户端是浏览器。在移动应用程序中,它打开一个浏览器进行身份验证,这不是我感觉到的最佳方法。我建议在移动设备上使用OpenID/Oauth。

Idp可以支持多个登录协议,如WS -Fed、SAML2.0或OAuth。这取决于客户端是否使用相关协议。

在WS - Fed与IdentityServer3,有一个自己的中间件,以帮助实现它。

代码语言:javascript
复制
 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地址,它将重新运行SAML1.1响应。您需要解析并使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42027931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档