Building Open Source Identity Management with FreeIPA. Martin Kosek mkosek@redhat.com http://www.oss4b.it/



Similar documents
FreeIPA - Open Source Identity Management in Linux

LinuxCon North America

Integrating Linux systems with Active Directory

Identity Management based on FreeIPA

FreeIPA 3.3 Trust features

How to build an Identity Management System on Linux. Simo Sorce Principal Software Engineer Red Hat, Inc.

Interoperability Update: Red Hat Enterprise Linux 7 beta and Microsoft Windows

Handling POSIX attributes for trusted Active Directory users and groups in FreeIPA

Identity Management: The authentic & authoritative guide for the modern enterprise

Red Hat Identity Management

FreeIPA Cross Forest Trusts

Red Hat Enterprise Identity (IPA) Centralized Management of Identities & Authentication

Managing Identity & Access in On-premise and Cloud Environments. Ellen Newlands Identity Management Product Manager Red Hat, Inc

FreeIPA Client and Server

RHEL Clients to AD Integrating RHEL clients to Active Directory

SSSD. Client side identity management. LinuxAlt 2012 Jakub Hrozek 3. listopadu 2012

Integrating Red Hat Enterprise Linux 6 with Microsoft Active Directory Presentation

AD Integration options for Linux Systems

CAC AND KERBEROS FROM VISION TO REALITY

Red Hat Enterprise ipa

Single sign-on websites with Apache httpd: Integrating with Active Directory for authentication and authorization

Mac OS X Directory Services

System Security Services Daemon

External and Federated Identities on the Web

Table of Contents. Red Hat Summit Labs. Lab Overview... 3 Background... 3

Cross-Realm Trust Interoperability, MIT Kerberos and AD

SSSD Active Directory Improvements

Authentication in a Heterogeneous Environment

Advancements in Linux Authentication and Authorisation using SSSD

FreeIPA v3: Trust Basic trust setup

Integration with Active Directory. Jeremy Allison Samba Team

Open Directory. Apple s standards-based directory and network authentication services architecture. Features

Windows Security and Directory Services for UNIX using Centrify DirectControl

Integrating UNIX and Linux with Active Directory. John H Terpstra

FreeIPA Client and Server

Fedora 18 FreeIPA: Identity/ Policy Management

Fedora 17 FreeIPA: Identity/ Policy Management

Active Directory and Linux Identity Management

External Identity and Authentication Providers For Apache HTTP Server

Kerberos and Single Sign On with HTTP

SUSE Manager 1.2.x ADS Authentication

Charles Firth Managing Macs in a Windows World

Integrating Red Hat Enterprise Linux 6 with Active Directory. Mark Heslin Principal Software Engineer

IPA Identity, Policy, Audit Karl Wirth, Red Hat Kevin Unthank, Red Hat

Kerberos and Single Sign-On with HTTP

Using Active Directory as your Solaris Authentication Source

Vintela Authentication from SCO Release 2.2. System Administration Guide

Centralized Mac Home Directories On Windows Servers: Using Windows To Serve The Mac

Likewise Security Benefits

Using Kerberos tickets for true Single Sign On

Mac OS X and Directory Services Integration

Centrify Identity and Access Management for Cloudera

ENTERPRISE LINUX SECURITY ADMINISTRATION

Univention Corporate Server. Extended domain services documentation

Allowing Linux to Authenticate to a Windows 2003 AD Domain. Prepared by. Thomas J. Munn, CISSP 11-May-06

GL550 - Enterprise Linux Security Administration

GL-550: Red Hat Linux Security Administration. Course Outline. Course Length: 5 days

ENTERPRISE LINUX SECURITY ADMINISTRATION

SUSE Linux Enterprise Server in an Active Directory Domain

Instructions for Adding a MacOS 10.4.x Server to ASURITE for File Sharing. Installation Section

Configuring Sponsor Authentication

Kangaroot SUSE TechUpdate Interoperability SUSE Linux Enterprise and Windows

How To Use Directcontrol With Netapp Filers And Directcontrol Together

Migration of Windows Intranet domain to Linux Domain Moving Linux to a Wider World

Linux/Windows Security Interop: Apache with mod_auth_kerb and Windows Server 2003 R2

Websense Support Webinar: Questions and Answers

Enabling Active Directory Authentication with ESX Server 1

ONEFS MULTIPROTOCOL SECURITY UNTANGLED

Integrating Lustre with User Security Administration. LAD 15 // Chris Gouge // 2015 Sep

Configuring idrac6 for Directory Services

Going in production Winbind in large AD domains today. Günther Deschner (Red Hat / Samba Team)

Integrating Mac OS X 10.6 with Active Directory. 1 April 2010

INUVIKA TECHNICAL GUIDE

Single Sign-On for Kerberized Linux and UNIX Applications

White Paper. Fabasoft on Linux - Preparation Guide for Community ENTerprise Operating System. Fabasoft Folio 2015 Update Rollup 2

SSSD and OpenSSH Integration

IDENTITIES, ACCESS TOKENS, AND THE ISILON ONEFS USER MAPPING SERVICE

MongoDB Security Guide

Using SUSE Linux Enterprise Desktop with Microsoft * Active Directory Infrastructure

1 Introduction. Ubuntu Linux Server & Client and Active Directory. Page 1 of 14

identity management in Linux and UNIX environments

Introduction to Linux (Authentication Systems, User Accounts, LDAP and NIS) Süha TUNA Res. Assist.

Domain Services for Windows Administration Guide

PKI Made Easy: Managing Certificates with Dogtag. Ade Lee Sr. Software Engineer Red Hat, Inc

Apple Technical White Paper Best Practices for Integrating OS X with Active Directory

Implementing Active Directory Hurdles, Obstacles, and the Finish Line. Jim McDonough Samba Team IBM Linux Technology Center April 6, 2004

Windows Security. CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger.

Automating Cloud Security with Centrify Express and RightScale

Mac OS X Server. Open Directory Administration For Version 10.4 or Later

VINTELA AUTHENTICATION SERVICES

MongoDB Security Guide

Using Network Attached Storage with Linux. by Andy Pepperdine

Creating an LDAP Directory

Integrating OID with Active Directory and WNA

Integrating Ubuntu 8.04 LTS into Microsoft Active Directory using Likewise Open

Hadoop Elephant in Active Directory Forest. Marek Gawiński, Arkadiusz Osiński Allegro Group

OVERVIEW OF TYPICAL WINDOWS SERVER ROLES

Skyward LDAP Launch Kit Table of Contents

Transcription:

Building Open Source Identity Management with FreeIPA Martin Kosek mkosek@redhat.com http:/// OSS4B 2013 - Open Source Software for Business 19-20 September 2013, Monash University Prato Centre Prato, Tuscany, Italy

Agenda What is Identity Management Meet Active Directory Introduce FreeIPA - Features and examples Addressing interoperability with Active Directory

Getting a Context What is identity management? Identity management (IdM) describes the management of individual principals, their authentication, authorization, and privileges within or across system and enterprise boundaries with the goal of increasing security and productivity while decreasing cost, downtime and repetitive tasks. Wikipedia This is the theory, but what does it mean? Identities (principals): users, machines, services/applications Authentication: /etc/passwd, LDAP, NIS, Kerberos Authorization: Policies, ACLs, DAC, MAC Within or across systems: all this can be configured locally May become a synchronization nightmare on network

IdM Related Technologies Active Directory Main identity management solution deployed in more than 90% of the enterprises LDAP (389 DS, OpenLDAP, edirectory, SunDS,...) Often used for custom IdM solution Kerberos Authentication Samba (Samba 4 DC, Samba FS, Winbind) NIS (NIS+) - obsoleted

Active Directory vs. Open Source Why is Active Directory so popular? Integrated solution It is relatively easy to use Simple configuration for clients All the complexity is hidden from users and admins Has comprehensive interfaces

Active Directory vs. Open Source (2) What about Open Source tools? Solve individual problems do one thing and do it well Bag of technologies lacking integration Hard to install and configure Have you ever tried manual LDAP+Kerberos configuration? Too many options exposed Which to choose? Prevent shooting myself in the leg Lack of good user interfaces Is the situation really that bad?

Introducing FreeIPA IPA stands for Identity, Policy, Audit So far we have focused on identities and related policies Main problems FreeIPA solves: Central management of authentication and identities for Linux clients better than stand-alone LDAP/Kerberos/NIS - based solutions Lets IdM available to regular admins, hides complexity Install with one command, in several minutes Acts as a gateway between the Linux infrastructure and AD environment making infrastructure more manageable and more cost effective This is a requirement, as we said earlier, Active Directory is often the main Identity Management source More about that topic later

High-level architecture Web UI/CLI/JSON HTTP NTP PKI KDC CLI/UI LDAP DNS identity auth policies certiticates SSSD SSSD Admin FreeIPA server SSSD

