Questions tagged «authorization»

授权是确定是否允许用户,程序或设备以特定方式访问受保护资源的过程。授权是计算机安全实践中的关键主题。

18
保护REST API / Web服务的最佳做法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 在设计REST API或服务时,是否存在用于处理安全性(身份验证,授权,身份管理)的最佳实践? 在构建SOAP API时,您以WS-Security为指南,并且有关该主题的文献很多。我发现有关保护REST端点的信息较少。 尽管我了解REST故意没有类似于WS- *的规范,但我希望出现了最佳实践或推荐的模式。 任何讨论或相关文件的链接将不胜感激。如果重要的话,我们将使用WCF和POX / JSON序列化消息,以使用.NET Framework v3.5构建的REST API /服务。


10
OAuth 2与OAuth 1有何不同?
简单来说,有人可以解释OAuth 2和OAuth 1之间的区别吗? OAuth 1现在过时了吗?我们应该实施OAuth 2吗?我看不到OAuth 2的许多实现;大多数人仍在使用OAuth 1,这使我怀疑OAuth 2可以使用了。是吗?

11
如何在ASP.NET Core中创建自定义AuthorizeAttribute?
我正在尝试在ASP.NET Core中创建自定义授权属性。在以前的版本中,可以覆盖bool AuthorizeCore(HttpContextBase httpContext)。但这在中不再存在AuthorizeAttribute。 制作自定义AuthorizeAttribute的当前方法是什么? 我要完成的工作:我在标题授权中收到一个会话ID。通过该ID,我将知道特定操作是否有效。

7
为什么AuthorizeAttribute重定向到登录页面以进行身份​​验证和授权失败?
在ASP.NET MVC中,您可以使用标记控制器方法AuthorizeAttribute,如下所示: [Authorize(Roles = "CanDeleteTags")] public void Delete(string tagName) { // ... } 这意味着,如果当前登录的用户不具有“ CanDeleteTags”角色,则将永远不会调用控制器方法。 不幸的是,对于失败,AuthorizeAttribute返回HttpUnauthorizedResult,始终返回HTTP状态代码401。这将导致重定向到登录页面。 如果用户未登录,则非常合理。但是,如果用户已经登录,但没有所需的角色,则将他们发送回登录页面会造成混乱。 似乎AuthorizeAttribute将认证和授权混为一谈。 这似乎是对ASP.NET MVC的疏忽,还是我错过了一些东西? 我不得不煮熟DemandRoleAttribute将两者分开。当用户未通过身份验证时,它将返回HTTP 401,并将其发送到登录页面。当用户登录但没有所需角色时,它将创建一个NotAuthorizedResult。当前,这将重定向到错误页面。 当然我不必这样做吗?


2
如何使用cURL正确定义基本的HTTP身份验证?
我正在学习Apigility(Apigility docu-> REST Service Tutorial),并尝试通过cURL发送具有基本身份验证的POST请求: $ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status YXBpdXNlcjphcGlwd2Q=是带有我的凭据的基数为64的编码字符串apiuser:apipwd。凭据保存在/data/htpasswd(apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/)中。 看起来像这样: HTTP/1.1 401 Unauthorized Server: nginx/1.4.7 Date: Mon, 22 Sep 2014 07:48:47 GMT Content-Type: application/problem+json Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/5.5.12-1~dotdeb.1 WWW-Authenticate: Basic realm="api" 这里的错误在哪里?如何运作?

1
JACC提供程序如何使用其所部署服务器的主体到角色映射功能?
我正在写一个JACC提供程序。 在此过程中,这意味着实施PolicyConfiguration。 的PolicyConfiguration是负责从应用服务器,接受配置信息,如哪些权限累积到哪些角色。这样一来,Policy以后的用户就可以在获得有关当前用户的信息时做出授权决定及其所要执行的操作的。 但是,PolicyConfiguration维护角色及其权限之间的映射不是(残暴的)合同的一部分,并且Principals分配给这些角色。 通常-总是-确实-应用服务器包含此映射。例如,Glassfish上,您会影响通过提供这样的事情映射sun-web.xml并sun-ejb-jar.xml与您的Java EE模块等。(这些特定于供应商的文件负责说明,例如,superusers是要为其分配应用程序角色的组admins。) 我想重复使用这些文件提供的功能,并且希望对尽可能多的应用程序服务器重复使用。 这是(完全任意地)IBM对此事的看法,这似乎证实了我的怀疑,即我想做的事基本上是不可能的。(就我的情况而言,更多的弹药是该特定的Java EE合同不值得在其上打印纸张。) 我的问题是:如何从一个入门者的眼镜鱼和JBoss中获得此主体到角色映射的信息PolicyConfiguration?如果有我不知道的标准方法,我会不知所措。

26
无法将Nexus 4连接到ADB:未经授权
我有一个配备Android 4.3的Nexus 4,并且正在尝试将该设备连接到Windows 7 64位版本的计算机。 我安装了最新的驱动程序和最新adb版本。我想我几乎尝试了所有事情,但仍然收到以下消息: C:\Program Files (x86)\Android\sdk\platform-tools>adb devices List of devices attached 007667324ccb229b unauthorized 该错误的原因可能是什么?

4
自定义HTTP授权标头
我想知道是否可以将自定义数据放在HTTP授权标头中。我们正在设计RESTful API,可能需要一种方法来指定自定义授权方法。例如,我们称之为FIRE-TOKEN身份验证。 这样的东西是否有效,并根据规范允许: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg= 第二个字符串的第一部分(在“:”之前)是API密钥,第二部分是查询字符串的哈希。

4
具有权限代码的ASP.NET MVC 4自定义授权属性(无角色)
我需要在MVC 4应用程序中基于用户权限级别(没有角色,只有CRUD操作级别的权限级别分配给用户)来控制对视图的访问。 举个例子; 下面的AuthorizeUser将是我的自定义属性,我需要像这样使用它: [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(); } 有可能这样做吗?

3
Asp.net WebApi中的自定义授权-怎么了?
我正在阅读有关WebApi中授权的几种资源(书籍和答案)。 假设我要添加仅允许某些用户访问的自定义属性: 情况1 我已经看到了这种覆盖的 方法, OnAuthorization如果出现问题,它会设置响应 public class AllowOnlyCertainUsers : AuthorizeAttribute { public override void OnAuthorization(HttpActionContext actionContext) { if ( /*check if user OK or not*/) { actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized); } } } 情况#2 但我也看到了类似的示例,该示例也很重要, OnAuthorization但需要调用base: public override void OnAuthorization(HttpActionContext actionContext) { base.OnAuthorization(actionContext); // If not authorized at all, …

