我想通过与数据库中的用户表关联的自定义身份验证来保护 OData 服务。我一直痴迷于这个问题,并徒劳地寻找了很长时间的解决方案。我的意思是,是的,网络上有很多文章,但它们都很琐碎,例如实现 IPrincipal 或 IHttpContext 并启用基本身份验证。值得注意的是,他们中的许多人可以将数据追溯到 2010 年,当时 OData 还没有今天那么成熟。所以我想知道是否有任何基于数据库的自定义身份验证的快速解决方案。
任何指导将不胜感激!
我想通过与数据库中的用户表关联的自定义身份验证来保护 OData 服务。我一直痴迷于这个问题,并徒劳地寻找了很长时间的解决方案。我的意思是,是的,网络上有很多文章,但它们都很琐碎,例如实现 IPrincipal 或 IHttpContext 并启用基本身份验证。值得注意的是,他们中的许多人可以将数据追溯到 2010 年,当时 OData 还没有今天那么成熟。所以我想知道是否有任何基于数据库的自定义身份验证的快速解决方案。
任何指导将不胜感激!
OData 和身份验证(甚至就此而言的授权)在很大程度上是设计无关的。这并不意味着 OData 堆栈不能很好地支持身份验证和授权,只是 OData 协议本身没有对此进行评论。除了协议,Web API 和 WCF 数据服务都在努力在这里获得更好的支持。作为 .NET 社区的成员(而不是 Microsoft 员工),我认为可以合理地预期,随着这些堆栈实现授权 API,它们可能会寻求基于声明的授权。再次,我想明确声明,我并不想在这里隐藏或泄露任何计划——我只是在推测身份验证和授权的去向。
简而言之,如果我站在你的立场上,我会在 OAuth2 和基于声明的身份验证之间找到最简单的交叉点,并使其暂时发挥作用。现在制定您的声明和身份验证意味着您以后只需要考虑集成实际的授权代码。