Example - Using FreeIPA CLI $ kinit admin Password for admin@example.com: $ klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: admin@example.com Valid starting Expires Service principal 10/15/12 10:47:35 10/16/12 10:47:34 krbtgt/example.com@...

Example - Using FreeIPA CLI (2) $ ipa user-add --first=john --last=doe jdoe --random ----------------- Added user "jdoe" ----------------- User login: jdoe First name: John Last name: Doe Full name: John Doe Display name: John Doe Initials: JD Home directory: /home/jdoe GECOS field: John Doe Login shell: /bin/sh Kerberos principal: jdoe@example.com Email address: jdoe@example.com Random password: xmc2xki=ivvm UID: 1998400002 GID: 1998400002 Password: True Kerberos keys available: True

Features: Deployment Hide complexity of LDAP+Kerberos+CA+... deployment We have few requirements Sane DNS environment, reverse records DNS is crucial to identify machines Service principals, X509 Certificates use DNS names SSH identify targets via DNS names Static FQDN hostnames - forms principals Configuration with one command ipa-server-install, ipa-client-install Supports replicas Essential for redundancy and fault protection ipa-replica-install

Features: Identity Management Users, groups: Automatic and unique UIDs, across replicas Manage users SSH public keys Role-based access control, self-service Hosts, host groups, netgroups: Manage host life-cycle, enrollment Services/applications Manage keytab, certificate Automatic group membership based on rules Just add a user/host and all matching group/host group membership is added

Features: DNS Optional feature DNS data stored in LDAP Plugin for BIND9 name server to serve the data bind-dyndb-ldap Allows integration of DNS records with rest of the framework

Features: Policy Management HBAC Control who can do what and where Enforced by SSSD for authentication requests going through PAM Useful when automember is in use $ ipa hbacrule-show labmachines_login Rule name: labmachines_login Enabled: TRUE User Groups: labusers, labadmins Host Groups: labmachines Services: sshd, login

Features: Policy Management (2) SUDO: $ ipa sudorule-show test Rule name: test Enabled: TRUE User Groups: labadmins Host Groups: labmachines Sudo Allow Commands: /usr/sbin/service Automount: $ ipa automountkey-find prato auto.direct ----------------------- 1 automount key matched ----------------------- Key: /nfs/apps Mount information: export.example.com:/apps

Features: Policy Management (3) SELinux user roles Centrally assign SELinux user roles to users Avoid configuring roles per-server using semanage user command $ ipa selinuxusermap-show labguests Rule name: labguests SELinux User: guest_u:s0 Enabled: TRUE User Groups: labusers Host Groups: labmachines

Use case: Kerberize a web service Enable SSO for a web application with few commands # ipa-client-install -p admin -w PAsSw0rd --unattended Discovery was successful! Hostname: web.example.com Realm: EXAMPLE.COM DNS Domain: example.com IPA Server: ipa.example.com BaseDN: dc=example,dc=com Synchronizing time with KDC... Enrolled in IPA realm EXAMPLE.COM... DNS server record set to: web.example.com -> 10.0.0.10... Client configuration complete.

Use case: Kerberize a web service (2) # kinit admin # ipa service-add HTTP/web.example.com # ipa-getkeytab -p HTTP/web.example.com -s ipa.example.com \ -k /etc/httpd/conf/httpd.keytab # chown apache:apache /etc/httpd/conf/http.keytab # chmod 0400 /etc/httpd/conf/http.keytab

Use case: Kerberize a web service (3) # yum install mod_auth_kerb # Kerberos auth for Apache # cat /etc/httpd/conf.d/webapp.conf <Location "/secure"> AuthType Kerberos AuthName "Web app Kerberos authentization" KrbMethodNegotiate on KrbMethodK5Passwd on KrbServiceName HTTP KrbAuthRealms EXAMPLE.COM Krb5Keytab /etc/httpd/conf/http.keytab KrbSaveCredentials off Require valid-user </Location> # service httpd restart

Introducing SSSD SSSD is a service/daemon used to retrieve information from a central identity management system. SSSD connects a Linux system to a central identity store like: Active Directory FreeIPA Any other directory server Provides identity, authentication and access control

Introducing SSSD (2) Multiple parallel sources of identity and authentication domains All information is cached locally for offline use Remote data center use case Laptop or branch office system use case Advanced features for FreeIPA integration AD integration - even without FreeIPA

