使用密钥和授权的企业级访问控制
“私有存储库”、“团队和组织”、“权限”……,听起来你只需要提供安全的私有下载。嗯,不完全是。如果您的客户是Bintray的用户,那么这些都是非常适合您的功能。但如果她不是呢?好吧,还有签署的url.这些应该就可以了。只需签署文件并将URL发送给用户。但是,如果您希望与一组人共享整个存储库、包或版本,但需要给每个人不同的权限,该怎么办呢?有些只能查看或下载你的文件,但其他人应该可以删除你的文件或上传新文件。签名url不包含这种控制。它们对于单个文件非常有用,但是对于更细粒度的访问控制,您需要更复杂的特性。这就是权利和钥匙的由来。
“权利,”你说?那些是什么?
权利是你可以给任何人的特权,是的,任何人,不仅仅是Bintray用户,在你的私有存储库中的实体。“实体”是指任何可以包含文件的东西——整个存储库、存储库中的路径、特定包或特定版本。“特权”是指“rw”—下载、上传和删除,或“r”—仅下载。如果您没有注意到—实体和特权的组合为您提供了提供访问所需的任何粒度级别。
但是如何解锁权利呢?
我想你明白了。钥匙解锁权利。您生成一个密钥及其密码(或者Bintray可以自动为您生成一个)。您的用户必须提供用户名和密码才能启用解锁权限的密钥。这就是安全所在。只有同时拥有您提供给他们的密钥的用户名和密码的用户才能根据您创建的权限访问存储库实体。
那么这一切是如何运作的呢?
使用Bintray的REST API的2个简单步骤:
- 创建密钥。您可以为创建的每个密钥提供一个密码,或者Bintray可以为您生成一个密码。
- 创建授权在创建授权时,指定要应用哪些密钥。
现在需要做的就是为用户提供其中一个密钥的用户名和密码。您的用户现在应用REST API来访问您的私有Bintray资源,同时包含您作为API调用参数提供的密钥和密码。Bintray将检查是否存在允许访问该资源的权限,以及该权限是否具有用户指定的与之关联的密钥。
让我们看一个实际的例子。
比如用户“ACMECorp”是否有私有存储库调用“极致”.
这个私有的仓库包含几个版本的acprod“acmecorprod”受公共访问保护的目录。

acmecorp希望授权“白金客户”下载不同版本。不用说,"铂金女士"没有Bintray账户。
首先,ACMECorp需要创建一个密钥。Bintray提供了两种方法来维护对分发给外部用户的密钥的控制。最简单的方法就是在密钥上写上有效期。更高级的方法是设置用于验证和验证密钥的内部服务器,并在创建密钥时向Bintray提供服务器URL。每次用户尝试访问ACMECorp的存储库时,Bintray都会使用以下URL验证密钥ACMECorp创建时提供。由于ACMECorp对其IP非常小心,我们假设他们想用自己的系统验证密钥:
curl -XPOST -uacmecorp: APIKEY " https://api.bintray.com/users/acmecorp/download_keys “到期”:7956915742000 " existence_check ": { :“url = https://callbacks.myci.org/username=:用户名,密码:密码”, “cache_for_secs”:60 }
|
Bintray创建一个密钥及其关联的密码
状态:201已创建 |
acmecorp控件的下载权限acmecorprod目录,同时分配key1这是刚刚创建的
curl -XPOST -uacmecorp:APIKEY " https://api.bintray.com/packages/acmecorp/ acme / acprod /津贴 { |
Bintray回应:
状态:201已创建 |
基本上就是这样。acmecorp现在我只需向白金女士提供用户名“key1@acmecorp”和密码,她现在就可以使用它们访问acmecorprod目录acmecorp的存储库。
例如,要下载acprod 1.0版本,Platinum女士将使用:
curl -XGET "https://dl.bintray.com/acmecorp/acme/acmecorprod/1.0/acprod.exe" -ukey1@acmecorp -p "8 fdf84d2a814783f0fc2ce869b5e7f6ce9f286a0” |
但是如果acmecorp和铂女士闹翻了。当这种情况发生时,acmecorp可以从他们的验证服务器上删除下载密钥,然后“嘿,快”,白金女士现在被锁定了acmecorp的存储库。
试着这样做在Docker Hub上, RubyGems.org, NuGet Gallery, Maven Central或任何其他存储库或下载中心在那里。Bintray是唯一一个为您提供这种级别的私有资源访问控制的工具。2022世界杯阿根廷预选赛赛程
最初由https://blog.bintray.com/2015/06/09/enterprise-level-access-control/发布shiranr