Freeipa-Manager
Total Page:16
File Type:pdf, Size:1020Kb
Masaryk University Faculty of Informatics freeipa-manager Bachelor’s Thesis Kristián Leško Brno, Fall 2019 Masaryk University Faculty of Informatics freeipa-manager Bachelor’s Thesis Kristián Leško Brno, Fall 2019 This is where a copy of the official signed thesis assignment and a copy ofthe Statement of an Author is located in the printed version of the document. Declaration Hereby I declare that this paper is my original authorial work, which I have worked out on my own. All sources, references, and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Kristián Leško Advisor: doc. RNDr. Vlastislav Dohnal, Ph.D. i Acknowledgement My gratitude goes to Michal "Blesk" Marciniszyn, the author of the original idea behind freeipa-manager, and to the rest of our team at GoodData for their patient guidance and support. iii Abstract The goal of this work is to facilitate an improvement in identity man- agement and access control processes in a corporate environment. The thesis implements a tooling for verification and application of access control structures in a FreeIPA server, providing a possibility of clean access rule design and better review and audit options. The implemented software serves for synchronization of access control entities between an authoritative configuration source and the server. iv Keywords FreeIPA, identity management, LDAP, RBAC, access control v Contents Introduction 1 1 Identity management (IdM) 3 1.1 Motivation ..........................3 1.2 Concepts ............................4 2 IdM technologies overview 5 2.1 Directory service .......................5 2.2 LDAP .............................6 2.3 Common IdM solutions ....................6 2.4 Existing solutions evaluation .................8 3 FreeIPA 9 3.1 Features ............................9 3.2 Entity representation ..................... 11 3.3 Usage at GoodData ...................... 12 4 GoodData requirements 15 4.1 Entity structure management ................. 15 4.2 Backup and restore capabilities ................ 16 4.3 Inter-team cooperation .................... 17 4.4 Audit ............................. 18 5 freeipa-manager implementation 19 5.1 Brief history .......................... 19 5.2 Design decisions ....................... 20 5.3 Features ............................ 22 Conclusion 27 Bibliography 29 vii Introduction Identity management and access control are highly important topics in virtually all corporate environments. Various solutions, or com- binations thereof, are utilized by companies, and there are frequent impulses to improve the processes and approaches in these areas. This thesis documents my arrival at one such company where improvement in the practicality of identity management was desired, and the opportunity I was offered to create a solution that would simplify the lives of those managing user access to company resources. The first part of this thesis introduces the problem of identity management as a whole, evaluating the various existing solutions with their advantages and disadvantages. Later, I move on to the specific description of FreeIPA, which is the tool used as part ofthe identity management solution at GoodData, and which serves as the basis for the tooling I have implemented. The fourth chapter then describes the state of affairs at GoodData before the described tooling came to be, the limitations of the FreeIPA software encountered, as well as the painfulness in the specific use cases that became the driving factor for the changes that I was assigned to implement. In chapter five, I elaborate on the tooling I created to tackle the chal- lenges faced by my colleagues responsible for identity management tasks, outlining the challenges encountered during implementation and the deployment process. I then move on to describe the specific changes implemented in the scope of this thesis that further improve the tool and help bring it to a more practical and useful state. The thesis wraps up by recounting the plans for further develop- ment of the tool in the future, along with the skills and experience that I have had the chance to obtain via participation in this project, the largest one entrusted to me to date. 1 1 Identity management (IdM) Identity management (IdM) can be defined as the collection of pro- cesses utilized to grant, verify, and revoke identity representations, or credentials, of users of a computer system [1]. The term computer sys- tem should be understood more broadly in this context; for instance, a system of cards managing users’ access to an office building constitutes an identity management system although it may not be considered a computer system in the intuitive sense. Various environments may call for the need to employ an identity management system, such as user management in a public web ap- plication or access control of employees to different services inside a company. As foreshadowed in the introduction, this thesis will focus on the latter described example, i.e. private identity management in a business context. 1.1 Motivation The most fundamental goal of identity management is to ensure that a system can differentiate its users and provide the appropriate level of access to each of its resources to desired users only. Some small-scale companies may be able to function without an explicit identity management system, allowing each user to access all available resources without any kind of limits or authentication and relying on informal agreements to prevent malicious behavior. However, as the size of a company and the importance of its resources grows, this primitive level of access control (or absence thereof) is not sufficient anymore; the risks that such an approach would cause are not acceptable to most enterprises. Additionally, resources managed by a company may not be limited to a secure perimeter not accessible from outside. External services (e.g., e-mail, version control repository hosting, cloud software, etc.) may be utilized by the company as well; and since virtually all such systems require authentication of users, it follows that identity man- agement on the part of the company is a necessity. 3 1. Identity management (IdM) 1.2 Concepts A vast majority of enterprises adhere to a handful of security princi- ples to ensure adequate protection of their resources from possible damages caused by users, either by negligence or malicious behavior. 1.2.1 Least privilege The principle of least privilege states that each user should only be granted access to systems they necessarily require to carry out their assigned work. The goal is to stop users from damaging the company systems by not granting them extra powers they might abuse [2]. Addi- tionally, the application of this principle may prevent situations where a user might accidentally access and break a system they do not use as part of their work. 1.2.2 Segregation of duties The related concept of segregation of duties is the idea that no single user should possess so much power that abusing it would be detrimental to the company [3]. This implies defining processes such as code review, where each change to the produced software made by one user needs to be verified by another one, or distribution of access to critically important systems to different groups of users. 1.2.3 Role-based access control Closely related to the principles defined above, role-based access control (RBAC) is the idea is that access assigned to every user is based on their role or position inside the company [4]; for instance, there is a predefined set of access rules for a regular user, another setfora manager, another for the director, and so on. In common identity management solutions, this access control paradigm may be implemented using nested user groupings to repre- sent both the top-level user roles and other levels of access granularity. A specific example of such a group structure will be provided later,in Chapter 4. 4 2 IdM technologies overview This chapter presents an overview of industry-standard identity man- agement technologies and their usage in the major IdM deployment solutions. The focus has been placed on solutions with close relevance to the topic of this work due to their technological proximity to FreeIPA or their possible role as target platforms for future expansion of the implemented tool. As FreeIPA itself holds a central role to the theme of this work, a separate following chapter is dedicated to its description and analysis. 2.1 Directory service A directory service, also known as name service, is an application pro- viding the possibility to store and retrieve structured data records. Its concept based on pre-computer era paper telephone directories where one might look for a telephone number based on a person’s name, directory services enable storage and retrieval of resources in a hierarchical structure based on their pre-assigned names. A directory service may be provided by a single server but distributed solutions are most commonly preferred. In the context of identity management, a directory service is gen- erally used to store user records serving as source of truth for authen- tication purposes. Various relevant types of data can be stored in a directory server apart from user information, such as representation of relationships between resources. This allows usage of directory servers for authorization by specifying groupings and access rules between defined resources. Widespread directory service implementations