FreeIPA and Active Directory Active Directory is present in most of the businesses IdM in Linux and Windows cannot be 2 separate isles Doubles the identity and policy management work Need to address some form of cooperation 3 rd party solutions for AD Integration Enables machine to join AD as Windows machines Linux machines are 2 nd class citizens Increases costs for the solution +Windows CLA Does not offer centralization for Linux native services SELinux, Automount,...

FreeIPA and Active Directory (2) FreeIPA v2 - winsync User and password synchronization Easier management, but still 2 separate identities One-way, name collisions, no SSO from AD FreeIPA v3+ - Cross-realm Kerberos trusts Users in AD domain can access resources in a FreeIPA domain and vice verse One Identity, no name collisions, SSO with AD credentials

FreeIPA and Active Directory (3) Stage 1: allow AD users to connect to FreeIPA services. For example: PuTTY from Windows machine connecting to FreeIPA-managed Linux machine via SSH - with SSO! Mounting Kerberos-protected NFS share Stage 2: allow FreeIPA users to interactively log in into AD machines Requires support for Global Catalog on FreeIPA server side Work in progress, planned for FreeIPA 3.4 (Q4/2013)

Cross-Realm Kerberos Trust FreeIPA deployment is a fully managed Kerberos realm Can be integrated with Windows as RFC4120 compliant Kerberos realm Traditional Kerberos trust management applies: Manual mapping of Identities in both Active Directory and Linux (~/.k5login) Does not scale with thousands of users and computers Better approach - native cross forest trusts AD DC thinks considers FreeIPA server as another AD DC MS-specific extensions to standard protocols need to be supported

Cross-Realm Kerberos Trust (2) FreeIPA Samba passdb backend: Expansion of traditional Samba LDAP passdb backend New schema objects and attributes to support trusted domain information Creates the actual Trust using LSA pipe via SMB protocol Exposes the LSA pipe to FreeIPA framework - trust handling FreeIPA KDC backend: Verifies and sign MS-PAC coming from a trusted cross forest realm Accepts principals and tickets from a trusted realm Generates MS-PAC information out of LDAP

Is it enough? What is the catch? We can manage Linux machines with FreeIPA We can manage Windows machines with AD We can establish a trust between them - good! Works great for green field deployments BUT! What about users already using Linux-AD integration? Identity Management for Unix AD LDAP extension Third party plugins What about users in legacy machines? Older Linuxes, UNIXes... They cannot use the modern SSSD with AD support Address before moving forward

Existing Linux-AD integration Main problem is with UID/GID generation FreeIPA 3.0-3.2 generates them from SID Maps Windows style SID (e.g. S-1-5-21-16904141-148189700-2149043814-1234) to UNIX-style UID/GID based on user ranges (e.g. UID 9870001234, GID 9870001234) AD users may already contain defined UID/GID attributes Identity Management for Unix AD LDAP extension UID/GID are already used on Linux machines If changed, file ownership breaks Allow reading these attributes! New setting for AD Trust SSSD reads the POSIX attributes from AD and uses them

Existing Linux-AD integration (2) AD 1) Gets realm TGT+MS-PAC IdM LDAP KDC 3) Asks IdM for identity via LDAP extended operation KDC LDAP FreeIPA client SSSD Authentication Identities 5) Gets UID/GID from AD/cache 2) Authenticates to client 6) Identity returned to client SSSD 4) Asks server SSSD SSSD Authentication Identities FreeIPA server sudo hbac Policies automount selinux

Legacy clients using AD Trust Administrator may want both AD and Linux users authenticate in older systems SSSD with AD support may not available Solved by compatibility LDAP tree in FreeIPA server Exposes a compatibility tree managed by slapi-nis DS plugin Provides both identity and authentication standard via LDAP operations Intercepts LDAP bind operations For FreeIPA user, it just does LDAP bind to FreeIPA LDAP tree For external user: Asks SSSD for user/group (getpwnam_/getgrnam_r), it asks AD Does PAM system-auth command, also via SSSD

Legacy clients using AD Trust (2) LDAP AD KDC 1) Does LDAP bind to compat tree KDC IdM LDAP 2) Gets identity with system calls 4) Tries to authenticate via PAM (system-auth) Legacy client nss_ldap Authentication Identities 6) Identity + authentication 3) Reads identity from AD 5) Authenticates FreeIPA server SSSD Authentication Identities

Other resources, contact Web: www.freeipa.org Code: www.fedorahosted.org/freeipa/ IRC: #freeipa on freenode Mailing lists: freeipa-interest@redhat.com freeipa-users@redhat.com freeipa-devel@redhat.com QUESTIONS?