CN114365451A - 源控制环境中的选择性安全增强 - Google Patents

源控制环境中的选择性安全增强 Download PDF

Info

Publication number
CN114365451A
CN114365451A CN202080063102.1A CN202080063102A CN114365451A CN 114365451 A CN114365451 A CN 114365451A CN 202080063102 A CN202080063102 A CN 202080063102A CN 114365451 A CN114365451 A CN 114365451A
Authority
CN
China
Prior art keywords
authentication
branch
document
account
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080063102.1A
Other languages
English (en)
Inventor
F·谢贝斯塔
Y·L·谢
曾毅
L·陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN114365451A publication Critical patent/CN114365451A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

一种至少部分基于与在其下组织文档的分支相关联的安全策略来增强对文档存储库的文档的认证要求的方法。该方法实现了在分支策略中标识的批准服务。批准服务确定是否向用户授权修改分支中包括的文档。该方法还选择性地要求来自多个认证***的多个认证,以便访问文档存储库中的一个或多个特定分支。此外,多个认证***是基于单独且独立的认证凭证集合的。

Description

源控制环境中的选择性安全增强
背景技术
尽管在过去的几十年中取得了长足的进步,但是电子***的安全性仍然存在风险。这些风险中的一些风险与企业外部的恶意行为者有关,这些行为者成功地篡夺了保护企业资源的传统手段。例如,恶意行为者可以非法或以其他方式获得提供对企业资源的访问权限的认证凭证。在一些情况下,具有相对强大的安全保护的软件仍可能包括漏洞,这些漏洞可能被具有识别这些漏洞所需的足够技能和资源的恶意行为者发现和利用。在开发软件的软件组织内也存在漏洞。如果漏洞可能被有意包括在最终发布给公众的软件产品中,则这些漏洞可以被利用。这样的利用可能导致所述软件产品的客户数据受到损害。因此,需要提高计算机安全性以进一步降低与计算机软件的操作和开发相关联的风险。
附图说明
图1是实现一个或多个公开实施例的***的概览图。
图2示出了在示例实施例中由版本控制***102维护的文档分支的示例。
图3示出了在一个或多个公开实施例中实现的示例数据结构。
图4示出了由一个或多个公开实施例实现的示例消息部分。
图5示出了版本控制分支的示例结构。
图6是示出一个或多个公开实施例中包括的组件之间的消息流的序列图。
图7是用于对版本控制***的分支进行认证的方法的流程图。
图8示出了可以在其上执行本文中讨论的技术(例如,方法)中的任意一种或多种的示例机器800的框图。
具体实施方式
如上文所讨论的,计算机安全性的当前水准呈现出如下技术问题:恶意行为者仍然有可能获得对计算机资源的未经授权的访问权限。这可能是通过恶意参与者获得认证凭证而发生的,这使他们能够访问受那些凭证保护的计算机资源。当恶意行为者获得对计算机资源的访问权限时,例如作为其雇用的一部分,未经授权的访问也会发生。然后,恶意行为者滥用他们的访问权限来实现自己在其雇佣范围之外的恶意目的。
公开实施例提出了针对该技术问题的技术解决方案。如上所述,该技术解决方案降低了恶意行为者获得未经授权的访问权限的能力。这些实施例中的一些实施例为版本控制***的分支定义了安全策略。安全策略定义了在将对文档存储库的特定部分或分支的访问权限准予某个账户之前必须完成的一个或多个认证(根据可选的一个或多个准则)。
在一些实施例中,是否要求认证取决于版本控制***的哪个分支正在被访问。一些分支,例如由软件工程师用于其自身的开发工作和测试的那些分支,所受认证的程度比其他分支要小,所述其他分支的文档用于生成被分发给客户或代表客户运行的可执行映像。通过使访问所需的认证量基于所访问的分支而不同,可以保持访问的灵活性。这种灵活性最大程度地减少了软件工程师在日常工作中的额外负担,同时在最重要的时候提供了额外的安全性,例如当软件工程工作产品被提交给用于生成客户使用的运行软件的分支时。
为了在应用附加认证过程中获得额外的灵活性,一些实施例以一个或多个准则为条件来决定附加认证,这些准则包括正在被访问的分支的特定部分、正在被访问的数据量、或者进行请求的用户所位于(或没有位于)的地理区域或网络域。例如,对操作***代码的一些修改,例如对用户空间应用的修改,可以被认为不太关键,因此至少在一些实施例中,可以在没有附加认证的情况下进行这样的修改。至少在一些实施例中,对操作***内核代码或在内核空间中运行的任何代码的改变被认为对***安全性更为关键,因此要求附加认证。因此,由于这些实施例提供的附加的安全性,负责辅助用户空间工作的工程师可能不会承受额外的负担,而对内核模块的改变将要求增强的认证过程。类似地,一些实施例基于正在访问的文档存储库的部分的大小来控制所需的认证量。作为一个示例,在一些实施例中,如果用户请求检出(check out)特定分支的整个操作***内核,则要求附加认证。在一些实施例中,相同特定分支上的单个内核文件的检出不要求附加认证。
因此,公开实施例提供了一种用于在文档版本控制***中提供额外的安全性的灵活方法。这种灵活方法在适当的情况下提高安全水平,同时将在日常工作中施加于软件工程师的以及施加于计算***的开销降至最低,而这原本必须执行额外的安全操作。
图1是实现一个或多个公开实施例的***的概览图。图1示出了访问文档存储库104的版本控制***(VCS)102。文档存储库104存储软件产品的源代码。代码存储库由VCS102控制,VCS 102提供对文档存储库104的受控访问。例如,如果客户端设备106登录到具有足够特权的账户,则可以获得存储在文档库104中的软件的至少一部分的副本。在图1的示例实施例中,企业认证***108提供了经由VCS 102对文档存储库104的访问。当对针对企业资源112和/或文档存储库104的访问进行认证时,企业认证***108咨询企业认证数据存储装置110以验证由客户端设备106提供的凭证。企业认证***108将账户与第一凭证集合进行关联。因此,当提供对文档存储库104的访问时,VCS 102被配置为要求尝试访问的账户先前已经被企业认证***108认证了。
示例***100还包括构建存储库120。构建存储库从构建***122接收代码。构建***122从文档存储库104接收代码,并编译或以其他方式处理从代码存储库接收的代码以生成一个或多个可执行映像,所述可执行映像被存储在构建存储库120中。
***100还包括数据中心114。数据中心114托管经由防火墙107经由网络109可访问的一个或多个应用。经由第二认证***116提供对数据中心114的任何文件(例如,可执行文件)进行修改的许可,该第二认证***116依赖于第二认证数据存储装置118。例如,第二认证数据存储装置118定义与企业认证数据存储装置110分离并且独立的认证凭证。由构建***122生成并存储在构建存储库120中的可执行映像在某些条件下,例如在数据中心114中操作的软件的新近发布期间,写入数据中心114。在图1的示例实施例中,为了更新在数据中心114中运行的软件,要求经由第二认证***116的认证。
图1还示出了批准服务器124。VCS 102被配置为实现分支指定策略,所述分支指定策略要求在对特定分支进行任何改变之前要求批准服务器124的额外批准。在一些实施例中,批准服务器124执行或运行批准服务,所述批准服务提供归属于批准服务器的一个或多个功能,如下所述。
如果配置了特定分支使得要求批准服务器124的批准,则VCS 102向批准服务器124请求这种批准。在一些实施例中,批准服务器124被配置为在批准特定用户修改特定分支之前,经由第二认证***116获得对用户的认证。同样,该额外的认证是由特定于VCS 102所维护的特定分支的策略来定义的。第二认证***116被配置为将账户与第二凭证集合相关联。在经由第二认证***116成功获得对用户的认证之后,批准服务批准用户对分支的修改,并将该信息提供回VCS 102。
图2示出了在示例实施例中由VCS 102维护的文档分支200的示例。图2示出了主线分支202。开发分支204在分支操作206处接收主线分支的副本,使得开发分支204的检查点208包括与在主线分支202的检查点210处的文档等同的文档。
从开发分支204的检查点214创建特征分支212,使得特征分支212的检查点216包括与开发分支204的检查点214等同的文档。特征分支212的检查点218处的文档与开发分支204的检查点220处的文档集成在一起。发布分支224的检查点222处的文档与主线分支202的检查点226处的文档集成在一起。
公开实施例中的至少一些实施例将安全策略与主线分支202、或开发分支204、特征分支212、或发布分支224中的一个或多个相关联。安全策略设计在提供对分支的访问之前必须满足的一个或多个准则。在一些实施例中,对分支的读取访问与第一安全策略相关联,并且对分支的写入访问与第二安全策略相关联。
在一些实施例中,与分支相关联的安全策略指定访问该分支所需的一个或多个认证。例如,在一些实施例中,安全策略指定:访问与该安全策略相关联的分支要求企业认证***108的认证。在一些实施例中,在提供对分支的访问之前,安全策略还要求第二认证***116的认证。
一些实施例基于提供的访问类型来决定一个或多个指定认证。例如,在一些实施例中,对分支的读取访问仅要求单个认证***(例如,企业认证***108)的认证,而对分支的写入访问则要求至少两个认证***(例如,企业认证***108和第二认证***116)的认证。
一些实施例基于在分支上访问的数据量来决定一个或多个指定认证。例如,在一些实施例中,如果请求访问的文件数量或字节数量超过阈值(例如,由安全策略定义的阈值),则要求认证。
一些实施例基于请求访问的用户/账户的位置来决定一个或多个指定认证。因此,例如,在一些实施例中,如果请求访问的账户正在请求从预定义的地理区域(例如,与公司园区相对应)之内请求访问,则不要求指定的认证。在一些其他实施例中,如果所请求的访问来自定义的地理区域,则要求指定的认证。在一些实施例中,该基于位置的对附加认证的要求还基于正在访问哪个分支。因此,在一些实施例中,一个或多个分支没有基于客户端位置的附加认证要求,而另一分支在某些位置条件下确实具有附加认证。
图3示出了在一个或多个公开实施例中实现的示例数据结构。尽管下文将图3的示例数据结构讨论为关系数据库表,但各个实施例将利用各种已知的数据架构。例如,一些实施例实现下列各项中的一项或多项:关系数据库表、非结构化数据存储、传统的内存结构(例如,链表、树、数组)或其他数据结构架构。图3中提供的示例绝不旨在限制由一个或多个公开实施例使用的数据结构。
图3示出了分支表301、安全策略表311、认证表321、准则表331以及文档表341。分支表301包括分支标识符字段304和安全策略标识符字段306。分支标识符字段304唯一地标识分支,例如上文针对图2讨论的主线分支202、开发分支204、特征分支212或发布分支224中的任何一个。安全策略标识符字段306标识将在下文进一步讨论的安全策略表311的安全策略,所述安全策略应用于(由字段304标识的)分支。
安全策略表311包括安全策略标识符字段312、认证标识符字段314、访问类型字段316、数据大小字段318和位置字段319。安全策略标识符字段312唯一地标识安全策略,并且可以与安全策略标识符字段306进行交叉引用。认证标识符字段314标识为了允许对分支的访问而要求通过的认证(以与认证相关联的任何准则为条件,如下文进一步讨论的)。访问类型字段316定义由认证控制的访问类型。在各个实施例中,访问类型字段316标识读取访问、写入访问、或者读取和写入访问。一些实施例支持的额外访问类型包括分支删除访问。数据大小字段318可选地定义数据大小限制,所述数据大小限制在被逾越时要求由字段314定义的附加认证。例如,如果请求的数据量小于由数据大小字段318定义的量,则一个示例实施例在修改第一分支时不要求附加认证,而如果请求的数据量小于数据大小字段318定义的第二量(例如,第一和第二分支将具有定义不同数据大小限制的两个不同的安全策略),则在修改第二分支时要求附加认证。注意,为了防止用户为特定操作绕过数据大小限制,一些实施例在预定义的时间段内跟踪由特定账户或用户检索的数据量,或仅跟踪由特定账户在该账户历史记录期间检索的数据量。然后,将该跟踪的量与由数据大小字段318针对特定分支指定的数据大小进行比较,以确定附加认证是否是必要的。
位置字段319定义要求或不要求附加认证的位置。例如,在一些实施例中,位置字段319定义了当要求附加认证时的位置(例如,地球上的特定国家或地理区域)。如果从分支请求数据的客户端设备不在指定区域内,则至少位置字段319不要求第二认证。在一些实施例中,位置字段319定义不要求第二认证的地理区域。例如,在示例实施例中,位置字段319定义不要求附加认证的公司园区或其他安全区域。一些实施例提供了要被包括在由安全策略表定义的安全策略中的多个位置字段。在这些实施例中,在确定是否要求附加认证时考虑由每个位置字段指定的位置参数。可以经由逻辑和或者逻辑或操作来评估每个位置参数(例如,两个不同的地理区域要求认证)。
注意,在一些实施例中,安全策略表311中的多个行指定相同的安全策略标识符值。以这种方式,安全策略可以为单个分支(或多个分支,如果多个分支引用相同的安全策略标识符的话)指定一个以上的认证(或一个以上的条件认证)。
认证表321包括认证标识符字段322、认证服务器字段324、认证域字段326和认证准则列表字段328。认证标识符字段322唯一地标识安全策略所要求的认证,并且可以与安全策略表311的认证标识符字段314进行交叉引用。认证服务器字段324标识执行(由认证标识符字段322指定的)认证的认证服务器。认证域字段326标识要在其中执行认证的域。认证准则列表字段328标识为了执行(由认证标识符字段322标识的)认证必须满足的一个或多个准则。如果不满足由认证准则列表字段328指定的任何准则,则不需要执行认证即可准予访问权限(以任何其他所需的认证为条件)。
准则表331包括准则标识符字段334和阈值字段336。准则标识符字段334唯一地标识准则。例如,一些实施例利用某些条件来预定义标识符。例如,在一些实施例中,第一标识符与将请求访问的文件的数量与由阈值字段336所定义的阈值进行比较的准则相关联。在一些实施例中,第二标识符与将请求访问的数据量与由阈值字段336定义的阈值进行比较的准则相关联。在一些实施例中,第三标识符与将请求者的位置与预定义区域进行比较,并且如果请求者在预定义区域内则应用认证的准则相关联。在一些实施例中,第四标识符与将请求者的位置与预定义区域进行比较,并且如果请求者在预定义区域内则不应用认证的准则相关联。在一些实施例中,第五标识符与将分支内的位置(例如,访问请求所针对的文件目录结构)与预定义的位置(例如,通配目录结构或由正则表达式指定的)进行比较,并且在所请求的访问是针对预定义位置的情况下应用认证的准则相关联。在一些实施例中,第六标识符与将分支内的位置(例如,请求访问所针对的文件目录结构)与预定义的位置(例如,通配目录结构或由正则表达式指定的)进行比较,并且在所请求的访问是针对预定义位置的情况下不应用认证的准则相关联。
文档表341包括文档标识符字段344、分支标识符字段346和内容字段348。文档标识符字段344和分支标识符字段346唯一地标识文档的特定版本。在文档标识符字段中具有公共值但具有不同分支标识符字段346的两个文档在两个不同分支上表示相同文档,因此是相同文档的两个不同版本。内容字段348定义由文档标识符字段344和分支标识符字段346的组合所标识的文档的内容。
账户表352包括账户标识符字段354和账户凭证字段356。账户标识符字段354唯一地标识特定认证***的账户。账户凭证字段356定义了用于对账户进行认证的凭证集合(例如,账户名称和/或账户密码中的一个或多个)。一些实施例实现了针对用户的第一认证所依赖的第一认证数据存储装置(例如,企业认证数据存储装置110),以及针对第二认证所依赖的第二认证数据存储装置(例如,第二认证数据存储装置118)。在这些实施例中,每个数据存储装置对单独且独立的认证凭证信息进行存储。例如,第一用户具有存储在第一认证数据存储装置中的第一账户名和第一密码,以及存储在第二认证数据存储装置中的第二不同账户名和第二不同密码。在一些实施例中,指派给单个“真实”用户的账户名称在第一和第二认证数据存储装置中是等同的。一些示例实施例利用与账户表352相似或等同的结构来存储认证凭证。
图4示出了由一个或多个公开实施例实现的示例消息部分。图4示出了请求消息部分400、响应消息部分410和请求完成消息部分420。在一些实施例中,在版本控制***(例如,VCS 102)与客户端设备或用户设备(例如,客户端设备106)之间交换请求消息部分400、响应消息部分410和请求完成消息部分420中的每一个。
消息部分400包括账户标识符列表字段402、请求标识符字段404、路径标识符字段406、分支标识符字段408和访问请求字段409。账户标识符列表字段402唯一地标识做出请求的一个或多个经认证的账户。在一些实施例中,存储在账户标识符列表字段402中的账户标识符中的任何一个都可以与上文针对图3讨论的账户标识符字段354交叉引用。注意,在一些实施例中,每个认证***(例如,企业认证***108和/或第二认证***116)维护账户表352的副本。请求标识符字段404唯一地标识对版本控制***例如上文针对图1讨论的VCS102,的特定请求。路径标识符字段406定义版本控制***内请求访问的路径(例如“/module1/codefile 1”)。分支标识符字段408唯一地标识请求被定向到的分支(例如,上文针对图2所讨论的主线分支202、开发分支204、特征分支212或发布分支224中的任何一个)。在一些实施例中,字段408中指定的分支标识符与上文针对图3讨论的任何分支标识符字段交叉引用。访问请求字段409定义由请求(由请求标识符字段404标识的请求)所请求的访问类型。在一些实施例中,访问请求字段409指定读取访问、写入访问、读取/写入访问或分支删除访问中的一个或多个。
响应消息部分410包括请求标识符字段412和结果字段414。请求标识符字段412与请求标识符字段404相对应。换句话说,对请求的响应包括等同的请求标识符字段值作为请求本身。结果字段414指定请求的结果,例如准予或拒绝。
请求完成消息部分420包括请求标识符字段422、文档标识符字段424、分支标识符字段426和文档数据字段428。在请求是读取请求的情况下,版本控制***发送包括所请求数据的请求完成消息部分(如果请求被准予的话)。当请求是写入请求时,请求者提供请求完成消息部分,指示要写入的数据。为此,文档标识符字段424和分支标识符字段426结合起来定义提供数据所针对的文档。文档数据字段428定义文档的数据。注意,对于适用于多个文档的请求,在用户设备和版本控制***之间交换多个请求完成消息部分。
图5示出了文档存储库500的示例结构。文档存储库500包括第一分支501,所述第一分支501包括分层文件结构。如图所示,根级文件夹502包括第一级的文件和/或文件夹。第一级包括文件504和506,以及文件夹或目录508和文件夹或目录510A。文件夹或目录508包括分别标记为“文件3”和“文件4”的文件512和文件514。文件夹或目录510A包括分别标记为“文件5”和“文件6”的文件516A和文件518A。
在图5中还示出了第二分支520。第二分支520包括第一分支501中包括的文件的子集。例如,第二分支包括与第一分支501中的文件夹或目录510A相对应的文件夹510B,分别与第一分支501中的文件516A和文件516B相对应的文件516B和文件518B。然而,第二分支520中不包括与文件504、506、512和514相对应的文件,也不包括文件夹或目录508。
VCS 102维护特定于第一分支501和第二分支520中的每个分支的文件的副本。在一些实施例中,存储了两个副本,每个分支一个副本。在一些实施例中,第二分支520是使用增量信息来实现的,所述增量信息跟踪第二分支520中的文件相对于第一分支501中的它们的相应文件的改变。公开实施例提供了特定于特定分支的安全策略。例如,一些实施例定义了适用于第一分支501但不适用于第二分支520的分支策略。这些相同的实施例中的一些实施例定义针对第二分支520而非第一分支501的分支策略。在一些实施例中,VCS 102支持以与针对第一分支501和第二分支520所示的方式相类似的方式创建新分支的分支操作。另外,在至少一些实施例中,VCS 102支持合并操作,所述合并操作将一个分支的文件与另一分支的相应文件集成在一起。例如,第二分支520到第一分支501的合并操作会将第二分支520的文件中的任何改变与第一分支501的文件中的数据集成在一起。如果在合并操作发生之前修改了第一分支501和/或第二分支520中的任一分支中的一个或多个文件,则那些改变通常被包括在分支的所产生的集成文件集中。
图6是示出一个或多个公开实施例中包括的组件之间的消息流的序列图。图6示出了客户端设备106、存储库服务606、批准服务608和认证提供者609。在一些实施例中,存储库服务606在VCS 102计算机上运行。在一些实施例中,批准服务608在VCS 102计算机上运行。在其他实施例中,批准服务608在不同的物理硬件设备上运行。在一些实施例中,批准服务器608是网络服务。因此,批准服务608是外部服务,因为它在存储库服务外部。在一些实施例中,批准服务608在上文针对图1讨论的批准服务器124上执行或运行。存储库服务被配置为:基于分支配置信息来查询批准服务器124(例如,或运行在批准服务器124上的批准服务),如下文进一步讨论的。
在一些实施例中,认证提供者609在第二认证***116上运行。认证提供者609依赖于包括认证凭证的认证数据库,所述认证数据库与企业认证***108所依赖的任何认证凭证是相分离的并且是不同的(例如在一些实施例中经由企业认证数据存储装置110)。
消息传送序列600示出了由客户端设备106向存储库服务606发送的拉取请求消息610。拉取请求消息610引用由存储库服务606访问的存储库(例如,文档存储库104)内的分支。在一些实施例中,拉取请求消息610包括消息部分400的一个或多个字段,如上文针对图4所讨论的。例如,在一些实施例中,拉取请求消息610经由分支标识符字段408来引用分支。
在接收到拉取请求消息610时,存储库服务606确定由拉取请求消息610引用的分支要求批准服务608的批准。例如,存储库服务606的一些实施例维护分支与必须批准对每个分支内的文档的改变的任何服务之间的映射(例如,经由分支表301,所述分支表301将(由字段304定义的)分支标识符映射到安全策略标识符(经由字段306))。然后,存储库服务将消息612发送到批准服务608,以指示接收到拉取请求消息610。在一些实施例中,消息612还包括拉取请求消息610中包括的信息,例如标识要被批准的分支的信息。
在接收到消息612之后,批准服务将建立批准链接消息614发送到存储库服务606。建立批准链接消息614提供引用由批准服务608实现或提供的网络服务器的URL。存储库服务606存储该链接,使得该链接显示在用户界面中,所述用户界面指示在批准拉取请求消息610之前要求经由该链接的批准。
客户端设备106上的用户然后经由用户界面来选择链接。在选择之后,消息616被从客户端设备发送到由存储库服务606托管或提供的网络服务器。批准服务608还经由消息618将元数据发送到客户端设备106。批准服务608利用质询消息620来响应消息616。在一些实施例中,质询消息620被配置为:使客户端设备106在客户端设备106的显示器上显示针对认证凭证的提示。
在从用户接收到定义认证凭证的输入之后,客户端设备106将包括认证凭证的凭证消息622发送到批准服务608。批准服务608然后经由消息624将凭证传递给认证提供者609,在一些实施例中,认证提供者609类似于上文针对图1讨论的第二认证***116。基于这些凭证,认证提供者609批准或不批准对指定分支的访问,并经由结果消息626将决定传送给批准服务608。
认证提供者609提供的认证通常不是特定于分支的,而是指示所提供的凭证在由认证提供者609管理的认证***内是否有效。为了对凭证进行认证,认证提供者609将凭证与认证数据库或数据存储装置进行比较。该认证数据库或数据存储装置包括与通常访问存储库服务和/或其他企业资源(例如,与企业认证数据存储装置110不同)所必要的那些凭证相分离和不同的凭证。认证的结果经由结果消息626被提供给批准服务。
在一些实施例中,批准服务608执行一个或多个附加确认、批准或检查628,以确定用户是否被批准访问分支。例如,在一些实施例中,批准服务608基于用户试图访问的文档存储库中的路径或文件、一天中的时间、客户端设备106的位置、拉取请求消息610访问的数据量或其他参数来确定是否批准拉取请求。批准服务608然后将批准结果消息630发送到存储库服务606。然后,存储库服务606基于批准结果消息630来完成拉取请求,并基于完成的拉取请求消息632将结果通知给客户端设备106。在一些实施例中,存储库服务606实现“git”服务器。
图7是用于对版本控制***的分支进行认证的方法的流程图。在一些实施例中,下文针对图7和方法700讨论的一个或多个功能由硬件处理电路执行。例如,在一些实施例中,存储在存储器(例如,下文讨论的存储器804和/或806)中的指令(例如,下文讨论的指令824)将硬件处理电路(例如,下文讨论的硬件处理器802)配置为执行方法700的功能中的一个或多个功能。因此,在一些实施例中,方法700是设备实现的方法。
在开始操作702之后,方法700移至操作704。在操作704中,对第一账户进行认证。认证基于第一认证凭证。操作704的第一账户认证将第一认证凭证与第一认证数据存储装置中的凭证进行比较。例如,在一些实施例中,将第一认证凭证(例如,账户名、密码)与类似于企业认证数据存储装置110的第一认证数据存储装置进行比较,如上文针对图1所讨论的。第一认证数据存储装置存储将第一账户与第一认证凭证集合(例如,账户名、账户密码、账户辅助密码)相关联的数据。在一些实施例中,操作704的认证提供对企业资源的访问,例如上文针对图1讨论的企业资源112。在一些实施例中,操作704的认证还提供对文档存储库(例如,文档存储库104)的至少一部分的访问。例如,在示例中,操作704的第一认证提供对上文针对图5讨论的第二分支520而非第一分支501的访问。
在操作706中,从第一账户接收请求。请求是将文档提交到文档存储库。在一些实施例中,该请求包括上文讨论的消息部分400的一个或多个字段。该请求标识请求访问的分支。在示例实施例中,请求访问图5的第一分支501,而请求访问的用户已经经由操作704的第一认证具有对第二分支520的访问权限。
在操作708中,识别文档存储库的分支。例如,在一些实施例中,对该请求进行解码或解析以识别该分支。在一些实施例中,该请求包括上文针对消息部分400讨论的一个或多个字段。例如,在一些实施例中,通过分支标识符字段408来指示该分支。
在操作710中,确定需要第二认证来访问该分支。例如,在一些实施例中,操作710识别分支表301中的分支。然后确定该分支到安全策略的映射(例如,经由分支表301)。该安全策略指示附加认证是必要的(例如,在一些实施例中,经由安全策略表311和/或认证标识符字段314)。如上所述,在各个实施例中,第二认证是否必要取决于多个因素。例如,如上所述,一些实施例基于请求访问分支的客户端设备的位置来决定第二认证。在一些实施例中,条件可以指示特定地理区域内的客户端设备不被要求执行第二认证来访问该分支,而该特定地理区域之外的第二客户端设备被要求执行第二认证以访问相同分支。一些实施例定义了无条件地要求第二认证的某些位置或区域。例如,一些实施例定义:在定义的地理区域内的任何客户端设备必须执行第二认证。
一些实施例以请求访问的数据量为条件来决定第二认证(例如,经由数据大小字段318)。因此,如果账户请求访问超过指定的预定义限制的数据量(例如,整个操作***内核代码库),则要求第二认证。如果请求的数据量低于预定义的限制,则一些实施例在访问分支时不要求第二认证。这些各种策略也可以在各个实施例中进行组合(例如,特定区域内的请求访问大于预定义的数据限制的数据的客户端设备要求第二认证)。
在操作714中,执行第二认证。第二认证基于与用于执行操作704的第一认证的认证数据存储装置不同的第二认证数据存储装置(例如,对比企业认证数据存储装置110和第二认证数据存储装置118)。因此,虽然第一认证数据存储装置存储第一账户和第一认证凭证之间的第一关联,但是第二认证数据存储装置存储第一账户和第二认证凭证之间的不同的第二关联。
在至少一些实施例中,执行第二认证包括与认证服务交换消息。例如,在一些实施例中,(例如,在批准服务器124上运行的)批准服务充当客户端设备(例如,106)和(例如,在一些实施例中在第二认证***116上运行)认证服务之间的代理。因此,在一些实施例中,执行第二认证包括:通过批准服务从客户端设备接收认证请求(例如,上文针对图6讨论的消息622),然后批准服务从认证服务请求认证(例如,上文讨论的图6的消息624)。在一些实施例中,批准服务从认证服务(例如,以及认证***)请求第二认证,而在批准服务与客户端设备之间没有任何消息交换。
在操作716中,基于第二认证,将文档提交到文档存储库。如果第二认证成功,则一些实施例提交文档,而如果第二认证不成功,则不批准提交该文档,因此提交被禁止。在操作716完成之后,方法700移至结束操作718。
方法700的一些实施例对提交文档的多个请求进行处理。在各个实施例中,这些多个请求中的每个请求都来自第一账户或不同的第二账户。在一些实施例中,多个请求中的每个请求指示分支,并且方法700以与上文针对操作710所描述的方式相类似的方式来确定分支是否要求附加认证。如果是的话,则方法700执行附加认证,其中如果需要访问分支,则以该认证是否成功为条件来决定对分支的访问。注意,在一些公开实施例中,由方法700处理的一个或多个请求不是将文档提交(写入)到文档存储库而是从文档存储库读取文档(例如,“检出”操作)。如上文针对图3所描述的,在一些实施例中,安全策略表311提供了要求附加认证的访问类型的定义(例如,经由字段316)。
图8示出了可以在其上执行本文中讨论的技术(例如,方法)中的任意一种或多种的示例机器800的框图。在替代实施例中,机器800可以作为单独的设备操作,或者连接(例如网络连接)到其他机器。在网络化的部署中,在服务器-客户端网络环境中,机器800可以作为服务器机器、客户端机器或这二者来进行操作。在示例中,机器800可以用作对等(P2P)(或其他分布式)网络环境中的对等机器。机器800是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、智能电话、网络设备、网络路由器、交换机或桥、服务器计算机、数据库、会议室设备,或者能够(顺序或以其他方式)执行规定将要由该机器执行的动作的指令的任何机器。在各个实施例中,机器800可以执行上文针对图1-图7所描述的过程中的一个或多个过程。此外,虽然仅示出了单个机器,但术语“机器”也应当被理解为包括单独或联合执行一组(或多组)指令,以便执行本文中讨论的方法中的任意一种或多种方法的机器的任意集合,例如云计算、软件即服务(SaaS)和其他计算机集群配置。
如本文中所描述的,示例可以包括下列各项或者可以在下列各项上操作:逻辑单元或多个组件、模块或机构(在下文中都被称为“模块”)。模块是能够执行指定操作的有形实体(例如,硬件),并且用某种方式配置或布置。在一个示例中,用指定的方式将电路布置(例如,内在地或者相对于诸如其他电路之类的外部实体)为模块。在示例中,一个或多个计算机***(例如,单独的客户端或服务器计算机***)的整体或部分或者一个或多个硬件处理器由固件或软件(例如,指令、应用部分或应用)配置为操作以执行指定操作的模块。在示例中,软件可以驻留在非暂时性计算机可读存储介质或其他机器可读介质上。在示例中,当由模块的底层硬件执行时,软件使得硬件执行指定操作。
因此,应当理解术语“模块”包括有形实体,是物理构建的、特别配置(例如,硬线连接的)或临时(例如,暂时)配置(例如,编程)以便以特定方式操作,或者执行本文中描述的任何操作的部分或所有的实体。考虑在其中模块是临时配置的示例,这些模块中的每个模块不需要在任何一个时刻进行实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,该通用硬件处理器在不同时刻被配置为各个不同的模块。软件可以相应地配置硬件处理器,例如以便在一个时刻构成特定的模块,并且在另一不同时刻构成不同的模块。
机器(例如,计算机***)800可以包括硬件处理器802(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器内核或它们的任意组合)、主存储器804和静态存储器806,其中的一些或所有可以经由联结808(例如,总线)与彼此进行通信。机器800还可以包括显示单元810、字母数字输入设备812(例如,键盘)和用户界面(UI)导航设备814(例如,鼠标)。在示例中,显示单元810、输入设备812和UI导航设备814是触摸屏显示器。机器800可以附加地包括存储设备(例如,驱动单元)816、信号生成设备818(例如,扬声器)、网络接口设备820和一个或多个传感器821(例如,全球定位***(GPS)传感器、罗盘、加速计或其他传感器)。机器800可以包括输出控制器828(例如,串行(例如,通用串行总线(USB)、并行或其他有线或无线(例如,红外线(IR)、近场通信(NFC)等)连接)以便通信或控制一个或多个***设备(例如,打印机、读卡器等)。
存储设备816可以包括机器可读介质822,在其上存储有体现本文中描述的技术或功能中的任意一种或多种或由其使用的一组或多组数据结构或指令824(例如,软件)。指令824还可以完全或至少部分位于主存储器804内、静态存储器806内,或者在由机器800对该指令的执行期间在硬件处理器802内。在一个示例中,硬件处理器802、主存储器804、静态存储器806或存储设备816中的一项或任意组合可以构成机器可读介质。
虽然将机器可读介质822示为单个介质,但术语“机器可读介质”可以包括被配置为存储一个或多个指令824的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存器和服务器)。
术语“机器可读介质”可以包括能够存储、编码或携带用于由机器800执行的指令,并且使得机器800执行本公开内容中的技术中的任意一种或多种技术,或者能够存储、编码或携带由这些指令使用或者与这些指令相关联的数据结构的任何介质。非限制性的机器可读介质的示例可以包括固态存储器以及光学和磁介质。机器可读介质的具体示例可以包括:非易失性存储器(例如,半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)))以及闪存器设备;磁盘(例如,内部硬盘和可移动盘);磁-光盘;随机存取存储器(RAM);固态驱动器(SSD);以及CD-ROM和DVD-ROM盘。在一些示例中,机器可读介质可以包括非暂时性机器可读介质。在一些示例中,机器可读介质可以包括不是瞬时传播信号的机器可读介质。
指令824还可以经由网络接口设备820使用传输介质在通信网络826上发送或接收。机器800可以利用多种传输协议(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(例如,HTTP)等)中的任意一种来与一个或多个其他机器通信。示例通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网络(例如,互联网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络和无线数据网络(例如,被称为
Figure BDA0003538235790000091
的电气和电子工程师协会(IEEE)802.11标准系列、被称为
Figure BDA0003538235790000092
的IEEE802.16标准系列)、IEEE802.15.4标准系列、长期演进(LTE)标准系列、通用移动电信***(UMTS)标准系列、对等(P2P)网络等等。在示例中,网络接口设备820可以包括一个或多个物理插口(例如,以太网、同轴电缆或电话插口)或连接到通信网络826的一个或多个天线。在示例中,网络接口设备820可以包括多个天线以便使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种来进行无线通信。在一些示例中,网络接口设备820可以使用多用户MIMO技术来进行无线通信。
如本文中所描述的,示例可以包括下列各项或者可以在下列各项上操作:逻辑单元或多个组件、模块或机构。模块是能够执行指定操作的有形实体(例如,硬件),并且用某种方式配置或布置。在示例中,用指定的方式将电路布置(例如,内在地或者相对于诸如其他电路之类的外部实体)为模块。在示例中,一个或多个计算机***(例如,单独的客户端或服务器计算机***)的整体或部分或者一个或多个硬件处理器由固件或软件(例如,指令、应用部分或应用)配置为操作以执行指定操作的模块。在示例中,软件可以位于机器可读介质上。在示例中,当由模块的底层硬件执行时,软件使得硬件执行指定操作。
因此,应当理解术语“模块”包括有形实体,是物理构建的、特别配置(例如,硬线连接的)或临时(例如,暂时)配置(例如,编程)以便以特定方式操作,或者执行本文中描述的任何操作的部分或所有的实体。考虑在其中模块是临时配置的示例,这些模块中的每个模块不需要在任何一个时刻进行实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下,该通用硬件处理器在不同时刻被配置为各个不同的模块。软件可以相应地配置硬件处理器,例如以便在一个时刻构成特定的模块,并且在另一不同时刻构成不同的模块。
各个实施例完全或部分地以软件和/或固件来实现。该软件和/或固件可以采取包含在非暂时性计算机可读存储介质中或之上的指令的形式。然后,那些指令可由一个或多个处理器读取并执行,以使得能够执行本文所述的操作。指令可以具有任何合适的形式,例如但不限于:源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。这种计算机可读介质可以包括任何有形的非暂时性介质,用于以一台或多台计算机可读的形式存储信息,例如但不限于只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存器等等。
示例1是一种方法,包括:从账户接收用于将文档提交到文档存储库的请求;基于所述第一认证,对所述请求进行解码;基于所述解码,识别所述文档存储库的分支;确定所述分支要求第二认证;响应于所要求的第二认证,经由第二认证***,对所述账户进行第二认证;以及基于所述第二认证,将所述文档提交到所述文档存储库的所述第一分支。
在示例2中,示例1的发明主题可选地包括:从所述账户接收用于将第二文档提交到所述文档存储库的第二请求;基于所述第一认证,对所述第二请求进行第二解码;基于所述第二解码,识别所述文档存储库的第二分支;确定不要求所述第二认证来访问所述第二分支;以及基于所述第一认证,将所述第二文档提交到所述文档存储库的所述第二分支。
在示例3中,示例1-2中的任意一个或多个示例的发明主题可选地包括:其中,所述第一认证***被配置为将所述账户与第一凭证集合相关联,并且所述第二认证***被配置为将所述账户与第二凭证集合相关联。
在示例4中,示例1-3中的任意一个或多个示例的发明主题可选地包括:其中,所述确定所述第一分支要求所述第二认证包括:识别与所述第一分支相关联的分支策略;以及基于所述分支策略,确定所述第一分支需要所述第二认证。
在示例5中,示例4的发明主题可选地包括:其中,经由所述第二认证***,进行所述第二认证包括:查询网络服务。
在示例6中,示例5的发明主题可选地包括:基于所述分支策略来识别所述网络服务。
在示例7中,示例1-6中的任意一个或多个示例的发明主题可选地包括:其中,所述第一认证***被配置为控制对企业资源的访问,并且所述第二认证***被配置为控制对数据中心的访问。
示例8是一种***,包括:硬件处理电路;以及存储指令的一个或多个硬件存储器,所述指令在被执行时将所述硬件处理电路配置为执行包括下列各项的操作:从账户接收用于将文档提交到文档存储库的请求;基于所述第一认证,对所述请求进行解码;基于所述解码,识别所述文档存储库的分支;确定所述分支要求第二认证;响应于所要求的第二认证,经由第二认证***,对所述账户进行第二认证;以及基于所述第二认证,将所述文档提交到所述文档存储库的所述第一分支。
在示例9中,示例8的发明主题可选地包括还包括下列各项的操作:从所述账户接收用于将第二文档提交到所述文档存储库的第二请求;基于所述第一认证,对所述第二请求进行第二解码;基于所述第二解码,识别所述文档存储库的第二分支;确定不要求所述第二认证来访问所述第二分支;以及基于所述第一认证,将所述第二文档提交到所述文档存储库的所述第二分支。
在示例10中,示例8-9中的任意一个或多个示例的发明主题可选地包括:其中,所述第一认证***被配置为将所述账户与第一凭证集合相关联,并且所述第二认证***被配置为将所述账户与第二凭证集合相关联。
在示例11中,示例8-10中的任意一个或多个示例的发明主题可选地包括:其中,所述确定所述第一分支要求所述第二认证包括:识别与所述第一分支相关联的分支策略;以及基于所述分支策略,确定所述第一分支要求所述第二认证。
在示例12中,示例11的发明主题可选地包括:其中,经由所述第二认证***,进行所述第二认证包括:查询网络服务。
在示例13中,示例12的发明主题可选地包括:所述操作还包括:还基于所述分支策略来识别所述网络服务。
在示例14中,示例8-13中的任意一个或多个示例的发明主题可选地包括:其中,所述第一认证***被配置为控制对企业资源的访问,并且所述第二认证***被配置为控制对数据中心的访问。
示例15是一种包括指令的非暂时性计算机可读存储介质,所述指令在被执行时将硬件处理电路配置为执行包括下列各项的操作:从账户接收用于将文档提交到文档存储库的请求;基于所述第一认证,对所述请求进行解码;基于所述解码,识别所述文档存储库的分支;确定所述分支要求第二认证;响应于所要求的第二认证,经由第二认证***,对所述账户进行第二认证;以及基于所述第二认证,将所述文档提交到所述文档存储库的所述第一分支。
在示例16中,示例15的发明主题可选地包括还包括下列各项的操作:从所述账户接收用于将第二文档提交到所述文档存储库的第二请求;基于所述第一认证,对所述第二请求进行第二解码;基于所述第二解码,识别所述文档存储库的第二分支;确定不要求所述第二认证来访问所述第二分支;以及基于所述第一认证,将所述第二文档提交到所述文档存储库的所述第二分支。
在示例17中,示例15-16中的任意一个或多个示例的发明主题可选地包括:其中,所述第一认证***被配置为将所述账户与第一凭证集合相关联,并且所述第二认证***被配置为将所述账户与第二凭证集合相关联。
在示例18中,示例15-17中的任意一个或多个示例的发明主题可选地包括:其中,所述确定所述第一分支要求所述第二认证包括:识别与所述第一分支相关联的分支策略;以及基于所述分支策略,确定所述第一分支要求所述第二认证。
在示例19中,示例18的发明主题可选地包括:其中,经由所述第二认证***的所述第二认证包括:查询网络服务。
在示例20中,示例19的发明主题可选地包括:所述操作还包括:还基于所述分支策略来识别所述网络服务。
在示例21中,示例15-20中的任意一个或多个示例的发明主题可选地包括:其中,所述第一认证***被配置为控制对企业资源的访问,并且所述第二认证***被配置为控制对数据中心的访问。

Claims (20)

1.一种设备实现的方法,包括:
经由第一认证***,对要访问文档存储库的账户进行第一认证;
从所述账户接收用于将文档提交到所述文档存储库的请求;
基于所述第一认证,对所述请求进行解码;
基于所述解码,识别所述文档存储库的分支;
确定所述分支要求第二认证;
响应于所要求的第二认证,经由第二认证***,对所述账户进行第二认证;以及
基于所述第二认证,将所述文档提交到所述文档存储库的所述第一分支。
2.根据权利要求1所述的方法,还包括:
从所述账户接收用于将第二文档提交到所述文档存储库的第二请求;
基于所述第一认证,对所述第二请求进行第二解码;
基于所述第二解码,识别所述文档存储库的第二分支;
确定不要求第二认证来访问所述第二分支;以及
基于所述第一认证,将所述第二文档提交到所述文档存储库的所述第二分支。
3.根据权利要求1所述的方法,其中,所述第一认证***被配置为将所述账户与第一凭证集合相关联,并且所述第二认证***被配置为将所述账户与第二凭证集合相关联。
4.根据权利要求1所述的方法,其中,所述确定所述第一分支要求所述第二认证包括:
识别与所述第一分支相关联的分支策略,以及
基于所述分支策略,确定所述第一分支要求所述第二认证。
5.根据权利要求4所述的方法,其中,经由所述第二认证***,进行所述第二认证包括:查询网络服务。
6.根据权利要求5所述的方法,还基于所述分支策略来识别所述网络服务。
7.根据权利要求1所述的方法,其中,所述第一认证***被配置为控制对企业资源的访问,并且所述第二认证***被配置为控制对数据中心的访问。
8.一种***,包括:
硬件处理电路;以及
存储指令的一个或多个硬件存储器,所述指令在被执行时将所述硬件处理电路配置为执行包括下列各项的操作:
经由第一认证***,对要访问文档存储库的账户进行第一认证;
从所述账户接收用于将文档提交到所述文档存储库的请求;
基于所述第一认证,对所述请求进行解码;
基于所述解码,识别所述文档存储库的分支;
确定所述分支要求第二认证;
响应于所要求的第二认证,经由第二认证***,对所述账户进行第二认证;以及
基于所述第二认证,将所述文档提交到所述文档存储库的所述第一分支。
9.根据权利要求8所述的***,所述操作还包括:
从所述账户接收用于将第二文档提交到所述文档存储库的第二请求;
基于所述第一认证,对所述第二请求进行第二解码;
基于所述第二解码,识别所述文档存储库的第二分支;
确定不要求所述第二认证来访问所述第二分支;以及
基于所述第一认证,将所述第二文档提交到所述文档存储库的所述第二分支。
10.根据权利要求8所述的***,其中,所述第一认证***被配置为将所述账户与第一凭证集合相关联,并且所述第二认证***被配置为将所述账户与第二凭证集合相关联。
11.根据权利要求8所述的***,其中,所述确定所述第一分支要求所述第二认证包括:
识别与所述第一分支相关联的分支策略,以及
基于所述分支策略,确定所述第一分支要求所述第二认证。
12.根据权利要求11所述的***,其中,经由所述第二认证***,进行所述第二认证包括:查询网络服务。
13.根据权利要求12所述的***,所述操作还包括:还基于所述分支策略来识别所述网络服务。
14.根据权利要求8所述的***,其中,所述第一认证***被配置为控制对企业资源的访问,并且所述第二认证***被配置为控制对数据中心的访问。
15.一种包括指令的非暂时性计算机可读存储介质,所述指令在被执行时将硬件处理电路配置为执行包括下列各项的操作:
经由第一认证***,对要访问文档存储库的账户进行第一认证;
从所述账户接收用于将文档提交到所述文档存储库的请求;
基于所述第一认证,对所述请求进行解码;
基于所述解码,识别所述文档存储库的分支;
确定所述分支要求第二认证;
响应于所要求的第二认证,经由第二认证***,对所述账户进行第二认证;以及
基于所述第二认证,将所述文档提交到所述文档存储库的所述第一分支。
16.根据权利要求15所述的非暂时性计算机可读存储介质,所述操作还包括:
从所述账户接收用于将第二文档提交到所述文档存储库的第二请求;
基于所述第一认证,对所述第二请求进行第二解码;
基于所述第二解码,识别所述文档存储库的第二分支;
确定不要求所述第二认证来访问所述第二分支;以及
基于所述第一认证,将所述第二文档提交到所述文档存储库的所述第二分支。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述第一认证***被配置为将所述账户与第一凭证集合相关联,并且所述第二认证***被配置为将所述账户与第二凭证集合相关联。
18.根据权利要求15所述的非暂时性计算机可读存储介质,其中,所述确定所述第一分支要求所述第二认证包括:
识别与所述第一分支相关联的分支策略,以及
基于所述分支策略,确定所述第一分支要求所述第二认证。
19.根据权利要求18所述的非暂时性计算机可读存储介质,其中,经由所述第二认证***,进行所述第二认证包括:查询网络服务。
20.根据权利要求19所述的非暂时性计算机可读存储介质,所述操作还包括:还基于所述分支策略来识别所述网络服务。
CN202080063102.1A 2020-06-29 2020-06-29 源控制环境中的选择性安全增强 Pending CN114365451A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/098712 WO2022000156A1 (en) 2020-06-29 2020-06-29 Selective security augmentation in source control environments

Publications (1)

Publication Number Publication Date
CN114365451A true CN114365451A (zh) 2022-04-15

Family

ID=79317787

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080063102.1A Pending CN114365451A (zh) 2020-06-29 2020-06-29 源控制环境中的选择性安全增强

Country Status (4)

Country Link
US (1) US20230177184A1 (zh)
EP (1) EP4173227A4 (zh)
CN (1) CN114365451A (zh)
WO (1) WO2022000156A1 (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1579080A (zh) * 2001-10-29 2005-02-09 太阳微***公司 数据通信网络上分布资源的用户访问控制
CN102771101A (zh) * 2009-12-15 2012-11-07 国际商业机器公司 保证异步客户端服务器事务
US20140331060A1 (en) * 2013-05-03 2014-11-06 Citrix Systems, Inc. User and Device Authentication in Enterprise Systems
CN104937909A (zh) * 2013-01-24 2015-09-23 国际商业机器公司 用户身份验证
CN105830389A (zh) * 2013-11-11 2016-08-03 亚马逊技术有限公司 用于访问多个计算资源服务的单组证书
US20170337255A1 (en) * 2013-10-04 2017-11-23 Alfresco Software, Inc. Hybrid workflow synchronization between cloud and on-premise systems in a content management system
CN107431692A (zh) * 2014-12-27 2017-12-01 迈克菲有限责任公司 预测性用户认证
CN109274769A (zh) * 2018-11-02 2019-01-25 深圳竹云科技有限公司 一种文件传输协议二次认证的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061571A1 (en) * 2005-09-09 2007-03-15 Hammes Peter S System and method for managing security testing
US8756705B2 (en) * 2009-07-01 2014-06-17 Fiserv, Inc. Personalized security management
CN102571703A (zh) * 2010-12-23 2012-07-11 鸿富锦精密工业(深圳)有限公司 云数据安全管控***及方法
US11336648B2 (en) * 2013-11-11 2022-05-17 Amazon Technologies, Inc. Document management and collaboration system
US10097557B2 (en) * 2015-10-01 2018-10-09 Lam Research Corporation Virtual collaboration systems and methods
CN108287987A (zh) * 2017-12-20 2018-07-17 杭州云屏科技有限公司 数据管理方法、装置、设备及可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1579080A (zh) * 2001-10-29 2005-02-09 太阳微***公司 数据通信网络上分布资源的用户访问控制
CN102771101A (zh) * 2009-12-15 2012-11-07 国际商业机器公司 保证异步客户端服务器事务
CN104937909A (zh) * 2013-01-24 2015-09-23 国际商业机器公司 用户身份验证
US20140331060A1 (en) * 2013-05-03 2014-11-06 Citrix Systems, Inc. User and Device Authentication in Enterprise Systems
US20170337255A1 (en) * 2013-10-04 2017-11-23 Alfresco Software, Inc. Hybrid workflow synchronization between cloud and on-premise systems in a content management system
CN105830389A (zh) * 2013-11-11 2016-08-03 亚马逊技术有限公司 用于访问多个计算资源服务的单组证书
CN107431692A (zh) * 2014-12-27 2017-12-01 迈克菲有限责任公司 预测性用户认证
CN109274769A (zh) * 2018-11-02 2019-01-25 深圳竹云科技有限公司 一种文件传输协议二次认证的方法

Also Published As

Publication number Publication date
EP4173227A1 (en) 2023-05-03
US20230177184A1 (en) 2023-06-08
EP4173227A4 (en) 2024-02-28
WO2022000156A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
KR101590076B1 (ko) 개인정보 관리 방법
US10484385B2 (en) Accessing an application through application clients and web browsers
US10565402B2 (en) System and method for serving online synchronized content from a sandbox domain via a temporary address
US9300653B1 (en) Delivery of authentication information to a RESTful service using token validation scheme
US20180013747A1 (en) Controlling Access to Resources on a Network
US8549326B2 (en) Method and system for extending encrypting file system
US9639678B2 (en) Identity risk score generation and implementation
US10944561B1 (en) Policy implementation using security tokens
US9059984B2 (en) Authenticating an auxiliary device from a portable electronic device
US11290443B2 (en) Multi-layer authentication
US20130074158A1 (en) Method and apparatus for domain-based data security
US9401911B2 (en) One-time password certificate renewal
EP3694175B1 (en) System and method for delegating authority through coupled devices
US20110239281A1 (en) Method and apparatus for authentication of services
CN104255007A (zh) Oauth框架
US8453217B2 (en) Securing resource stores with claims-based security
KR20040049272A (ko) 네트워크 위치의 하위 위치에 대한 사용자의 인증을 위한방법 및 시스템
US9871778B1 (en) Secure authentication to provide mobile access to shared network resources
US10650153B2 (en) Electronic document access validation
Ferry et al. Security evaluation of the OAuth 2.0 framework
US11102204B1 (en) Agreement and enforcement of rules for a shared resource
KR101044343B1 (ko) 클라우드 디스크 공유 시스템
US9906510B2 (en) Virtual content repository
US11323438B2 (en) Protocol-agnostic claim configuration and verification
US11425126B1 (en) Sharing of computing resource policies

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination