Identity and Directories with FreeIPA

Identity and Directories with
FreeIPA
Simo Sorce
Sr. Principal Sw. Eng., Red Hat
2015/01/21
1
Simo Sorce
What is FreeIPA ?
FreeIPA is a Directory and Authentication Server
aka a Domain Controller
Primarily targets at Linux servers.
“IPA” stands for Identity, Policy and Audit
2
NYLUG – Simo Sorce - FreeIPA
FreeIPA project
The FreeIPA project can be defined as a metaproject.
It integrates existing Open Source components
into a cohesive and harmonized solution.
The goal of the FreeIPA project is to provide an
easy to use and install but powerful Identity
Management solution for Linux environments.
3
NYLUG – Simo Sorce - FreeIPA
Identity Management ?
NYLUG – Simo Sorce - FreeIPA
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
5
NYLUG – Simo Sorce - FreeIPA
Identity Management - Basics
Identities
Authentication
Access Control
When talking about identities
in FreeIPA we think equally
of users, hosts and services.
Authentication is the act of
identifying one actor to
another.
The end goal is to be able to
apply access policies and
enforce access privileges.
Identity implies concepts
such as naming, credentials,
privileges, identification is
key to establish relations
with other objects.
In FreeIPA both users and
machines own credentials
and can authenticate (to)
each other.
FreeIPA implements a
number of standard access
controls as well as new ones
(like Host Based Access
Control).
6
NYLUG – Simo Sorce - FreeIPA
Why should I care for Identity Management ?
Every networked machine needs accounts and
authentication services.
From small startups to big enterprises, from cloud
deployments to on-premise, every system admin or
devop environment faces the problem of managing
users, admins, systems, their credentials and keys,
and control and coordinate access.
?
7
Purpose built Identity Management systems reduce
errors, and improve productivity of both admins and
users by simplifying management.
NYLUG – Simo Sorce - FreeIPA
Identities and
Directories
NYLUG – Simo Sorce - FreeIPA
Just a directory ?
A directory is necessary but not sufficient.
A modern system includes dedicated
authentication services, policies and a way to
manage all these components.
Naming is also important over networks;
if you can't resolve names you can't effectively use
modern security and crypto services.
9
NYLUG – Simo Sorce - FreeIPA
FreeIPA Components
Core:
FreeIPA
NTPD
389ds LDAP Server
MIT Krb5 KDC
Web UI / CLI
DNS
HTTP APIs / Web UI
Python IPA framework
Kerberos KDC
NTPD server
CS (PKI CA)
Optional:
BIND9 DNS Server
Dogtag Certificate System
LDAP Directory
10
NYLUG – Simo Sorce - FreeIPA
Holistic approach
Not just a bag of parts.
Conceal complexity with consistent management
interfaces.
All the functions are available both via a pleasing
Web UI and a powerful CLI all based on the same
API.
11
NYLUG – Simo Sorce - FreeIPA
So, what can it do for you ?
NYLUG – Simo Sorce - FreeIPA
Manage identities
Full identity life-cycle
management for:
Users
Hosts
Services
Nested user groups
Nested host groups
Private user groups
External users and
groups
Auto-membership
Netgroups
Automount maps
User self-service
13
NYLUG – Simo Sorce - FreeIPA
Policy & Security
Extensive security policy
management capabilities:
Role-based, fine-grained
delegation of administrative
privileges.
Host Based Access Control
Centralized Sudo Policies
Groups based password policies
Two Factor Authentication via
Hard or Soft-token (TOTP/HOTP)
SSH Keys management
Hosts SSL Certificates
management including revocation
and automatic renewal via
integrated CA and client tools
Secure DNS updates (GSS-TSIG)
SELinux User Mapping
Both host and user public keys
14
NYLUG – Simo Sorce - FreeIPA
Simple and powerful setup tools
Install scripts are used to configure both servers and clients
15
ipa-server-install
first server instance
ipa-replica-install
additional freeipa servers
ipa-client-install
quick client domain join and setup
ipa-advise tool
help admins with configuration advice
ipa tool
command line administrative interface
NYLUG – Simo Sorce - FreeIPA
Scalable
Location 1
16
Location 2
NYLUG – Simo Sorce - FreeIPA
Integration tools
Directory migration
ipa migrate-ds tool
Including password migration
Legacy clients compatibility:
Internal NIS server (translates from LDAP data)
LDAP “compat” tree for legacy RFC2307-only clients
Active Directory Integration via cross-forest trust or sync
17
NYLUG – Simo Sorce - FreeIPA
Trust ?
NYLUG – Simo Sorce - FreeIPA
Active Directory Integration (Trust)
Active
Directory
FreeIPA
TRUST
user@domain.ad
Linux
19
NYLUG – Simo Sorce - FreeIPA
Active Directory Cross-Forest Trust Features
Authentication to FreeIPA clients
Multiple Posix ID mapping choices
Password based PAM login
Autogenerated IDs
GSSAPI/Krb5 single sign on to
services
RFC2307 IDs from AD
SSH, HTTP/Negotiate, etc..
External membership in FreeIPA
groups
ID Views
legacy clients
migrations
Including (indirect) membership in
posix groups for file and other
access control
20
NYLUG – Simo Sorce - FreeIPA
Active Directory Integration (Sync)
Active
Directory
Sync users
& paswords
FreeIPA
Linux
21
NYLUG – Simo Sorce - FreeIPA
Clients
NYLUG – Simo Sorce - FreeIPA
Clients
The 'official' FreeIPA client is SSSD (System
Security Services Daemon).
SSSD replaces legacy clients like
pam_ldap/nss_ldap/pam_krb5 (they are also
still fully supported as clients, but they do not
offer all the advanced features of SSSD).
Certmonger is the client tool used to fetch and
automatically renew certificates.
23
NYLUG – Simo Sorce - FreeIPA
SSSD
SSSD is the recommended client agent for FreeIPA.
But SSSD is more than that, it is a generic agent to connect to identity
information and authentication services.
SSSD is in fact a pluggable service that provides connectors for multiple
identity systems (even at the same time) and organizes identity information
sources into “domains”:
FreeIPA Domains
Active Directory Domains
Plain LDAP servers
...
24
NYLUG – Simo Sorce - FreeIPA
SSSD
User
Application
pam_sss
nss_sss
25
SUDO Resp.
IPA Prov.
AD GPO
AD Prov.
PAM Resp.
Cache
NSS Resp.
NYLUG – Simo Sorce - FreeIPA
FreeIPA
Active
Directory
Key SSSD Features
Smart caching of identity information
Automatically refreshed as needed
Offline identity and authentication support via
caching:
network interruptions, server maintenance
windows, good for laptops
Better client behavior:
Keeps access credentials private
Saves load on the servers thanks to caching and
connection pooling.
Advanced FreeIPA / AD features
26
NYLUG – Simo Sorce - FreeIPA
Let's take a look at FreeIPA
27
NYLUG – Simo Sorce - FreeIPA
Future features
Enterprise user life-cycle
User provisioning into staging area and admin
controlled activation, recover of deleted users
DNSSEC support
Automatic zone signing and key rotation
Ipsilon Identity Provider (spinoff project)
Web authentication and Federation
SAML, OpenID, OpenID Connect, Persona, etc...
28
NYLUG – Simo Sorce - FreeIPA
Future features - continued
Password vault
Allow users or services to store passwords and
other secrets in the directory and retrieve them
anywhere using a master password
With optional escrow for admins
Security domains
Scope limited sub-CAs
VPN Certs
Puppet Certs ....
29
NYLUG – Simo Sorce - FreeIPA
Clearly the best thing since sliced bread!
FreeIPA Server available in:
RHEL / CentOS / Fedora
Debian (unstable)
Ubuntu (15.04)
SSSD Client available in pretty much all distros
and even FreeBSD
Cures admin-blues in minutes! As seen on TV!
30
NYLUG – Simo Sorce - FreeIPA
Questions ?
Learn more
http://freeipa.org
http://fedorahosted.org/sssd
IRC – FreeNode: #freeipa, #sssd
Try it out
Demo site: http://ipa.demo1.freeipa.org
FreeOTP: https://fedorahosted.org/freeotp
Docker Images: http://www.freeipa.org/page/Docker
31
NYLUG – Simo Sorce - FreeIPA