JMX for the Shibboleth Identity Provider
Total Page:16
File Type:pdf, Size:1020Kb
MSE Project Thesis JMX for the Shibboleth Identity Provider Halm Reusser Advisor: Prof. Dr. Andreas Steffen July 12, 2010 Hochschule Rapperswil Oberseestrasse 10 CH-8640 Rapperswil Shibboleth is an open source software package for web single sign-on across or within organizational boundaries and is based on the Security Assertion Markup Language (SAML). It is well established and is an important building block of the successful SWITCHaai identity federation. Therefore the Shibboleth Identity Provider (IdP) is becoming one of the core services at the universities’ Information Technology (IT) departments. They require monitoring and management facilities in order to offer high availability, security and reliability. Because the Authentication and Authorization Infrastructure (AAI) is the solution to authenticating and authorizing users it is taking a major role in the field of accounting, which leads to a need of having access to usage data. The objective of this project thesis is to collect ideas of metrics and management tasks for the IdP, beneficial for the above-mentioned requirements. For structuring and sum- marizing those ideas, research papers and publications in the field of Federated Iden- tity Management (FIM) monitoring were consulted and helped to create a top-down overview. The study of the literature clarified that the implementation of Java Manage- ment Extensions (JMX) is a relatively new approach and will probably have an impact on monitoring enterprise applications in the future. As proof of concept, some of those ideas were implemented as Managed Beans (MBeans) in the Shibboleth IdP. To demonstrate the integration of the newly available status, us- age and performance information into a monitoring framework, a reference setup with the industry standard monitoring system Nagios was accomplished. The added JMX functionalities in the IdP provides a wide range of new possibilities, from fine grained metrics to management tasks for individual IdP components! This project thesis demonstrates that it is archivable. Contents 1. Introduction 6 1.1. Federated Identity Management, SWITCHaai and Shibboleth . .6 1.2. JMX . .6 2. Analysis 8 2.1. Research . .8 2.1.1. Federated Identity Management Metrics . .8 2.1.2. Information Assurance Metrics . .8 2.1.3. Shibboleth Metrics . .9 2.1.4. Authentication Metrics . .9 2.1.5. AMAAIS . .9 2.1.6. SLA Measurements . .9 2.2. Best Current Practices operating a SWITCHaai Identity Provider . 10 2.3. Conclusion: Collection of Metrics and Management Tasks . 11 3. Concepts 12 3.1. JMX Concepts . 12 3.1.1. JMX Architecture . 12 3.1.2. MBeans . 13 3.1.3. Standard Agent Services . 16 3.1.4. Registering . 18 3.2. Spring Framework JMX Support . 18 3.2.1. JMX Annotations . 18 3.2.2. Naming Strategy . 19 3.2.3. Exporting MBeans . 20 3.2.4. Notification Listener . 20 3.3. Perf4J . 21 3.3.1. Profiled Annotation . 21 4. Design 23 4.1. Map Metrics and Management Tasks to MBeans . 23 4.2. Integration Design . 24 4.2.1. Technology Decision . 24 5. Implementation 25 5.1. MBean Specification . 26 3 5.2. Spring JMX Configuration for the Shibboleth IdP . 27 5.2.1. Custom Property Editors . 29 5.3. Shibboleth Modules . 29 5.4. Perf4J Logback Extensions . 30 5.5. MBeans . 30 5.5.1. Status Information . 30 5.5.2. Session Management . 31 5.5.3. Metadata Management . 32 5.5.4. Authentication . 34 5.5.5. Attribute Processing . 37 6. Integration 39 6.1. JMX Monitors . 39 6.2. Perf4J and Logback SMTP Appenders . 40 6.3. Nagios . 42 6.3.1. JMX Plug-in . 42 6.3.2. Configuration . 42 6.3.3. PNP4Nagios . 45 7. Testing 46 7.1. Canoo Webtest . 46 8. Use Cases 49 8.1. Clients . 49 8.1.1. JConsole . 49 8.1.2. HTTP Adaptor . 50 8.1.3. Nagios Console . 50 8.2. Managed Components . 51 8.2.1. Status information . 51 8.2.2. Session Management . 52 8.2.3. Metadata Management . 54 8.2.4. Authentication . 55 8.2.5. Attribute Processing Performance . 57 9. Conclusion 60 9.1. Implementation . 60 9.2. Integration . 61 9.3. Outlook . 61 Glossary 62 Acronyms 63 Bibliography 63 4 A. Project proposal 67 B. Project Plan 69 C. Collected Ideas for MBeans 70 D. Reporting 71 E. Milestones 83 F. DVD 86 5 1. Introduction The objective of this project thesis is to collect ideas how the Shibboleth IdP could be enabled with JMX. The first step is to collect ideas of metrics and management tasks and compare respec- tively complement them with results from research papers concerning the topic of FIM metrics and management tasks as well as Service Level Agreement (SLA) measurements. After an overview of potential MBeans for the Shibboleth IdP a reference implementa- tion will be undertaken for each kind of MBean and different complexities. The last part of the project thesis provides a proof of concept which shows the possibil- ities provided by MBeans as well as a potential integration into an existing monitoring system like Nagios [13]. 1.1. Federated Identity Management, SWITCHaai and Shibboleth Federated Identity Management (FIM) is the management and use of identity informa- tion across security domains, e.g., between individual institutions. It deals with issues such as interoperability, liability, security, privacy and trust. The SWITCHaai federation [23] is a Shibboleth respectively SAML [19] based federation in Swiss higher education and research, coordinated and led by SWITCH. Shibboleth [4] is the name of an architecture and an open source software developed by Internet2/MACE (Middleware Architecture Committee for Education). Shibboleth is based on SAML and allows the implementation of a FIM. 1.2. JMX The JMX defines an architecture for supporting software and network management in the Java programming language. JMX is a unified framework to instrument the disparate pieces of Java code in a modern IT infrastructure. Before JMX, there was no standardized approach in the Java programming language to start, manage, monitor and stop different software components or applications [26]. 6 The Java Platform Enterprise Edition (J2EE) is a complex, distributed, service-based enterprise platform. It consists of many different kinds of resources that are dynamically created, distributed, moved across nodes, redeployed and destroyed. The management of such a platform calls for an isolation layer between the management applications and the managed resources. The management architecture must be generic enough to allow the management of a wide variety of different kinds of resources and components. The management architecture must be able to cope with the dynamics and distribution of the platform and provide a management model that allows increasingly long uptimes and 24x7 service. JMX can provide all this [26]. 7 2. Analysis In this chapter FIM metrics and management tasks are analyzed. The main objective of the situation analysis is to gain an overview of possible MBeans for the Shibboleth IdP. 2.1. Research The first step is to collect and compare ideas with research papers concerning similar fields such FIM, Single Sign On (SSO), Lightweight Directory Access Protocol (LDAP) authentication metrics or Management Information Base (MIB) as well as similar pro- tocols like Simple Network Management Protocol (SNMP). 2.1.1. Federated Identity Management Metrics The IEEE Computer Society published in its Security & Privacy Journal an article about “Identity management risk metrics” [29]. This article introduces the terms metrics, risk, identity management and their relation to each other. In the article various metrics are identified, which are grouped into three categories: Identity provider metrics Metrics like accounts, groups, authentication claims and authorization claims. Provisioning process metrics Metrics like requesters, approvers cycle time etc. Identity metrics Similar metrics to the Identity provider metrics but for specific roles. The IdP metrics are very useful for these studies and the ideas are added into the collection. As the Shibboleth IdP is neither a provisioning system nor has support for that, there is no gain from that aspect of the article. Furthermore, the article discusses the benefits of having well defined metrics in the context of risk management, service predictions and real time decision-making. 2.1.2. Information Assurance Metrics The paper Information Assurance in Federated Identity Management [24] investigated two well-known federated identity management solutions, Microsoft Passport and Liberty Alliance, attempting to identify Information Assurance requirements in FIM. One of the goals was to measure the performance focusing on authentication. The developed metrics are mostly in the context of performance like data access time, message processing time, authentication time, SSO time etc. 8 2.1.3. Shibboleth Metrics SWITCH logs all service accesses within the SWITCHaai federation, which pass through the central Discovery Service. For reporting purposes, the tool WAYFalyzer exists. The WAYFalyzer allows to aggregate accesses to IdPs or Service Providers (SPs) over arbi- trary time periods with different sampling rates. The functionalities of the WAYFalyzer are considered to be in the MBean collection. The University of Buffalo publishes some Shibboleth statistics [20] on a monthly basis. They measure authentication requests per service as well as aggregated by domains. Those metrics are covered by the MBean collection as well. 2.1.4. Authentication Metrics Under the term of authentication metrics a lot of research work was done in the field of trusted intermediate paths [30, 31]. This is not an issue within common Shibboleth federations due to trusted Metadata. LDAP Metrics There are published LDAP metrics of the North Carolina State University [9]. They measure indicators like binds, unbinds, successful and failed connections, searches and other typical LDAP operations. The level of granularity is on client addresses or total counts. Another document of the Bucharest academy of economics focused on identity manage- ment in a university system [33]. The outcome concerning metrics is divided into two aspects of the system.