首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kentor SAML2身份验证问题

Kentor SAML2身份验证问题
EN

Stack Overflow用户
提问于 2018-01-09 22:01:37
回答 1查看 302关注 0票数 1

好吧,首先让我说,我真的觉得问这些问题很愚蠢,因为我认为我对事情有很好的理解,但我就是不能理解Kentor Authorization MVC模型是怎么回事。例如,在Web.config文件中,它们按如下方式指定了表单身份验证:

代码语言:javascript
复制
<authentication mode="Forms">
  <forms loginUrl="~/AuthServices/SignIn" />
</authentication> 

但我到处都找不到那个终点。然后,在HomeController.cs文件中,它们有一个端点,如下所示:

代码语言:javascript
复制
    [Authorize]
    public ActionResult Secure()
    {            
        var identity = System.Web.HttpContext.Current.User.Identity as ClaimsIdentity;
        return View(identity.Claims);
    }

但是,当我在调试器中运行它时,它永远不会命中。我很抱歉问这样的开放式问题,我知道人们在Kentor库上花了很多时间,这是非常感谢的。MVC示例是完整的,还是其中一些只是示例,说明了如何做一些事情,但在示例项目中并没有真正使用?

编辑:我找出了缺失的端点。作为MVC的新手,我没有意识到一个基本事实-->引用的DLL可以添加控制器端点。我认为所有的端点都必须在我的代码中。(让鞭打开始吧)。

我现在意识到的是,虽然我被认为是VS中的MVC项目,但我实际上是一个拥有Web API的客户端。所以我的问题是我的项目似乎找不到授权/登录端点。我假设这意味着我必须使用OWIN模型,我甚至不知道OWIN是什么,所以这应该是一种享受。

我的下一个问题是,有没有办法将MVC模型与Web API结合使用?如果是这样,我如何让我的客户端识别Kentor库中的登录端点?

编辑:所以我后退一步,使用HTTP模块,而不是深入研究OWIN。我知道我被吓坏了。一个重要的事实是,如果您使用此模块,并且不断以未经授权的身份返回您的身份,请确保此部分位于您的Web.config中:

代码语言:javascript
复制
<system.identityModel.services>
  <federationConfiguration>
    <cookieHandler requireSsl="false" name="SomeName" />
  </federationConfiguration>
</system.identityModel.services> 

我不记得在说明中有很多关于这方面的内容,但对我来说,它允许填充我的User.Identity对象。现在,我正在尝试弄清楚userID (它仍然没有被填充,但在声明中)。希望这个帖子能在未来帮助一些人。

EN

回答 1

Stack Overflow用户

发布于 2018-02-05 14:10:47

你的最后一个问题“有没有办法在Web API中使用MVC模型?”简短的回答是:没有。

为了保证Web API的安全,您应该使用OAuth2/OpenID Connect。因此,您需要一个令牌颁发者,它可以向上游SAML2身份提供者进行身份验证。

如果你还在使用经典的ASP.NET,你应该看看IdentityServer3,它可以做所有这些事情。

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

https://stackoverflow.com/questions/48169874

复制
相关文章

相似问题

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