A business entity may selectively restrict access to its resources by assigning permissions to users. The permissions control the operations that the users may perform on the resources. For example, a given user may be assigned a permission that allows the user to read a particular document (a resource) that is stored on a given server of the business entity, but the user may not be assigned a permission that allows the user to modify the document.
Permissions may be assigned according to an access control model. As examples, the access control model may be a discretionary access control (DAC) model, which may primarily be guided by individual project managers; a mandatory access control (MAC) model, which is a rule-based model; a role-based access control (RBAC) model, which guides the assignments of permissions based on particular job functions or roles; or an attribute based access control (ABAC) model, which guides the assignment of permissions based on attributes of users and resources.
Referring to
In the following discussion, a “project” refers to one or multiple jobs or tasks, which are collaboratively performed by a given group of users (employees, contractors and/or business affiliates, as examples) for purposes of achieving a given business goal. The “new” project refers to a project for which users have been assigned but for which permissions are yet to be determined. It is noted that some of the users may have collaborated with each other in prior projects.
As examples, a given “resource” may be a digital resource, such as a database, an application, a file, and so forth. “Resources” in the context of this application may also refer to physical resources, such as rooms, printers, machine tools, supplies, chemicals, and so forth.
As examples, a given project may be a set of jobs or tasks to plan, develop and implement a software application; research and publish a magazine article; initiate and develop a marketing initiative; research and develop a business strategy for a targeted market; evaluate employee compensation; and other jobs/tasks in which users collaborate to achieve a wide variety of other business goals. The users that are assigned to the new project may be associated with the same organization or tenant, in accordance with some implementation. However, the users may be associated with different organizations or different tenants, in accordance with further implementations.
As examples of the permissions, in the context of a given project, user A may be assigned a set of permissions that allow user A to read from and write to certain documents stored on server A; limit user A to read only privileges for other documents stored on server A; and prevent user A from accessing certain documents stored on server B.
In accordance with example implementations that are disclosed herein, the accessibility computation engine 150 is constructed to perform such functions as analyzing historical project and user data to assign accessibility controls to users in the context of a new project; applying machine learning to recognize, or learn patterns from past assignments; applying machine learning to the learned patterns to guide the current assignments without relying on manual input (i.e., to remove the “human” element); providing explanations for the assignments for performance analysis; generating a graph showing the current accessibility controls; and receiving feedback through one or multiple feedback loops for continuous, adaptive improvement of the assignment process.
In accordance with example implementations, the accessibility computation engine 150 assigns resource permissions in accordance with a permission model that includes the following four components: the user, the permission, the operation and the resource. The user, also called “u” herein, is defined as an individual user, or person, to be assigned permissions to resources in the context of a project. In accordance with the permission model, a given permission (also called “p” herein) is a tuple, which is defined for an operation (also called “o” herein) on a resource (also called “s” herein), or “p=[o,s].”
Each user of the project team is assigned a set of permissions to the project resources for a period of time for purposes of collaboratively achieving a business goal. A given user may work for multiple projects over a period of time, which may or may not overlap in time.
Referring to
The engine 150 identifies (block 212) relationships between the users and the permissions. Pursuant to the technique 200, the engine 150 clusters (block 216) users based on the identified relationships between the users and permissions. Based on the resulting user clusters and the project clusters determined in block 208, the engine 150 assigns permissions to the users to work on resources in the context of the new project, pursuant to block 220. For example, for the new project, the accessibility computation engine 150 assigns a given user the permissions assigned to the users in the corresponding cluster.
Referring back to
In accordance with example implementations, the physical machine 110 may include such other hardware as a memory 130 that may temporarily store instructions associated with the execution of the machine executable instructions as well as data involved in the preliminary, intermediate and final results associated with this processing.
In general, the memory 130 is a non-transitory storage medium that may be formed from semiconductor storage devices, optical storage devices, magnetic media-based storage devices, removable media devices, and so forth, depending on the particular implementation.
As also depicted in
Although the physical machine 110 is schematically depicted in
As depicted in
In accordance with example implementations, the historical project and user data are formatted into two matrices for use by the engine 150: a user-team frequency matrix and a permission-user frequency matrix. In the user-team frequency matrix, project teams are represented as vectors of length m, where “m” represents the total number of unique users for the project team collection. For a given project team, the ith element of its vector presentation of the project team is the number of permissions that the user i has for this project. It is noted that in accordance with example implementations, the vector for each project team may be relatively sparse, as in general, a relatively small number of users of the entire group of users participate in any one given project team.
If “n” represents the number of teams in the project team collection, then the user-team frequency matrix is an m×n matrix, which represents the collection of project teams. In this matrix, the users are represented by respective rows of the matrix, and the project teams are represented by respective columns of the matrix.
In the permission-user frequency matrix, the users are represented as vectors of length q, where “q” represents the total number of unique permissions in the project team collection. For a given user, the ith element of the vector presentation is the number of times this user is assigned the ith permissions across all of the projects that involve the user.
If “q” represents the number of permissions in the project team collection, then the permission-user frequency matrix is an m×q matrix, which represents the collection of users. In this matrix, the permissions are represented by respective rows, and the users are represented by respective columns.
The problem associated with assigning the permissions may be stated as follows. Given the permission assignments to users in past projects and the set of users who are assigned to work on a new project, the problem to be solved is how to derive the accessibility assignments, or permissions, for the users to work on resources in the context of the new project.
In this manner, in accordance with example implementations, machine learning may be applied by examining past assignments, finding correlations and using the correlations to determine rules. Pursuant to the technique 300, patterns in the relationships between the user and project teams are determined, such as a technique that uses Latent Semantic Indexing (LSI), for example.
In other words, matrix factorization of the user-project team frequency matrix may be used to analyze the co-working relationship of users with respect to different types of projects. With the factorization results, high similarity to the same pattern reveals the similarity of the projects, thereby allowing the projects to be clustered. Machine-learning techniques other than rule-based machine-learning (neural network-based learning, for example) may be used, in accordance with further example implementations.
Thus, pursuant to the technique 300, the projects are clustered (block 308) based at least in part on the user-project frequency matrix to identify a project cluster that contains the new project. In other words, in block 308, the projects are clustered based on a rank one approximation of the original user-team frequency matrix, in accordance with example implementations.
Continuing the technique 300, given the project cluster and the projects in this cluster determined in block 308, the technique 300 again applies matrix factorization on the permission-user frequency matrix for purposes of clustering users based on the co-occurrence of permissions. In other words, the technique 300 includes clustering users based at least in part on the permission-user frequency matrix and the resultant clusters of users will be further filtered based on the identified project cluster. Block 312 therefore provides clusters of users.
Finally, pursuant to the technique 300, permissions are assigned (block 316) to the users based on permissions that are assigned in the corresponding clusters. In accordance with example implementations, recommended permission assignments for each user in the new project is determined as the intersection of the sets of permissions that are assigned to the remainder of the users in the same user cluster.
As depicted in
Thus, the person attributes vectors 414 and the project resource attributes vectors 420 represent the current personnel and project characteristics in quantifiable forms. These vectors 414 and 420, in turn, are provided as an initial condition 424 to the accessibility computation engine 150 and the machine learning 430 applied by the engine 150.
In general, in accordance with example implementations, the accessibility computation engine 150 uses the data from the databases 152 and 154, along with the initial condition 424 and the clustering and pattern recognition capabilities of machine learning 430, for purposes of generating the user clusters, or accessibility clusters 434. The accessibility clusters may be studied using a graph representation in which the nodes of the graph pertain to persons, person attributes, projects, resources and resource attributes; and the edges of the graph pertain to relationships, such as “has,” “member,” and “accessibility value.” An example graph 438 is depicted in
Referring to
The graph 438 further has nodes 512 representing the resources. In this manner, permissions are assigned between the users and the resources. As shown in
Referring back to
The accessibility clusters 434 may be used to form an accessibility graph 438, such as the one depicted in
In this manner, the graph analysis may include checks on accuracy, accessibility requirements, system utilization and accessibility validation. The explanation facility 440 analyzes the graph and provides the underlying reasoning for each accessibility assignment in the accessibility clusters 434.
For example, if a particular pattern used in connection with the machine learning 430 may be represented as an IF-THEN rule to explain why a person was assigned a certain permission level to a resource. The aggregate of the analysis that is performed by the explanation facility 440 is captured in the accessibility explanations 442 for review by the SME reviews 170.
In accordance with example implementations, the SME review 170 may be performed for purposes of determining whether the outcome of the solution is on target and meets any regulatory or audit requirements, i.e., for purposes of evaluating the performance of the assignments made by the accessibility computation engine 150.
The outcome of the SME review 170 (either positive or negative) is received through the feedback to adapt the machine learning 430 so that the solution reduces the probability of error and increases accuracy in the next iteration. This feedback process, along with the accessibility report 436 being fed back into the historical databases 152 and 154, provides two feedback loops for purposes of adapting and improving the solution over time.
Among the potential advantages of the systems and techniques that are disclosed herein, an enhanced security policy enforcement mechanism is disclosed. Data leak prevention (DLP) is provided. The permission assignment is adaptive such that the adaptive solution may change for changing business needs, where both the workforce and project compositions may change over time. Other and different advantages are contemplated, which are within the scope of the appended claims.
While a limited number of examples have been disclosed herein, those skilled in the art, having the benefit of this disclosure, will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2013/067534 | 10/30/2013 | WO | 00 |