标签: authz

mod_authz_svn的奇怪行为

我在apache2上配置了我的svn服务器,如下所示:

<Location /svn_test>
    DAV svn
    SVNParentPath /path/to/SvnTest
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile "/path/to/passwd"
    AuthzSVNAccessFile "/path/to/authz"
    Require valid-user
    SVNAdvertiseV2Protocol Off
    AuthzSVNAnonymous Off
</Location>
Run Code Online (Sandbox Code Playgroud)

和authz文件配置如下:

[groups]
g=hy

[test:/]
hy=r
*=

[test:/subdir]
hy=r
*=

[test:/subdir1]
hy=rw
*=
Run Code Online (Sandbox Code Playgroud)

问题是,我想将subdir的权限与其他目录分开控制,但如果我将subdir1的权限更改为"rw",我可以写入subdir,如果我将subdir1的权限更改为"r",则获得subdir的权限按预期成为"r".

事实上,如果我将任何目录的权限更改为"rw",那些我希望它只读的目录就变成可写的.

我在下面粘贴了一些apache日志,以防它有用.

每次我重新启动apache2时,都会抱怨python版本不匹配,但尽管如此,一切正常,我确定它是否相关:

[Fri Mar 27 15:55:44.381138 2015] [mpm_worker:notice] [pid 10693:tid 140245999884160] AH00295: caught SIGTERM, shutting down
[Fri Mar 27 15:55:45.111049 2015] [:error] [pid 13438:tid 139851301021568] python_init: Python version mismatch, expected '2.7.5+', found '2.7.4'.
[Fri Mar 27 15:55:45.111523 2015] [:error] [pid 13438:tid 139851301021568] python_init: …
Run Code Online (Sandbox Code Playgroud)

svn apache mod-dav-svn authz

8
推荐指数
1
解决办法
635
查看次数

SVN authz,基于路径的身份验证问题

[groups]
developer = a,b,c
doc = r,x

[/doc]
@doc = rw
@developer = rw

[/]
@developer = rw
* =
Run Code Online (Sandbox Code Playgroud)

如果现在组doc的成员尝试检出文档,则它不起作用.我希望doc的成员能够查看sub-dir doc,禁止任何其他内容.任何想法如何实现这一目标?

亲切的问候ronny

[更新]

client:svn,版本1.5.4(r33841)服务器:svn,版本1.4.6(r28521)

通过svn + ssh访问:/ user @ host/fullpath-to-repos

  • 1完美地工作了两年
  • 2可能是 - 看上面的版本号(我会立即联系我们的管理员)
  • 3不?只是ssh
  • 4不
  • 5不

[更新]

  • 使用客户端版本svn 1.4.6(r28521)也不起作用 - 相同的错误
  • 我使用普通的命令行访问.svn co svn + ssh:// ....

[更新]

  • 服务器:Linux 2.6.16.60-0.39.3-default9 i686 athlon i386 GNU/Linux - suse 10?或者像我想的那样
  • 客户:Kubuntu 9.04
  • 通过OpenSSH SSH客户端连接
  • 服务器拒绝来自localhost的svn://连接 - 任何连接 - 都要在家里很快就用副本试一下

[更新4] *这不是我自己的服务器,我无法用它做我想做的事.它是一个非常老的服务器,至少运行10年,有数百个用户.标准的东西应该工作.如果我错过了什么,请纠正我.

[更新5] 信不信由你.我使用了错误的路径,现在一切都运行良好,我很抱歉浪费你的时间.我将把他的efford给予FoxyBOA赏金.

svn authentication authz

7
推荐指数
1
解决办法
1万
查看次数

授权和微服务

我们的系统正在从单体架构转向微服务架构。微服务架构带来了我们需要解决的技术挑战,其中之一是 AuthN/AuthZ。

我们的方法是拥有一个身份验证服务,可以对用户进行身份验证并生成访问/刷新令牌 (JWT)。然后,访问令牌将通过微服务链在请求标头中传递,这样每个微服务只需验证令牌即可确定用户已成功通过身份验证。对于 AuthZ 部分,权限强制是在微服务本身中完成的。我的问题与 AuthZ 有关。

为了说明这个谈话,让我们举一个具体的例子,一个接待员想要注册一个新成员到他的保真计划,例如从一个 Web 应用程序。为了支持这个用例,我们假设系统有 2 个微服务,ReceptionService 和 MemberService。ReceptionService 提供了一个 REST API 来启动会员注册流程。它需要用户权限“注册”才能执行。MemberService 提供一个 REST API 来创建受 CRUD 权限保护的新成员资源。请求流将是:

  1. 用户先前登录的 Web 应用程序将成员注册请求发送到 ReceptionService API,在标头中包含用户访问令牌。
  2. ReceptionService 验证用户令牌,确保用户被授予“注册”权限,执行它需要执行的任何业务逻辑,最后向 MemberService API 发送成员创建请求,在标头中包含用户访问令牌。
  3. MemberService 验证用户令牌,确保用户被授予“member.create”权限,最后创建成员。

为了针对这种情况设计解决方案,我的团队研究了以下假设/先决条件:

  • 微服务必须始终强制执行权限(至少对于重要的 API 操作,例如创建成员)。因此,上面示例中 MemberService 的 CRUD 权限,即使产品经理可能只需要顶级“注册”权限。
  • 因为拥有“顶级”权限而能够启动用例的用户必须能够完成它。这意味着它不会因为他缺少来自底层服务调用链中某处的另一个许可而出错。
  • 管理员用户不必了解执行用例所需的权限链。在我们的示例中,管理员应该只能向用户提供“注册”权限。

为了能够完成上述示例,需要为用户分配 2 种不同的权限,这打破了我们的一些假设/先决条件。为了克服这个问题,我的一位同事提议考虑在我们的 AuthN 系统中将微服务声明为身份/用户,以便为它们分配适当的权限。最初提供的用户令牌随后将被调用链中的参与服务令牌替换。回到这个例子,新的请求流将是:

  1. 用户先前登录的 Web 应用程序将成员注册请求发送到 ReceptionService API,在标头中包含用户访问令牌。

  2. ReceptionService 验证用户令牌,确保用户被授予“注册”权限,执行它需要做的任何业务逻辑,最后向 MemberService API 发送一个成员创建请求,在头中包含它自己的服务令牌(因此替换原始用户令牌)。

  3. MemberService 验证服务令牌,确保服务被授予“member.create”权限,最后创建成员。

使用此解决方案,AuthN 系统中的服务身份将通过从管理权限分配的管理员用户中过滤出来的方式进行标记。对服务身份的权限分配将是预先定义的,用户不可能对其进行配置。虽然它满足了我们的假设/先决条件,但我对这种方法几乎没有担忧:

  • 在处理“谁做了什么”(审计)时,令牌中提供的用户身份和服务身份将被冷漠地列出。在我们的示例中,RegistrationService 将审核启动操作的实际用户,但 MemberService 将审核该操作是由“RegistrationService”执行的。在报告场景中,这意味着我需要协调来自两个系统的审计,以确定“实际上是谁创建了成员”,以某种方式使用相关 ID。
  • 虽然我理解需要在不涉及实际用户的场景中为系统组件创建标识(自动批处理/第三方访问 ..),但我不喜欢在以下场景中用服务令牌替换用户令牌用户实际启动了用例。这是标准的设计模式吗?

难道我们的一些假设/先决条件是错误的?

  • 例如,某些微服务即使
    在安全环境中仅被其他受控微服务访问,也不强制执行权限,这真的是一个安全漏洞吗?假设
    后者的答案是“不,它不会是一个安全漏洞”,那么如果明天,我需要让 MemberService API
    在安全环境之外也可以访问(例如,因为我将它 …

rbac authz microservices

7
推荐指数
1
解决办法
1071
查看次数

VisualSVN服务器密码更改

有没有人想出一种方法允许远程用户在VisualSVN服务器中更改自己的密码?我们让它以'独立'(非ActiveDirectory)模式运行,我发现这个优秀产品的唯一缺点是用户无法设置或更改其密码.

这是我可以忍受的东西,但密码永远不会改变的安全含义是众所周知的.我确信必须能够添加功能,但我在VisualSVN使用的任何技术中都没有一点天赋 - 所以只是想知道是否有人这样做过?

更新2010-12-21

我决定自己实施这项计划.密码加密是我感谢一些帮助的第一个障碍.我发现VisualSVN有一个密码文件,htpasswd其中有一个用户列表,格式如下:

JoePublic:$ APR1 $ LPQ $ kF8nZjjuFxgJBExK8ruf20

JoePublic是用户名,我假设冒号是分隔符,其余的是某种密码哈希.在这种情况下使用的实际密码是ForgetMeNot.

这似乎不是MD5或SHA哈希,但我在这方面并不是非常明智,所以很可能.鉴于上述信息,任何人都可以推断出使用的算法吗?

svn passwords user-management visualsvn-server authz

6
推荐指数
1
解决办法
9253
查看次数

SVN使用通配符限制文件访问

我接管了项目的软件负责人,现在正在管理所述项目的SVN存储库.使用authz文件控制对不同部分的访问.已经为开发人员,潜在客户,测试人员和cm控件设置了组.

我们希望限制访问的多个分支和标记中存在一个文件.为了将其锁定,除了引导组之外,我不想要读取或写入访问权限.有没有办法在没有列出每个分支/标签区域的情况下执行此操作?如果可能的话,我不希望任何人在旧版本中找到它.

我的authz文件的例子在这里:

### Groups
[groups]
developers = user1, user2
leads = fearless_leader

##############################################
### Defaults for all repos in this directory
##############################################
[/]
*=r
@developers = r
@leads = rw
##############################################
### Project repository settings
##############################################
[project_src:/]
@developers = rw
@leads = rw

##############################################
### myPrivateKey.pfx settings
##############################################
[project_src:/project/branches/release1/deploy/licenses/myPrivateKey.pfx]
@developers = 
@leads = rw
Run Code Online (Sandbox Code Playgroud)

我希望我可以使用通配符来执行以下操作(但这不起作用):

##############################################
### myPrivateKey.pfx settings
##############################################
[project_src:/project/branches/*/deploy/licenses/myPrivateKey.pfx]
@developers = 
@leads = rw
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

svn authorization collabnet authz

4
推荐指数
1
解决办法
4208
查看次数

使用Windows身份验证方法的SVN权限管理工具

我们在Windows中使用VisualSVN Server作为SVN服务器.但它在管理权利方面的能力非常有限.此外,我们无法使用svn_access_file,因为我们的用户将使用Windows身份验证方法进行身份验证.

是否有任何工具来管理使用/支持Windows身份验证的权限?

svn windows visualsvn-server windows-authentication authz

2
推荐指数
1
解决办法
2226
查看次数

使用SVN"authz"和svnserve控制控制

我在Windows上运行SVN服务器

我为这样的项目创建了一个repo:

E:\ SVN\WEB\MYWEB-WWW

我在"passwd"文件中添加了用户:

[users]
admin      = qazwsx 
developer1 = 123456
developer2 = qwerty
Run Code Online (Sandbox Code Playgroud)

然后我编辑"authz"文件:

[groups]
Admins = admin
Developers = developer1, developer2

[/]
@Admins = rw
@Developers = r
* =
Run Code Online (Sandbox Code Playgroud)

我的"svnserve.conf"文件如下所示:

anon-access = none
auth-access = write
auth-access = read

password-db = passwd

authz-db = authz 
Run Code Online (Sandbox Code Playgroud)

我检查了repo,并使用admin用户登录,一切都很好,但是当我尝试使用admin用户进行提交时,它无法显示此消息"身份验证失败"

我也试过没有使用"admin"用户的组,但同样的错误

svn tortoisesvn authz svnserve

1
推荐指数
1
解决办法
9725
查看次数