在设计REST API或服务时,是否存在处理安全性(身份验证,授权,身份管理)的最佳实践?
构建SOAP API时,您需要使用WS-Security作为指南,并且有很多关于该主题的文献.我发现有关保护REST端点的信息较少.
虽然我理解REST故意没有规格类似于WS-*我希望最佳做法或建议的模式已经出现.
任何讨论或相关文件的链接将非常感谢.如果它的事项,我们将使用WCF与我们的REST API的/服务POX/JSON序列信息使用.NET Framework V3.5的建立.
Web应用程序的上下文有什么不同?我看到很多缩写"auth".它是代表身份验证还是身份验证?还是两者兼而有之?
用非常简单的术语来说,有人可以解释OAuth 2和OAuth 1之间的区别吗?
OAuth 1现在已经过时了吗?应该实施OAuth 2吗?我没有看到很多OAuth 2的实现; 大多数人仍在使用OAuth 1,这让我怀疑OAuth 2已经可以使用了.是吗?
我正在尝试在ASP.NET Core中创建自定义授权属性.在以前的版本中,可以覆盖bool AuthorizeCore(HttpContextBase httpContext).但这不再存在于AuthorizeAttribute.
制作自定义AuthorizeAttribute的当前方法是什么?
我想要完成的任务:我在Header Authorization中收到一个会话ID.从该ID我将知道特定动作是否有效.
在ASP.NET MVC中,您可以使用如下标记控制器方法AuthorizeAttribute:
[Authorize(Roles = "CanDeleteTags")]
public void Delete(string tagName)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
这意味着,如果当前登录的用户不在"CanDeleteTags"角色中,则永远不会调用控制器方法.
不幸的是,对于失败,AuthorizeAttribute返回HttpUnauthorizedResult,它总是返回HTTP状态代码401.这导致重定向到登录页面.
如果用户未登录,则这非常有意义.但是,如果用户已登录但未处于所需角色,则将其发送回登录页面会很困惑.
似乎AuthorizeAttribute将身份验证和授权混为一谈.
这似乎是ASP.NET MVC的一个疏忽,或者我错过了什么?
我不得不做一个DemandRoleAttribute将两者分开的东西.当用户未经过身份验证时,它会返回HTTP 401,并将其发送到登录页面.当用户登录但未处于所需角色时,它会创建一个NotAuthorizedResult.目前,这会重定向到错误页面.
当然我不必这样做?
我是python的新手并使用Python Flask并生成REST API服务.
我想检查发送给客户端的授权标头.
但我无法找到获取HTTP标头的方法.
任何有关获取HTTP标头授权的帮助都表示赞赏.
我正在写一个JACC提供者.
一路上,这意味着实施一个PolicyConfiguration.
的PolicyConfiguration是负责从应用服务器,接受配置信息,如哪些权限累积到哪些角色.这样,Policy以后可以在递交有关当前用户的信息以及他正在尝试做的事情时做出授权决定.
但是,它不是PolicyConfiguration维护角色及其权限之间映射的(合理的)合同的一部分Principals,而是分配给这些角色.
通常 - 总是,实际上 - 应用程序服务器容纳此映射.例如,Glassfish上,你通过影响供给像这样的东西映射sun-web.xml和sun-ejb-jar.xml等您的Java EE模块.(这些供应商特定的文件负责说,例如,superusers是一个将被分配应用程序角色的组admins.)
我想重用这些文件提供的功能,我希望尽可能广泛的应用程序服务器.
这是 - 完全随意 - IBM对此事的看法,这似乎证实了我怀疑我想要做的事情基本上是不可能的.(对于我的情况,更多的弹药,这个特定的Java EE合同不值得它打印的纸张.)
我的问题:我如何获得这个主要角色映射信息 - 对于初学者 - Glassfish和JBoss来自PolicyConfiguration?如果有一种我不知道的标准方法,那我就是耳朵.
我有一个带有Android 4.3的Nexus 4,我正在尝试将设备连接到装有Windows 7 64bit的计算机.
我安装了最新的驱动程序和最新adb版本.我想我几乎尝试了一切,但仍然收到以下消息:
C:\Program Files (x86)\Android\sdk\platform-tools>adb devices
List of devices attached
007667324ccb229b unauthorized
Run Code Online (Sandbox Code Playgroud)
这个错误的原因是什么?
我想知道将自定义数据放入HTTP授权标头是否可以接受.我们正在设计RESTful API,我们可能需要一种方法来指定自定义授权方法.举个例子,我们称之为FIRE-TOKEN身份验证.
根据规范,这样的事情是否有效并允许: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg=
第二个字符串的第一部分(在':'之前)是API密钥,第二部分是查询字符串的哈希.
我需要在我的MVC 4应用程序中根据用户权限级别(没有角色,只分配给用户的CRUD操作级别的权限级别)来控制对视图的访问.
示例如下AuthorizeUser将是我的自定义属性abd我需要像下面一样使用它.
[AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")]
public ActionResult UpdateInvoice(int invoiceId)
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Create Invoice")]
public ActionResult CreateNewInvoice()
{
// some code...
return View();
}
[AuthorizeUser(AccessLevels="Delete Invoice")]
public ActionResult DeleteInvoice(int invoiceId)
{
// some code...
return View();
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?怎么样?提前致谢...
Chatura