8
ASP.NET Web API:返回401 /未经授权的响应的正确方法
我有一个MVC webapi网站,该网站使用OAuth /令牌身份验证对请求进行身份验证。所有相关的控制器都具有正确的属性,并且身份验证正常。 问题在于,并非所有请求都可以在属性范围内得到授权-必须在控制器方法调用的代码中执行某些授权检查-在这种情况下,返回401未经授权的响应的正确方法是什么? 我已经尝试过了throw new HttpException(401, "Unauthorized access");,但是当我这样做时,响应状态代码是500,我也得到了堆栈跟踪。即使在日志记录DelegatingHandler中,我们也可以看到响应为500,而不是401。

5
授权具有多个角色的属性
我想一次为多个角色的控制器添加授权。 通常情况如下: [Authorize(Roles = "RoleA,RoleB,RoleC")] public async Task<ActionResult> Index() { } 但是我将我的角色存储在const中,因为它们有时可能会更改或扩展。 public const RoleA = "RoleA"; public const RoleB = "RoleB"; public const RoleC = "RoleC"; 我不能这样做,因为必须在编译时知道该字符串: [Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)] public async Task<ActionResult> Index() { } 有办法解决这个问题吗? 我可以编写一个仅包含“ RoleA,RoleB,RoleC”的const-但我不喜欢魔术字符串,这是一个魔术字符串。更改角色名称而忘记更改组合字符串将是一场灾难。 我正在使用MVC5。在编译时就知道ASP.NET身份和角色。

8
Python请求库如何通过单个令牌传递Authorization标头
我有一个请求URI和一个令牌。如果我使用: curl -s "<MY_URI>" -H "Authorization: TOK:<MY_TOKEN>" 等等,我得到200并查看相应的JSON数据。因此,我安装了请求,并且当我尝试访问该资源时,我得到了403,这可能是因为我不知道传递该令牌的正确语法。谁能帮我解决这个问题?这就是我所拥有的: import sys,socket import requests r = requests.get('<MY_URI>','<MY_TOKEN>') r. status_code 我已经尝试过: r = requests.get('<MY_URI>',auth=('<MY_TOKEN>')) r = requests.get('<MY_URI>',auth=('TOK','<MY_TOKEN>')) r = requests.get('<MY_URI>',headers=('Authorization: TOK:<MY_TOKEN>')) 但是这些都不起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.