我们正在为我们的客户创建一个Restful Web API,只有没有第三方访问才能使用其原生移动应用和网络应用。
每个用户都有自己的凭据和应用程序中的角色,以及基于角色的访问权限,即授权。
在不保留会话的情况下,在Web API中对用户进行身份验证和角色授权的最佳方法是什么。我正在使用Asp.net web API 1.0,因为我在4.0框架上。
我是否需要在每次通话时从DB获取角色信息。任何有效的方式?
答案 0 :(得分:0)
如果您使用的是基于.NET的环境,则可以选择多种身份验证方案,并独立选择多种访问控制/授权方案。
对于身份验证,最简单的方法是使用HTTP支持的机制,即HTTP基本身份验证。您还可以查看基于Kerberos的身份验证。所有这些都可以在.NET中使用OOTB。
您还可以考虑使用Open ID Connect或OAuth,但这需要额外的库。
至于授权,.NET为您提供基于声明的授权,这是一种实现基于角色的访问控制的方法。
在SO上查看这个很棒的答案:Using Claim-Based Authorization