问题标签 [authorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
18 回答
313333 浏览

wcf - 保护 REST API/Web 服务的最佳实践

在设计 REST API 或服务时,是否有任何既定的最佳实践来处理安全性(身份验证、授权、身份管理)?

在构建 SOAP API 时,您可以将 WS-Security 作为指南,并且有很多关于该主题的文献。我发现有关保护 REST 端点的信息较少。

虽然我理解 REST 故意没有类似于 WS-* 的规范,但我希望已经出现了最佳实践或推荐模式。

任何讨论或相关文件的链接将不胜感激。如果这很重要,我们将使用带有 POX/JSON 序列化消息的 WCF,用于使用 .NET Framework 的 v3.5 构建的 REST API/服务。

0 投票
2 回答
2927 浏览

c# - 为什么调用 AzMan 时出现“无法更新密码”错误?

我正在企业库中的 AzMan 授权提供程序的帮助下从 WinForms 应用程序进行授权检查,并且收到以下错误:

无法更新密码。作为当前密码提供的值不正确。(来自 HRESULT 的异常:0x8007052B)(Microsoft.Practices.EnterpriseLibrary.Security.AzMan)


无法更新密码。作为当前密码提供的值不正确。(来自 HRESULT 的异常:0x8007052B)(Microsoft.Interop.Security.AzRoles)

AzMan 商店托管在同一域中另一台计算机上的 ADAM 中。其他电脑和用户没有这个问题。进行调用的用户具有对 ADAM 和 AzMan 存储的读取权限。运行 WinForms 应用程序的计算机和运行 ADAM 的计算机都在 Windows XP SP2 上。

在解决之前我遇到过 AzMan 的访问问题,但这是一个新问题……我错过了什么?

0 投票
2 回答
612 浏览

asp.net - 仅授权所有用户访问一页的最佳实践

授权所有用户访问 asp.net 网站中一个页面的最佳方法是什么。

除了登录页面和其他页面,我拒绝所有用户查看网站中的页面。

您如何使所有用户都可以访问此页面?

0 投票
11 回答
2963 浏览

security - 处理用户帐户身份验证和密码的最佳方法

在系统中处理用户帐户管理的最佳方法是什么,而不让您的员工有权访问数据库来访问帐户。

例子:

  1. 在数据库中存储用户名/密码。这是一个坏主意,因为任何有权访问数据库的人都可以看到用户名和密码。因此使用它。

  2. 存储用户名/密码哈希。这是一种更好的方法,但是可以通过将数据库中的密码哈希替换为您知道其身份验证信息的另一个帐户的哈希来访问该帐户。然后在授予访问权限后将其还原回数据库。

windows/*nix 是如何处理这个问题的?

0 投票
5 回答
924 浏览

django - 为单点登录管理大型用户数据库

您将如何实施具有以下目标的系统:

  • 管理目前与第三方供应商的应用程序紧密集成的数十万现有用户的身份验证和授权 (我们希望将这些用户分解为我们管理的东西,并让我们的应用程序与之抗衡,加上我们的第 3 方供应商与之抗衡)。
  • 管理链接到这些用户的个人资料信息
  • 必须能够从几乎任何平台(Windows、*nix、PHP、ASP/C#、Python/Django 等)上的任意数量的 Web 应用程序访问。

这里有一些示例实现:

  • LDAP/AD 服务器来管理一切。对所有配置文件数据使用自定义架构。一切都可以针对 LDAP/AD 进行身份验证,我们可以将各种 ACL 和配置文件数据存储在自定义模式中。
  • 仅使用 LDAP/AD 进行身份验证,使用某种传统数据库(MSSQL/PostgreSQL/MySQL)或基于文档的数据库(CouchDB、SimpleDB 等)将 LDAP 用户绑定到最强大的配置文件/授权服务器。使用 LDAP 进行授权,然后点击数据库获取更高级的内容。
  • 对所有内容都使用传统数据库(关系或文档)。

这三个是最好的吗?是否有其他符合上述目标且更易于实施的解决方案?

** 我应该补充一点,几乎所有将对用户数据库进行身份验证的应用程序都在我们的控制之下。唯一的少数外部人员将是我们正在从中删除当前用户数据库的应用程序,也许还有 1 或 2 个其他应用程序。没有什么比需要 openID 服务器更广泛的了。

同样重要的是要知道这些用户中的许多人已经拥有这些帐户 5-8 年并且知道他们的登录名和密码等等。

0 投票
7 回答
241286 浏览

svn - 如何在 SVN 中设置访问控制?

我已经使用 SVN 建立了一个存储库并上传了项目。有多个用户在从事这些项目。但是,并不是每个人都需要访问所有项目。我想为每个项目设置用户权限。

我怎样才能做到这一点?

0 投票
3 回答
10827 浏览

c# - WCF 服务授权模式

我正在实施安全的 WCF 服务。使用用户名/密码或 Windows 凭据完成身份验证。该服务托管在 Windows 服务进程中。现在,我正在尝试找出对每个服务操作实施授权的最佳方式。

例如,考虑以下方法:

您可能知道,在 WCF 中,有一个 OperationContext 对象,您可以从中检索调用者/客户端传入的安全凭据。现在,在调用该方法的第一行时,身份验证已经完成。但是,如果决定取决于输入数据本身,我们如何实施授权呢?例如,在上述情况下,假设“管理员”用户(其权限等存储在数据库中)被允许获取实体信息,而其他用户不应该被允许......我们将授权检查放在哪里?

假设我们将它放在方法的第一行,如下所示:

现在,有几个问题:

  1. 我们是在授权检查之前还是在授权检查内部验证 entityId(例如检查 null / 空值等)?换句话说,如果授权检查应该包含在每个方法中,这是一个好的模式吗?哪个应该首先发生 - 参数验证或授权?

  2. 当授权检查到处都是这样时,我们如何对 WCF 服务进行单元测试,而我们在单元测试中没有 OperationContext!?(假设我正在尝试直接测试此服务类实现而无需任何 WCF 设置)。

有什么想法吗?

0 投票
2 回答
1364 浏览

web-services - XML-RPC 的非交互式身份验证/授权?

我们并不完全符合 XML-RPC 规范,但概念几乎相同。客户端通过带有 XML 有效负载的 HTTP/HTTPS 进入。我们以响应请求的 XML 有效负载进行响应。这主要是机器对机器,所以没有人输入用户名/密码。我们的构造在 apache tomcat 中运行。我们想对请求进行身份验证,由于并非每个客户端都可以使用每个服务,因此我们还需要对请求进行授权。我们有订阅和按使用收费模式,因此有必要记录所有内容。

你会为服务器和客户端推荐什么?

0 投票
1 回答
2098 浏览

java - CLIENT-CERT auth-method 可以与 tomcat 中的 JDBC 领域一起使用吗?

JDBC 领域为身份验证指定了一个表结构,其中包含由属性 userNameCol 和 userCredCol 定义的列。这些对应于对 FORM 或 BASIC 身份验证方法有意义的用户和密码。它们是交互式的,需要客户端用户的这两部分。

  • 从证书中返回什么?
  • 存储在 userNameCol 和 userCredCol 中的数据示例是什么样的?
  • 在这种情况下,领域是否有替代表结构?

PS - 我使用的是 tomcat 5.5.x。

0 投票
3 回答
829 浏览

security - 资源列表授权的最佳实践是什么?

发布和/或协作应用程序通常涉及共享对资源的访问。在门户中,用户可能被授予对某些内容的访问权限作为组的成员或由于明确的访问权限。完整的内容集可以包括公共内容、群组成员内容和私人用户内容。或者,对于协作应用程序,我们可能希望将资源作为工作流程的一部分传递或共享文档的保管以进行编辑。

由于大多数应用程序将这些资源存储在数据库中,因此您通常会创建查询,例如“获取我可以编辑的所有文档”或“获取我可以看到的所有内容”。其中“可以编辑”和“可以查看”是用户的权限。

我有两个问题:

  1. 检索资源后,对用户进行授权非常容易,但是如何有效地对可用资源列表执行授权呢?和,

  2. 这种授权可以脱离应用的核心吗?也许进入一个单独的服务?分离后,您如何过滤诸如“获取所有我可以看到的标题为 [SomeSearchTerm] 的文档”之类的查询?在我看来,您的单独系统将不得不复制大量参考数据。