Kentor SAML2 Auth Questions

时间:2018-01-09 14:01:37

标签: javascript asp.net-mvc saml-2.0 kentor-authservices

好的,首先让我说我真的觉得愚蠢地问这些问题,因为我认为我对事情有了很好的理解,但我似乎无法掌握Kentor授权MVC模型正在发生的事情。例如,在Web.config文件中,他们指定了表单身份验证,如下所示:

<authentication mode="Forms">
  <forms loginUrl="~/AuthServices/SignIn" />
</authentication> 

但我无法在任何地方找到终点。然后在HomeController.cs文件中,他们有一个如下所示的端点:

    [Authorize]
    public ActionResult Secure()
    {            
        var identity = System.Web.HttpContext.Current.User.Identity as ClaimsIdentity;
        return View(identity.Claims);
    }

但是当我通过调试器运行它时,它永远不会被击中。我很抱歉提出这些开放性的问题,我知道人们已经花了很多时间进入肯特图书馆,我们非常感谢。 MVC示例是完整的还是其中一些只是示例,说明如何执行操作但实际上并未在示例项目中使用?

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

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

我的下一个问题是,无论如何将MVC模型与Web API一起使用?如果是这样,我如何让我的客户端识别Kentor库中的登录终端?

编辑:所以我退后一步,使用HTTP模块而不是潜入OWIN。我知道我好意思。一个重要的事实是,如果您使用此模块并继续将您的身份恢复为未经授权,请确保此部分位于您的Web.config中:

<system.identityModel.services>
  <federationConfiguration>
    <cookieHandler requireSsl="false" name="SomeName" />
  </federationConfiguration>
</system.identityModel.services> 

我不记得在说明书中有很多关于此的内容,但对我来说,它允许我的User.Identity对象被填充。现在,我正在试图获取用户ID(仍然没有填充但在索赔中)。希望这个帖子可以帮助将来的某个人。

1 个答案:

答案 0 :(得分:1)

重新提出你的最后一个问题&#34;有没有办法将MVC模型与Web API一起使用&#34;简短的回答是:没有。

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

如果你还在经典ASP.NET中,你应该看看IdentityServer3,它可以完成所有这些。