Identity Management Topics SAS ITMC Meeting July 26, 2007 Tom Parker Project Manager Identity Management Team OIT/CIT Security Office Joy Veronneau Technical Lead Identity Management Team OIT/CIT Security Office Identity Management Topics Tom Parker Project Manager Identity Management Team OIT/CIT Security Office Joy Veronneau Technical Lead Identity Management Team OIT/CIT Security Office Identity Management Topics Tom Parker Project Manager Identity Management Team OIT/CIT Security Office Joy Veronneau Technical Lead Identity Management Team OIT/CIT Security Office Identity Management Topics Kerberos upgrade and CUWebAuth work Central Authorization System Internet2 Grouper and Permit Server replacement Internet2 Signet and privilege management Internet2 Shibboleth Why move from K4 to K5 Cornell’s authentication system is based on MIT Kerberos and CUWebAuth MIT discontinued support for Kerberos 4 - Computing power has caught up with the encryption method used in Kerberos 4 - Kerberos 4 vulnerable to off-line attacks Kerberos 5 addresses off-line attacks and has stronger encryption MIT will continue to support Kerberos 5 Kerberos 5 Upgrade: The Initial Plan Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2007 Nov Dec Jan Feb 2008 Discretionary migration window Mar Apr May Jun Where Are We Now? •Code review (4 code bases) Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2007 Nov Dec Jan Feb 2008 Discretionary migration window Mar Apr May Jun Where Are We Now? •Code review (4 code bases) •Security audit (new vulnerabilities) Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2007 Nov Dec Jan Feb 2008 Discretionary migration window Mar Apr May Jun Where Are We Now? •Code review (4 code bases) •Security audit (new vulnerabilities) •Rollout requirements (PS launch) Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2007 Nov Dec Jan Feb 2008 Discretionary migration window Mar Apr May Jun Where Are We Now? •Code review (4 code bases) •Security audit (new vulnerabilities) •Rollout requirements (PS launch) Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2007 Nov Dec Jan Feb 2008 Discretionary migration window Mar Apr May Jun Where Are We Now? •Code review (4 code bases) •Security audit (new vulnerabilities) •Rollout requirements (PS launch) Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2007 Nov Dec Jan Feb 2008 Discretionary migration window Mar Apr May Jun Where Are We Now? •Code review (4 code bases) •Security audit (new vulnerabilities) •Rollout requirements (PS launch) Dec Jan Feb 2007 Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr 2008 Discretionary migration window May Jun Where Are We Now? •Code review (4 code bases) •Security audit (new vulnerabilities) window of opportunity •Rollout requirements (PS launch) Dec Jan Feb 2007 Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr 2008 Discretionary migration window May Jun Opportunity Identified Can we use additional window in K4 shutdown schedule to position ourselves to better support our web-based authentication solution for the long term? Specifically: Should we invest resources in rewriting CUWebAuth (used with applications) and CUWebLogin (infrastructure component)? Current State Age of code = complexity = support burden for CIT and the customer High potential for introducing security vulnerabilities when changes are made both to code itself and individual app config files Difficulty providing product support for standard tools and new releases of operating systems The Reasonable Options CUWA/CUWL 1.5 – Attempt to fix what we have CUWA/CUWL 2.0 – Re-build it the way it should be Move to an outside solution - Yale CAS Stanford WebAuth CoSign Service goals considered Impact of change on campus developer community Predictability of user experience Long-term viability of CIT’s authentication solution for webbased services Minimal work required to migrate to new versions Support for required functionality Performance and scalability as use of CUWA and CUWL increase Support for new server operating systems and web servers (Apache, IIS) Support for future enhancements to authentication and authorization Security of central authentication services Efficient use of scarce CIT resources Results of our investigation High-level design for a rewrite of CUWA and CUWL Reviewed by ATA, IS, IT Security and campus development partners Advantages identified to date Merging CUWA into one code base, down from two Separate security configuration from other configuration parameters, leading to fewer security issues for apps Ability to routinely support new operating systems Compatibility with standard tools (ex: PHP) Our Recommendation to SRM •We develop CUWebAuth 2.0 •Late Fall 2007 deployment •Maintain migration window Dec Jan Feb 2007 Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr 2008 Discretionary migration window May Jun Five Questions from SRM Why not go with CUWA 1.5? What do we get by writing CUWA 2.0? Will we have to give up other work? What are the longer-term implications? Would an outside solution be smarter? 1. Why not go with CUWA 1.5? Condition of 8-year-old code has become a support burden Significant work required for even minor changes Impact of change on other portions of code difficult to test prior to release, results in more problems for campus service providers More bugs and security vulnerabilities as a result Currently requires 2 FTE’s Increasing campus dependency on CUWebLogin = scalability and performance issues SideCar limitations and scheduled retirement Preference for web-based applications 2. What do we get by writing CUWA 2.0? Product that is easier to maintain Simpler protocol Legacy dependencies eliminated Less code duplication (one code base instead of four) More extensible code (and all within local control) More secure protocol More scalable web single sign-on solution No loss of required functions and features Relatively minimal impact on campus developers 3. Will we have to give up other work? Overall development effort not much different -CUWA 1.5 estimated 23.8 FTE weeks -CUWA 2.0 estimated 25.6 FTE weeks CUWA 1.5 work requires the skill-set of four members of current IdM team CUWA 2.0 work will require skill-set of only two members of current IdM team CUWA 2.0 choice frees up skill set required for key projects like Active Directory, PS/STARS, Automated Provisioning, Grouper/Signet 4. What are the longer-term implications? Lower maintenance cost, 2 FTE’s to 1 Better security More predictable user experience Positions us better for future enhancements to authentication and authorization services Opportunity for open-source release 5. Would an outside solution be smarter? Assessment is “no” based on more than 150 hrs of research Alternatives may offer short-term wins for IdM development team But would have significantly higher impact on user community Using these solutions off-the-shelf, without mods: -we give up features we currently have (ex: POST data support) -or we accept the same vulnerabilities we have with CUWA 1.5 Making mods to these outside solutions -may take as much or more time as re-writing CUWA 2.0 -requires unknown level of cooperation with other institutions -may cause entanglements and dependencies beyond our control Other solutions reviewed: Stanford WebAuth, CoSign, PubCookie, Yale CAS, the list goes on.. A Closer look at the CAS Experience Initial contacts with Rutgers and Indiana University Posting to the Yale CAS mailing list Results from: Rutgers Cal Poly University of Connecticut Indiana University Virginia Tech University of Hawaii Stanford Duke General Findings CAS works close to the application layer. This is fundamentally different from CUWA. CAS has an enthusiastic following and an active developer community CAS works well for institutions which have no significant authentication and authorization infrastuctures already in place CAS doesn’t address authorization at all Cornell is ahead of most on the AuthZ front Going to CAS would be a significant step backwards on AuthZ The Indiana University experience is likely a good example of what would happen if we attempted to make CAS work for us: Post Data support GuestID and TokenID support IIS and Apache mods IU is now working from its own code base, rooted in CAS 2.0 Initial Estimate We have roughly 212 services actively using CUWebAuth. CUWebAuth 2.0 FTE weeks per service: 0.5 weeks or less 0.5 x 212 = 106 FTE weeks FTE weeks IdMgt: 25.6 FTE ongoing Maint: 1 CAS FTE weeks per service: 2 weeks on average 2 x 212 = 424 FTE weeks FTE weeks IdMgt: 23 FTE ongoing Maint: 1 Current Assumptions AuthZ Project Dependency > Permit Server replacement complete > I2 Grouper in production No significant higher priority projects tap our current (very limited) resource pool > Emergency Notification Service > Applicant Provisioning and STARS project work > Active Directory/Exchange Server deployment Hey, what about Sidecar? Cornell University Central Authorization Replacing a System that (sorta) Works Cornell’s Permit System Also a permit Central Authorization at Cornell is generically handled by a Permit Server Developed at Cornell and has been in use for over a decade The Permit Server maps groups of NetIDs to “permits” A permit is just a string token, such as “cit.staff” or “cu.student” It’s a List-based System Also a permit On the Permit Server, we might see something like this table: PERMIT NAME LIST OF NETIDs cit.staff bbb1, cjm5 , jtp5, rd29 , jv11, … cu.employee aba1, cjm5 , jtp5 , rd29 , jv11, … cu.student cit.update.eudora fbc4, gv455, rb553, tgm4, … fbc4, gv455, jtp5, rd29 , jv11, … How are Permits Obtained? Whenever a new NetID is created during the hiring process (staff) Whenever a new NetID is created during the the admissions process (students) Service owners wishing to restrict a specialized service may request a permit for their application They are given tools to manage their permit They decide when to assign or revoke a permit for a particular user That is, if they remember to do so… Permit Server Stats Cornell has approximately 175,000 active NetIDs. There are over 800 permits but only about 325 are active. Those active permits have about 500,000 memberships. On our busiest day, there are about 375,000 queries to the permit server. On that day the busiest minute has about 1,650 queries. Creation of new permits generally limited to sys admins Not used for personal groups like mailing lists Current Limitations AdminUI designed for the 1990s No limitations, expirations Limited delegation features Users can’t see what permits they have Permits can’t do negative authorizations For example, an institution may want to offer a service to all active students but only within the United States due to export regulations.. No self-enrollment options Anyone (or anything) can be included in a Permit List Also a permit No checks for misspellings or formatting errors Regardless of whether a permit is centrally or locally owned, the permit is maintained manually Internet2* Authorization Initiatives Grouper (group-based membership) Signet (privileges and limitations) Shibboleth (open source implementation to support interinstitutional sharing of web resources subject to access controls) * Internet2 is a consortium being led by 207 universities working in partnership with industry and government to develop and deploy advanced network applications and technologies Cornell’s Project Mgt. Methodology Bringing some corporate rigor to campus but in a way that remains appropriate to a university environment Requirements Use Cases Communication Plans Project Planning Migration strategies Thorough testing Rollout Planning Lots of Up-Front Document Work Project Charters Initiation Plans Project Planning Understanding the Requirements http://identity.cit.cornell.edu/authz/CAP/documents.html Steering Committee, a Key Component Department Role Stakeholder Office of the Univ. Registrar Director, Technical Services Rob Bandler Johnson School/JGSM Chief Technology Officer Kevin Baradet CIT Information Systems IT Architect Steve Barrett CIT Customer Svcs & Marketing Manager, Help Desk/Contact Center JP Brannan CIT Systems & Operations Technical Lead/Manager Laurie Collinsworth CIT Adv Tech & Architectures Technical Lead/Manager Ron DiNapoli College of Ag & Life Science IT Security Officer, CALS Daniel Elswit HR Info Systems & Records Adm Director, HR Records Administration Lyman Flahive Campus Facilities Services Associate Director of IT Debra Howell Digital Library Info Tech Director, Library Systems Pete Hoyt CIT Information Systems Manager, Peoplesoft Applications Jolene Scaglione School of Hotel Administration Sr. Web Systems Analyst Jason Woodward Grouper Overview A grouper Manages groups, not privileges (however a group can be authorized to do something…) Privileges and limitations can be added to a group later via Signet… Grouper gets its information on NetIDs from the directory and maintains group information in an Oracle database. (can use other DBs but that’s more complicated at this stage and we like Oracle anyway…) Group information can in turn be pushed out to other repositories (such as a directory...) Main development effort at: University of Chicago, University of Bristol Some Grouper Features that our Permit Server Doesn’t Have Distributed group management Composite groups - groups whose membership is determined by the union, intersection, or relative complement of two other groups Traceback of indirect membership A future version of Grouper will include aging of groups and memberships Self enrollment and unenrollment Users can easily see what groups they are members of Users can create and manage their own groups Uses existing repositories for subject sources Clearer ownership hence more accountability Better administration tools Why Grouper for CU? Grouper’s LDAP provisioning connector plays nicely with our campus-wide electronic directory. For other in-house applications we can use a web-service to obtain group membership information directly from Grouper. A big one for us: Grouper supports a delegated model of control Initial Investigations Fit-Gap analysis between Permit Server System and Grouper Early versions of Grouper running in test Built and tested scripts to migrate permits into Grouper Modified UI for Cornell look and feel Emphasis on discovery and use cases Requirements gathering Requirements, some easy, some not… Requirements, some easy, some not… Major Discussion Points Defining a namespace Migration strategy Of 30 Requirements-gathering meetings, eight were devoted to defining the namespace How would we roll out a new campus-wide system without causing undue interruption to current services (or for that matter, any interruption whatsoever..) Query mechanisms and LDAP security Do you REALLY want to hear more about the namespace? Our Migration Strategy Phased approach Staged rollout of new features Phase One: Permit Server replacement (I2 Grouper) Phase Two: Privilege Management (I2 Signet) New features come later Incl. addition of automatically provisioned groups Making the Permit Server replacement as transparent to users as possible Application administrators can switch to native Grouper at their convenience (if they don’t take *too* long maybe a little over a year) Builds credibility Transparent Cutover (Current view) Transparent cutover of Permit Server to Grouper System owners and application developers migrate at their convenience - We’re building a shim which is actually just an emulator - Runs on same server and port as permitd - Understands Cornell’s Stateless Server protocol (cussp) - Translates cussp queries and updates into Grouper API calls - Translates Grouper messages into cussp - Applications talking to the Permit Server won’t know the difference Transparent Cutover (Cutover view) Transparent cutover of Permit Server to Grouper System owners and application developers migrate at their convenience - We’re building a shim which is actually just an emulator - Runs on same server and port as permitd - Understands Cornell’s Stateless Server protocol (cussp) - Translates cussp queries and updates into Grouper API calls - Translates Grouper messages into cussp - Applications talking to the Permit Server won’t know the difference Transparent Cutover (Cutover view) Transparent cutover of Permit Server to Grouper System owners and application developers migrate at their convenience - We’re building a shim which is actually just an emulator - Runs on same server and port as permitd - Understands Cornell’s Stateless Server protocol (cussp) - Translates cussp queries and updates into Grouper API calls - Translates Grouper messages into cussp - Applications talking to the Permit Server won’t know the difference Our Current Timeline Service owner testing with Grouper complete Grouper development work complete Permit Server replacement (you are here) ‘07 Oct Nov Dec Jan Feb Mar Apr May Jun Signet available for testing? ‘08 Jul Aug Sep Oct Nov Dec Jan Feb Mar Signet Overview • • • • • Central repository and toolkit for privilege information... Management analysts define privileges in Signet based on previously defined policy decisions and then specify the relevant set of permissions to go with them… Signet has a Web-based UI where users assign privileges and delegate authority across all areas for which they have authority… Signet internally maps assigned privileges into systemspecific terms needed by applications… Privileges are exported into applications and infrastructure services using the appropriate notification mechanisms (email, xml, webmethods, etc…) Main development effort at: Stanford University View privileges assigned to yourself Adding a privilege Shibboleth Overview • • • Provides a framework for shared trust among institutions within the higher education community. Supports inter-institutional sharing of web resources subject to access controls. Access controls = Authentication & Authorization based on attributes in the electronic directory and/or grouper. Main development effort at: Ohio State University, Brown, others Federations A group of institutions that agrees to trust the credentials issued by the other members. Sort of like how your ATM card works at many banks. Federation InCommon Federation “InCommon eliminates the need for researchers, students, and educators to maintain multiple, password-protected accounts. Online service providers no longer build and manage account provisioning systems. InCommon uses innovative Shibboleth® authentication and authorization systems to enable cost-effective, privacy-preserving collaboration among its community of participants.” http://www.incommonfederation.org/ InCommon Federation (more) Cornell was one of the first higher education institutions to join InCommon. InCommon now has 42 higher ed members plus 16 vendors. Current Shibboleth Activities Past: Napster initial sign-on. Shibboleth Identity Provider running in production, hope to have fully configured for production by the end of the summer. Internet2 Wiki - participants of Internet2 working groups use Shibboleth to log onto their Wikis. Testing - we are currently working with the library and testing shibbolized online journal websites. (Improves licensed access from offcampus.) Try EBSCO! search.ebscohost.com/Login.aspx?authtype= Resume Demo-mania Future Possibility: A Cornell Federation Ithaca, Weill, Qatar, ? I2 Overview Maps Nicely to CU Separates the management of the policy, business rules, and groups from the technical system… http://identity.cit.cornell.edu/authz/CAP/index.html What’s up with Sidecar? What is Sidecar? Sidecar is a program written at Cornell. It extends Kerberos protection to online services that don’t have Kerberos built in. Why is Sidecar going away? Sidecar was tightly coupled to Kerberos 4 which is being retired. A review of the SideCar architecture as well as the proliferation of NATs has shown that a similar solution for Kerberos 5 would not have acceptable functionality or security. When will this happen? With the retirement of K4, currently scheduled for May-June ‘08 What is the new key that I see in the system tray? There will be a new key in the system tray. It is a reminder that your workstation is logged into Kerberos. Current plan is to call it Kerberos Viewer There’s an updated FAQ www.cit.cornell.edu/services/identity/kerberos/NEWabout.html Whom do I contact if I have more questions? aadssupport@cornell.edu Now, where were we? Defining a Namespace Grouper will likely handle many different types of groups. Some groups will be used to make authorization decisions Some may be used for non-authorization activities such as generating email lists and calendaring. Grouper organized with “groups” and “stems” When someone requests that a new group or stem be created, we will need a process for defining where in the Grouper name-space the new stem or group should be placed what it should be named. Our Namespace Strategy Define a basic name-space of stems in which new groups can be created so that as soon as we switch from using the Permit Server to using Grouper, we will be ready to create new groups. Designate one or more people from each unit as the “owner” or “stem administrator” of their unit’s name-space. In this way, we push authority to the departmental units and each unit can decide how they want to administer their Grouper stem. Multiple Views of Delegated Authority HR View of Delegated Authority Fiscal Responsibility View(s) College, Department, Program, etc. Statutory vs. endowed Project-based (crosses all of the above) Research View(s) Role-based: Fiscal Officer, Account Manager, Account Supervisor Org Hierarchies: Responsibility Centers, Divisions, Departments, Units Account-based: Chart of Accounts, Account, Sub-Account, Object Codes, Project Codes, etc. Academic View(s) Division Department, Unit, Job, Position, Also Role, Project, or other notions of responsibility Matrixed & non-matrixed Closely related to, sometimes the same as, Academic view(s) Based on Funding Source or… Based on Signature Authority Or Project-based Issues For All Delegation, Matrixing, Effective-dating (time boxing), etc. Resolution of orthogonal views (cross-walking multiple Orgs) Base the multiple views on administered data in enterprise sources Research Unit Reference Chart Office of Institutional Planning Structure designed to provide a view of delegated authority at the organizational entity level from the Board of Trustees view Currently updated once a year (every Spring) Willing to maintain this if users sign up to the idea RURC has 48 Units Decent representation (ITMC) Makes sense because the structure below Unit Name is political not logical, and therefore unfathomable… Affiliates (have their own tree) So, for example So, for example 48 RURC Units So, for example 48 RURC Units about 12 of these So, for example HR nests its own org structure here So, for example HR nests its own org structure here OK, where were we?