Rob*_*boy 15 asp.net security authorization oauth angularjs
根据以下要求保护REST Web API的最佳方法是什么?该系统有一个Angular JS前端,其中包含在ASP.net中实现的REST API.
我相信Oauth将是我最好的选择.
小智 7
系统中有两个"角色",用户将拥有其中一个角色.一个角色应该允许访问某些API(称之为"VIEW"),另一个角色允许访问其他API
所有用户都在Active Directory中,所以如果我有一个用户名,我可以检查他们在哪个角色 - 一些客户端在Windows机箱上,其他客户端在Linux上
我想坚持会话,所以我不必为每个API调用查找AD
Refresh Token
,Access Token
这样您就不需要一次又一次地请求AD.我想单点登录.在Windows机器上,我不要求他们输入用户并通过,因为我已经可以使用Windows身份验证检索他们的用户名.
因此,基本上您需要设置将为您提供令牌的Identity服务器,REST API将使用该令牌来验证声明以将正确的信息返回给用户.
我不确定你到底期望什么。无论如何,首先我将根据要求重新表述您的问题:
如果这些要求是你的。我相信唯一标准(且干净)的解决方案是使用 OAuth。我不会详细描述 OAuth,但此身份验证协议是网络上最标准的协议(facebook、google、twitter...)。当然,由于您不想在业务应用程序中使用 facebook、google 或 twitter 帐户,但您的 Active Directory 帐户,您必须使用 Active Directory 服务器的帐户来安装/设置/开发 OAuth 身份提供商。您的选择取决于您对 ADFS 协议及其不同流程(代码、隐式、断言)的了解程度。您有两种解决方案:
在应用程序方面,大多数框架都可以使用 OAuth 与许多现有框架轻松进行身份验证。例如,即使你制作单页面应用程序,如果使用 Angular,也可以使用 adal.js 或 oidc.js 进行 Angular。正如我上面提到的,所有这些都是由开箱即用的 asp.net mvc/webapi 负责的,但我知道其他服务器技术也是如此。如果您有更多问题,请不要犹豫,因为我不确定您到底期望什么。
归档时间: |
|
查看次数: |
1727 次 |
最近记录: |