Enterprise desktop: improving client side in the age of Samba AD and - - PowerPoint PPT Presentation

enterprise desktop improving client side in the age of
SMART_READER_LITE
LIVE PREVIEW

Enterprise desktop: improving client side in the age of Samba AD and - - PowerPoint PPT Presentation

Principal Software Engineer, Red Hat // Samba Team SambaXP16 Enterprise desktop: improving client side in the age of Samba AD and FreeIPA Alexander Bokovoy Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 2


slide-1
SLIDE 1

Principal Software Engineer, Red Hat // Samba Team SambaXP’16

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA

Alexander Bokovoy

slide-2
SLIDE 2

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 2

Enterprise desktop?

slide-3
SLIDE 3

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 3

Centralized identity management system

There are now several free software identity management systems with the focus on managing

  • perating systems’ environments:

▶ Samba AD ▶ FreeIPA ▶ [many other LDAP+Kerberos based projects]

slide-4
SLIDE 4

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 4

Enterprise desktop

▶ a client enrolled to a centralized identity management system ▶ a tool to solve business tasks ▶ a subject to centrally defined access controls

slide-5
SLIDE 5

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 5

Enterprise desktop

Typical enterprise desktop includes agents for

▶ identity services: POSIX attributes for users and groups via NSSWITCH

authentication services: logon details, mostly via PAM interface authorization services: mostly via PAM interface or application-specific ones

slide-6
SLIDE 6

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 6

Enterprise desktop

Typical enterprise desktop includes agents for

▶ identity services: POSIX attributes for users and groups via NSSWITCH ▶ authentication services: logon details, mostly via PAM interface

authorization services: mostly via PAM interface or application-specific ones

slide-7
SLIDE 7

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 7

Enterprise desktop

Typical enterprise desktop includes agents for

▶ identity services: POSIX attributes for users and groups via NSSWITCH ▶ authentication services: logon details, mostly via PAM interface ▶ authorization services: mostly via PAM interface or application-specific ones

slide-8
SLIDE 8

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 8

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default

pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations SSSD performs host-based access control to PAM services using rules stored centrally in FreeIPA OpenSSH is configured to look up public keys for users and hosts via SSSD SUDO is configured to look up SUDO rules in FreeIPA via SSSD automount can be configured to use SSSD to deliver the mount maps SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-9
SLIDE 9

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 9

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations SSSD performs host-based access control to PAM services using rules stored centrally in FreeIPA OpenSSH is configured to look up public keys for users and hosts via SSSD SUDO is configured to look up SUDO rules in FreeIPA via SSSD automount can be configured to use SSSD to deliver the mount maps SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-10
SLIDE 10

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 10

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations

▶ SSSD performs host-based access control to PAM services using rules stored centrally in

FreeIPA OpenSSH is configured to look up public keys for users and hosts via SSSD SUDO is configured to look up SUDO rules in FreeIPA via SSSD automount can be configured to use SSSD to deliver the mount maps SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-11
SLIDE 11

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 11

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations

▶ SSSD performs host-based access control to PAM services using rules stored centrally in

FreeIPA

▶ OpenSSH is configured to look up public keys for users and hosts via SSSD

SUDO is configured to look up SUDO rules in FreeIPA via SSSD automount can be configured to use SSSD to deliver the mount maps SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-12
SLIDE 12

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 12

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations

▶ SSSD performs host-based access control to PAM services using rules stored centrally in

FreeIPA

▶ OpenSSH is configured to look up public keys for users and hosts via SSSD ▶ SUDO is configured to look up SUDO rules in FreeIPA via SSSD

automount can be configured to use SSSD to deliver the mount maps SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-13
SLIDE 13

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 13

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations

▶ SSSD performs host-based access control to PAM services using rules stored centrally in

FreeIPA

▶ OpenSSH is configured to look up public keys for users and hosts via SSSD ▶ SUDO is configured to look up SUDO rules in FreeIPA via SSSD ▶ automount can be configured to use SSSD to deliver the mount maps

SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-14
SLIDE 14

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 14

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations

▶ SSSD performs host-based access control to PAM services using rules stored centrally in

FreeIPA

▶ OpenSSH is configured to look up public keys for users and hosts via SSSD ▶ SUDO is configured to look up SUDO rules in FreeIPA via SSSD ▶ automount can be configured to use SSSD to deliver the mount maps ▶ SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers

and map Kerberos principals to POSIX user names for trust operations SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-15
SLIDE 15

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 15

Practical case: Fedora and FreeIPA

FreeIPA client defaults to use SSSD as an agent

▶ nss_sss is referenced in /etc/nsswitch.conf on Fedora by default ▶ pam_sss use is configured at the enrollment time for system-auth PAM service which is

included to all PAM configurations

▶ SSSD performs host-based access control to PAM services using rules stored centrally in

FreeIPA

▶ OpenSSH is configured to look up public keys for users and hosts via SSSD ▶ SUDO is configured to look up SUDO rules in FreeIPA via SSSD ▶ automount can be configured to use SSSD to deliver the mount maps ▶ SSSD provides locator and localauth plugins to MIT Kerberos to discover domain controllers

and map Kerberos principals to POSIX user names for trust operations

▶ SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

slide-16
SLIDE 16

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 16

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration

Pure winbindd: nss_winbind and pam_winbind for identity and authentication Pure winbindd: Limited authorization capabilities (account lock) Hybrid approach:

nss_sss and pam_sss for identity and authentication

winbindd is used by Samba, configured to trust SSSD-provided ID range SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy SSSD does authorization using GPO and/or account lock

slide-17
SLIDE 17

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 17

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication

Pure winbindd: Limited authorization capabilities (account lock) Hybrid approach:

nss_sss and pam_sss for identity and authentication

winbindd is used by Samba, configured to trust SSSD-provided ID range SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy SSSD does authorization using GPO and/or account lock

slide-18
SLIDE 18

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 18

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication ▶ Pure winbindd: Limited authorization capabilities (account lock)

Hybrid approach:

nss_sss and pam_sss for identity and authentication

winbindd is used by Samba, configured to trust SSSD-provided ID range SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy SSSD does authorization using GPO and/or account lock

slide-19
SLIDE 19

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 19

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication ▶ Pure winbindd: Limited authorization capabilities (account lock) ▶ Hybrid approach:

nss_sss and pam_sss for identity and authentication

winbindd is used by Samba, configured to trust SSSD-provided ID range SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy SSSD does authorization using GPO and/or account lock

slide-20
SLIDE 20

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 20

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication ▶ Pure winbindd: Limited authorization capabilities (account lock) ▶ Hybrid approach: ▶ nss_sss and pam_sss for identity and authentication

winbindd is used by Samba, configured to trust SSSD-provided ID range SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy SSSD does authorization using GPO and/or account lock

slide-21
SLIDE 21

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 21

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication ▶ Pure winbindd: Limited authorization capabilities (account lock) ▶ Hybrid approach: ▶ nss_sss and pam_sss for identity and authentication ▶ winbindd is used by Samba, configured to trust SSSD-provided ID range

SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy SSSD does authorization using GPO and/or account lock

slide-22
SLIDE 22

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 22

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication ▶ Pure winbindd: Limited authorization capabilities (account lock) ▶ Hybrid approach: ▶ nss_sss and pam_sss for identity and authentication ▶ winbindd is used by Samba, configured to trust SSSD-provided ID range ▶ SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy

SSSD does authorization using GPO and/or account lock

slide-23
SLIDE 23

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 23

Practical case: Samba AD domain member

▶ A pure winbindd-based setup or a hybrid SSSD+winbindd configuration ▶ Pure winbindd: nss_winbind and pam_winbind for identity and authentication ▶ Pure winbindd: Limited authorization capabilities (account lock) ▶ Hybrid approach: ▶ nss_sss and pam_sss for identity and authentication ▶ winbindd is used by Samba, configured to trust SSSD-provided ID range ▶ SSSD supports offline logon, logon with smart cards, logon with Kerberos proxy ▶ SSSD does authorization using GPO and/or account lock

slide-24
SLIDE 24

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 24

That’s all behind the scenes, what would user see?

slide-25
SLIDE 25

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 25

How enterprisey are we?

slide-26
SLIDE 26

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 26

Let’s score by a password

slide-27
SLIDE 27

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 27

Let’s score by a password

A typical workflow for every laptop reboot

  • 1. Sign into a local system account (enter a password)
  • 2. Jump onto virtual private network (enter a password or more)
  • 3. Obtain initial Kerberos credentials (enter a password)
  • 4. Use corporate applications (enter a password?)
slide-28
SLIDE 28

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 28

Let’s score by a password

A typical workflow for every laptop reboot

  • 1. Sign into a local system account (enter a password)
  • 2. Jump onto virtual private network (enter a password or more)
  • 3. Obtain initial Kerberos credentials (enter a password)
  • 4. Use corporate applications (enter a password?)
slide-29
SLIDE 29

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 29

Let’s score by a password

A typical workflow for every laptop reboot

  • 1. Sign into a local system account (enter a password)
  • 2. Jump onto virtual private network (enter a password or more)
  • 3. Obtain initial Kerberos credentials (enter a password)
  • 4. Use corporate applications (enter a password?)
slide-30
SLIDE 30

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 30

Let’s score by a password

A typical workflow for every laptop reboot

  • 1. Sign into a local system account (enter a password)
  • 2. Jump onto virtual private network (enter a password or more)
  • 3. Obtain initial Kerberos credentials (enter a password)
  • 4. Use corporate applications (enter a password?)
slide-31
SLIDE 31

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 31

Can we do better than this?

how far are we from

▶ Sign into a corporate environment ▶ Use corporate applications

?

slide-32
SLIDE 32

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 32

Let’s try to login!

Demo (first 40 seconds):

http://talks.vda.li/2016/05/SambaXP/freeipa-logon-1FA-2FA.webm

slide-33
SLIDE 33

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 33

What was that?

▶ The system is configured to be a client for FreeIPA

SSSD handles login and Kerberos keys Login to the system is verified over public network using a proxy for Kerberos protocol Established VPN connection based on Kerberos ticket Credentials were entered only once

slide-34
SLIDE 34

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 34

What was that?

▶ The system is configured to be a client for FreeIPA ▶ SSSD handles login and Kerberos keys

Login to the system is verified over public network using a proxy for Kerberos protocol Established VPN connection based on Kerberos ticket Credentials were entered only once

slide-35
SLIDE 35

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 35

What was that?

▶ The system is configured to be a client for FreeIPA ▶ SSSD handles login and Kerberos keys ▶ Login to the system is verified over public network using a proxy for Kerberos protocol

Established VPN connection based on Kerberos ticket Credentials were entered only once

slide-36
SLIDE 36

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 36

What was that?

▶ The system is configured to be a client for FreeIPA ▶ SSSD handles login and Kerberos keys ▶ Login to the system is verified over public network using a proxy for Kerberos protocol ▶ Established VPN connection based on Kerberos ticket

Credentials were entered only once

slide-37
SLIDE 37

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 37

What was that?

▶ The system is configured to be a client for FreeIPA ▶ SSSD handles login and Kerberos keys ▶ Login to the system is verified over public network using a proxy for Kerberos protocol ▶ Established VPN connection based on Kerberos ticket ▶ Credentials were entered only once

slide-38
SLIDE 38

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 38

Kerberos proxy

Available on the client side with Microsoft Active Directory and MIT Kerberos 1.13

▶ protocol is called MS-KKDCP ▶ transparent for Kerberos library users

Kerberos proxy is implemented by FreeIPA 4.2, OpenConnect Server 7.05, and as a standalone server

▶ Requires HTTPS connection, set up by default in FreeIPA 4.2, very easy to use (one line

change on the client)

▶ Allows to obtain tickets from anywhere ▶ SSSD 1.12+ ▶ Real-life example: GNOME project uses KDC proxy to allow GSSAPI authentication in SSH for

GNOME developers

slide-39
SLIDE 39

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 39

VPN and Kerberos

OpenConnect client supports GSSAPI negotiation

▶ Fedora 22+ works out of the box

OpenVPN does not support GSSAPI negotiation

▶ to do since 2005, ignored by upstream

Support for GSSAPI in IPSEC is coming

slide-40
SLIDE 40

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 40

Two-factor authentication

FreeIPA 4.x supports 2FA natively

▶ Yubikey, FreeOTP client for Android and iOS, any HOTP/TOTP compatible software and

hardware

▶ Two-factor authentication is enforced on Kerberos level ▶ Performs pre-authentication before issuing a ticket ▶ Authentication Indicators are in Kerberos 1.14 ▶ Pre-authentication modules can say how tickets were issued

slide-41
SLIDE 41

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 41

FreeOTP: Android and iOS

Figure 1:

slide-42
SLIDE 42

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 42

Demo

Demo (starting from 40s):

http://talks.vda.li/2016/05/SambaXP/freeipa-logon-1FA-2FA.webm

slide-43
SLIDE 43

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 43

What was that?

  • 1. One time password token was programmed to Yubikey and added for the user in FreeIPA
  • 2. SSSD handles login and notices OTP pre-authentication support in Kerberos conversation
  • 3. Login to the system is verified over public network using a proxy for Kerberos protocol
  • 4. Kerberos ticket is obtained, first factor is provided by SSSD to GDM for unlocking GNOME

passwords and keys storage (SeaHorse)

  • 5. Credentials were entered only once
slide-44
SLIDE 44

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 44

What was that?

  • 1. One time password token was programmed to Yubikey and added for the user in FreeIPA
  • 2. SSSD handles login and notices OTP pre-authentication support in Kerberos conversation
  • 3. Login to the system is verified over public network using a proxy for Kerberos protocol
  • 4. Kerberos ticket is obtained, first factor is provided by SSSD to GDM for unlocking GNOME

passwords and keys storage (SeaHorse)

  • 5. Credentials were entered only once
slide-45
SLIDE 45

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 45

What was that?

  • 1. One time password token was programmed to Yubikey and added for the user in FreeIPA
  • 2. SSSD handles login and notices OTP pre-authentication support in Kerberos conversation
  • 3. Login to the system is verified over public network using a proxy for Kerberos protocol
  • 4. Kerberos ticket is obtained, first factor is provided by SSSD to GDM for unlocking GNOME

passwords and keys storage (SeaHorse)

  • 5. Credentials were entered only once
slide-46
SLIDE 46

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 46

What was that?

  • 1. One time password token was programmed to Yubikey and added for the user in FreeIPA
  • 2. SSSD handles login and notices OTP pre-authentication support in Kerberos conversation
  • 3. Login to the system is verified over public network using a proxy for Kerberos protocol
  • 4. Kerberos ticket is obtained, first factor is provided by SSSD to GDM for unlocking GNOME

passwords and keys storage (SeaHorse)

  • 5. Credentials were entered only once
slide-47
SLIDE 47

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 47

What was that?

  • 1. One time password token was programmed to Yubikey and added for the user in FreeIPA
  • 2. SSSD handles login and notices OTP pre-authentication support in Kerberos conversation
  • 3. Login to the system is verified over public network using a proxy for Kerberos protocol
  • 4. Kerberos ticket is obtained, first factor is provided by SSSD to GDM for unlocking GNOME

passwords and keys storage (SeaHorse)

  • 5. Credentials were entered only once
slide-48
SLIDE 48

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 48

If Kerberos credentials are available, what can we do with them?

▶ Authenticate with GSSAPI against almost anything

Obtain SAML assertion for other web services (and more) Use to access networking file systems Display properties of the available tickets Renew the ticket granting ticket (TGT) Choose which Kerberos principal is in use

slide-49
SLIDE 49

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 49

If Kerberos credentials are available, what can we do with them?

▶ Authenticate with GSSAPI against almost anything ▶ Obtain SAML assertion for other web services (and more)

Use to access networking file systems Display properties of the available tickets Renew the ticket granting ticket (TGT) Choose which Kerberos principal is in use

slide-50
SLIDE 50

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 50

If Kerberos credentials are available, what can we do with them?

▶ Authenticate with GSSAPI against almost anything ▶ Obtain SAML assertion for other web services (and more) ▶ Use to access networking file systems

Display properties of the available tickets Renew the ticket granting ticket (TGT) Choose which Kerberos principal is in use

slide-51
SLIDE 51

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 51

If Kerberos credentials are available, what can we do with them?

▶ Authenticate with GSSAPI against almost anything ▶ Obtain SAML assertion for other web services (and more) ▶ Use to access networking file systems ▶ Display properties of the available tickets

Renew the ticket granting ticket (TGT) Choose which Kerberos principal is in use

slide-52
SLIDE 52

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 52

If Kerberos credentials are available, what can we do with them?

▶ Authenticate with GSSAPI against almost anything ▶ Obtain SAML assertion for other web services (and more) ▶ Use to access networking file systems ▶ Display properties of the available tickets ▶ Renew the ticket granting ticket (TGT)

Choose which Kerberos principal is in use

slide-53
SLIDE 53

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 53

If Kerberos credentials are available, what can we do with them?

▶ Authenticate with GSSAPI against almost anything ▶ Obtain SAML assertion for other web services (and more) ▶ Use to access networking file systems ▶ Display properties of the available tickets ▶ Renew the ticket granting ticket (TGT) ▶ Choose which Kerberos principal is in use

slide-54
SLIDE 54

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 54

Authenticate with GSSAPI

Epiphany, the GNOME Web Browser, in GNOME 3.18:

▶ GSSAPI support is no more, depends on libsoup support

libsoup has been dragging since 2009, bug #587145 WebkitGtk is unusable for SAML/OAuth2 interactions involving Kerberos One cannot use Google apps with GSSAPI in Gnome Online Accounts No single sign-on with GSSAPI from GNOME applications using WebkitGtk to authenticate

slide-55
SLIDE 55

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 55

Authenticate with GSSAPI

Epiphany, the GNOME Web Browser, in GNOME 3.18:

▶ GSSAPI support is no more, depends on libsoup support ▶ libsoup has been dragging since 2009, bug #587145

WebkitGtk is unusable for SAML/OAuth2 interactions involving Kerberos One cannot use Google apps with GSSAPI in Gnome Online Accounts No single sign-on with GSSAPI from GNOME applications using WebkitGtk to authenticate

slide-56
SLIDE 56

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 56

Authenticate with GSSAPI

Epiphany, the GNOME Web Browser, in GNOME 3.18:

▶ GSSAPI support is no more, depends on libsoup support ▶ libsoup has been dragging since 2009, bug #587145 ▶ WebkitGtk is unusable for SAML/OAuth2 interactions involving Kerberos

One cannot use Google apps with GSSAPI in Gnome Online Accounts No single sign-on with GSSAPI from GNOME applications using WebkitGtk to authenticate

slide-57
SLIDE 57

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 57

Authenticate with GSSAPI

Epiphany, the GNOME Web Browser, in GNOME 3.18:

▶ GSSAPI support is no more, depends on libsoup support ▶ libsoup has been dragging since 2009, bug #587145 ▶ WebkitGtk is unusable for SAML/OAuth2 interactions involving Kerberos ▶ One cannot use Google apps with GSSAPI in Gnome Online Accounts

No single sign-on with GSSAPI from GNOME applications using WebkitGtk to authenticate

slide-58
SLIDE 58

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 58

Authenticate with GSSAPI

Epiphany, the GNOME Web Browser, in GNOME 3.18:

▶ GSSAPI support is no more, depends on libsoup support ▶ libsoup has been dragging since 2009, bug #587145 ▶ WebkitGtk is unusable for SAML/OAuth2 interactions involving Kerberos ▶ One cannot use Google apps with GSSAPI in Gnome Online Accounts ▶ No single sign-on with GSSAPI from GNOME applications using WebkitGtk to authenticate

slide-59
SLIDE 59

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 59

Can we do better than this?

slide-60
SLIDE 60

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 60

Demo of single sign-on in Epiphany

Demo (until 1m42s): http:

//talks.vda.li/2016/05/SambaXP/freeipa-ipsilon-googleapps-signon.webm

slide-61
SLIDE 61

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 61

What was that?

Tomáš Popela (Red Hat), David Woodhouse (Intel), and Guido Guenther (Debian) worked to fix

libsoup and WebkitGtk

We logged into my FreeIPA server’s Web UI The code is in GNOME 3.20 (March 2016) and is in Fedora 24 beta (released on May 10th) By default, all HTTPS sites advertising WWW-Authenticate: Negotiate authentication method will be probed with GSSAPI

slide-62
SLIDE 62

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 62

Why all this is important?

▶ Multi-factor authentication moves to Web-based flows (Azure, Windows 10) ▶ Corporate portals are used to authenticate when accessing external resources ▶ Captive portals prevent Internet access before logon ▶ You need to be able to be on VPN before logon to your system or have Kerberos proxy

working, or have multi-factor authentication working (full circle loop now)

▶ WebkitGTK+ is embedded in many applications

slide-63
SLIDE 63

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 63

Diversion: Running a browser before logon?

▶ Yes, effectively, a sandbox with a locked-down web engine

But network profile (access point) needs to be selected first This means Network Manager has to run before logon This means Network Manager needs to access user-specific data before logon A complete re-arrangement of logon UX Down the rabbit hole…

slide-64
SLIDE 64

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 64

Diversion: Running a browser before logon?

▶ Yes, effectively, a sandbox with a locked-down web engine ▶ But network profile (access point) needs to be selected first

This means Network Manager has to run before logon This means Network Manager needs to access user-specific data before logon A complete re-arrangement of logon UX Down the rabbit hole…

slide-65
SLIDE 65

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 65

Diversion: Running a browser before logon?

▶ Yes, effectively, a sandbox with a locked-down web engine ▶ But network profile (access point) needs to be selected first ▶ This means Network Manager has to run before logon

This means Network Manager needs to access user-specific data before logon A complete re-arrangement of logon UX Down the rabbit hole…

slide-66
SLIDE 66

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 66

Diversion: Running a browser before logon?

▶ Yes, effectively, a sandbox with a locked-down web engine ▶ But network profile (access point) needs to be selected first ▶ This means Network Manager has to run before logon ▶ This means Network Manager needs to access user-specific data before logon

A complete re-arrangement of logon UX Down the rabbit hole…

slide-67
SLIDE 67

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 67

Diversion: Running a browser before logon?

▶ Yes, effectively, a sandbox with a locked-down web engine ▶ But network profile (access point) needs to be selected first ▶ This means Network Manager has to run before logon ▶ This means Network Manager needs to access user-specific data before logon ▶ A complete re-arrangement of logon UX

Down the rabbit hole…

slide-68
SLIDE 68

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 68

Ok, anything for users, not admins?

slide-69
SLIDE 69

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 69

Single sign-on to Google Apps

Demo (starting from 1m42s): http:

//talks.vda.li/2016/05/SambaXP/freeipa-ipsilon-googleapps-signon.webm

slide-70
SLIDE 70

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 70

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA

Ipsilon project: http://ipsilon-project.org/ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them At no point Google has access to FreeIPA users’ credentials SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD GNOME Online Accounts now configured to access Google Apps’ services Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-71
SLIDE 71

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 71

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/

Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them At no point Google has access to FreeIPA users’ credentials SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD GNOME Online Accounts now configured to access Google Apps’ services Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-72
SLIDE 72

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 72

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/ ▶ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP

Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them At no point Google has access to FreeIPA users’ credentials SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD GNOME Online Accounts now configured to access Google Apps’ services Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-73
SLIDE 73

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 73

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/ ▶ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP ▶ Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them

At no point Google has access to FreeIPA users’ credentials SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD GNOME Online Accounts now configured to access Google Apps’ services Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-74
SLIDE 74

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 74

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/ ▶ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP ▶ Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them ▶ At no point Google has access to FreeIPA users’ credentials

SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD GNOME Online Accounts now configured to access Google Apps’ services Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-75
SLIDE 75

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 75

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/ ▶ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP ▶ Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them ▶ At no point Google has access to FreeIPA users’ credentials ▶ SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD

GNOME Online Accounts now configured to access Google Apps’ services Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-76
SLIDE 76

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 76

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/ ▶ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP ▶ Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them ▶ At no point Google has access to FreeIPA users’ credentials ▶ SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD ▶ GNOME Online Accounts now configured to access Google Apps’ services

Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-77
SLIDE 77

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 77

What was that?

▶ Ipsilon as an Identity Provider (IdP) taking user information from FreeIPA ▶ Ipsilon project: http://ipsilon-project.org/ ▶ Google Apps as a Service Provider (SP) talking to FreeIPA via Ipsilon’s IdP ▶ Users from FreeIPA can logon to Google Apps if admin did pre-create accounts for them ▶ At no point Google has access to FreeIPA users’ credentials ▶ SSSD is the key component here, the same setup will work for a SSSD enrolled to Samba AD ▶ GNOME Online Accounts now configured to access Google Apps’ services ▶ Setup recipe:

https://ipsilon-project.org/doc/example/google-apps.html

slide-78
SLIDE 78

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 78

What does GSSAPI support open for use in GNOME Online Accounts?

▶ Single sign-on is the primary feature

Automated credentials renewal Automated token/assertion renewal for SAML/OpenID No need to store passwords locally (secure kiosks?)

slide-79
SLIDE 79

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 79

What does GSSAPI support open for use in GNOME Online Accounts?

▶ Single sign-on is the primary feature ▶ Automated credentials renewal

Automated token/assertion renewal for SAML/OpenID No need to store passwords locally (secure kiosks?)

slide-80
SLIDE 80

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 80

What does GSSAPI support open for use in GNOME Online Accounts?

▶ Single sign-on is the primary feature ▶ Automated credentials renewal ▶ Automated token/assertion renewal for SAML/OpenID

No need to store passwords locally (secure kiosks?)

slide-81
SLIDE 81

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 81

What does GSSAPI support open for use in GNOME Online Accounts?

▶ Single sign-on is the primary feature ▶ Automated credentials renewal ▶ Automated token/assertion renewal for SAML/OpenID ▶ No need to store passwords locally (secure kiosks?)

slide-82
SLIDE 82

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 82

Visualize

GNOME Online Accounts could show Kerberos ticket properties

▶ Ticket time validity, flags (forward, renewal) ▶ Authentication indicators ▶ Existing service tickets in the credentials cache and allow to remove them selectively ▶ Allow automatic ticket renewal if KDC permits it

slide-83
SLIDE 83

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 83

Consume

Choose between different Kerberos principals

▶ MIT Kerberos supports kernel keyring (1.12+) and directory-based (1.11+) storage of credentials ▶ Multiple Kerberos principals can be stored and used at the same time ▶ Only a single principal can be defined as “primary” for each Kerberos realm in the collection

  • f credentials
slide-84
SLIDE 84

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 84

Kerberos ticket renewal

▶ SSSD supports automatic Kerberos ticket renewal for single factor cases

▶ Renewing 2FA tickets requires UI interaction triggered by expiry time ▶ Automatic ticket renewal requires permission from KDC, visible as a ticket flag

▶ GNOME Online Accounts could integrate with SSSD in prompting for credentials (multiple

factors) as in 2FA case needed information could be provided via SSSD InfoPipe/AuthPipe

slide-85
SLIDE 85

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 85

Better Kerberos in browsers

▶ Firefox Kerberos setup isn’t nice

▶ needs about:config manipulation ▶ DNS domains associated with Kerberos realm could be discovered via DNS SRV records,

prompted for confirmation once ▶ FreeIPA used to provide an extension to automate Firefox setup

▶ Extension was generated locally for for each FreeIPA deployment to provide configuration

details

▶ not anymore: Firefox removed ability to provide non-publicly available extensions since version

43 ▶ There are about dozen bugs related to GSSAPI support in Firefox, gradually being fixed by

Red Hat Firefox team together with Firefox upstream

slide-86
SLIDE 86

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 86

Better Kerberos in browsers

▶ Chromium/Chrome

▶ Have bugs for processing of WWW-Authenticate: Negotiate when Kerberos credentials

are not available

▶ On Linux only allows to configure Kerberos use through command line or statically system-wide,

poor user experience ▶ A fixed libsoup/WebkitGtk allows to always use GSSAPI if server advertises

WWW-Authenticate: Negotiate over HTTPS

▶ no need to configure anything in Epiphany ▶ could be further confined with a user confirmation similar to how passwords are managed at

the first logon ▶ Konqueror browser in KDE allows to always use GSSAPI if server advertises

WWW-Authenticate: Negotiate over HTTPS

slide-87
SLIDE 87

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 87

Better Kerberos in browsers

▶ GSSAPI flow is synchronous, needs better UI interaction to avoid hogging down other tabs

▶ still major issue for many browsers ▶ Bug #890908 is on the way to be fixed in Firefox

https://bugzilla.mozilla.org/show_bug.cgi?id=890908

▶ But asynchronous GSSAPI flow would do wonders too!

slide-88
SLIDE 88

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 88

Any practical use of it?

slide-89
SLIDE 89

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 89

Single sign-on at home

Demo : http:

//talks.vda.li/2016/05/SambaXP/freeipa-ipsilon-owncloud-signon.webm

slide-90
SLIDE 90

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 90

What was that?

▶ I set up Ipsilon to authenticate against my FreeIPA server

I set up Owncloud instance and created a simple application to do login via Ipsilon SAML Successfully logged-in users get created in Owncloud if they belong to a certain group in FreeIPA No need to enter password if Kerberos credentials are available Credentials were entered only once

slide-91
SLIDE 91

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 91

What was that?

▶ I set up Ipsilon to authenticate against my FreeIPA server ▶ I set up Owncloud instance and created a simple application to do login via Ipsilon SAML

Successfully logged-in users get created in Owncloud if they belong to a certain group in FreeIPA No need to enter password if Kerberos credentials are available Credentials were entered only once

slide-92
SLIDE 92

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 92

What was that?

▶ I set up Ipsilon to authenticate against my FreeIPA server ▶ I set up Owncloud instance and created a simple application to do login via Ipsilon SAML ▶ Successfully logged-in users get created in Owncloud if they belong to a certain group in

FreeIPA No need to enter password if Kerberos credentials are available Credentials were entered only once

slide-93
SLIDE 93

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 93

What was that?

▶ I set up Ipsilon to authenticate against my FreeIPA server ▶ I set up Owncloud instance and created a simple application to do login via Ipsilon SAML ▶ Successfully logged-in users get created in Owncloud if they belong to a certain group in

FreeIPA

▶ No need to enter password if Kerberos credentials are available

Credentials were entered only once

slide-94
SLIDE 94

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 94

What was that?

▶ I set up Ipsilon to authenticate against my FreeIPA server ▶ I set up Owncloud instance and created a simple application to do login via Ipsilon SAML ▶ Successfully logged-in users get created in Owncloud if they belong to a certain group in

FreeIPA

▶ No need to enter password if Kerberos credentials are available ▶ Credentials were entered only once

slide-95
SLIDE 95

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 95

Better support for SAML in GNOME Online Accounts

GNOME Online Accounts in GNOME 3.20 supports single sign-on with a catch

▶ WebDAV protocol doesn’t really work well with mod_auth_mellon as SAML client ▶ Have to use separate Owncloud end-point for non-SAML logon

There is a plan to fix GNOME VFS to support SAML negotiation so that Nautilus would be able to re-negotiate when accessing WebDAV shares

slide-96
SLIDE 96

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 96

How enterprisey our home could become?

slide-97
SLIDE 97

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 97

Very very enterprisey

Demo : http://talks.vda.li/2016/05/SambaXP/

freeipa-ipsilon-trusted-domain-owncloud-signon.webm

slide-98
SLIDE 98

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 98

What is that?

▶ FreeIPA has a cross-forest trust to an Active Directory forest

Ipsilon is configured to accept all valid users provided by FreeIPA Active Directory users are valid ones, with fully qualified user names to differentiate them from IPA users Active Directory administrator signed into Owncloud as a normal user Credentials were entered only once

slide-99
SLIDE 99

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 99

What is that?

▶ FreeIPA has a cross-forest trust to an Active Directory forest ▶ Ipsilon is configured to accept all valid users provided by FreeIPA

Active Directory users are valid ones, with fully qualified user names to differentiate them from IPA users Active Directory administrator signed into Owncloud as a normal user Credentials were entered only once

slide-100
SLIDE 100

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 100

What is that?

▶ FreeIPA has a cross-forest trust to an Active Directory forest ▶ Ipsilon is configured to accept all valid users provided by FreeIPA ▶ Active Directory users are valid ones, with fully qualified user names to differentiate them

from IPA users Active Directory administrator signed into Owncloud as a normal user Credentials were entered only once

slide-101
SLIDE 101

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 101

What is that?

▶ FreeIPA has a cross-forest trust to an Active Directory forest ▶ Ipsilon is configured to accept all valid users provided by FreeIPA ▶ Active Directory users are valid ones, with fully qualified user names to differentiate them

from IPA users

▶ Active Directory administrator signed into Owncloud as a normal user

Credentials were entered only once

slide-102
SLIDE 102

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 102

What is that?

▶ FreeIPA has a cross-forest trust to an Active Directory forest ▶ Ipsilon is configured to accept all valid users provided by FreeIPA ▶ Active Directory users are valid ones, with fully qualified user names to differentiate them

from IPA users

▶ Active Directory administrator signed into Owncloud as a normal user ▶ Credentials were entered only once

slide-103
SLIDE 103

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 103

What benefits do we get by becoming enterprisey with free software?

  • 1. Control your own infrastructure
  • 2. Improve user experience by reducing number of password/logon interactions
  • 3. Profit?
slide-104
SLIDE 104

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 104

What benefits do we get by becoming enterprisey with free software?

  • 1. Control your own infrastructure
  • 2. Improve user experience by reducing number of password/logon interactions
  • 3. Profit?
slide-105
SLIDE 105

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 105

What benefits do we get by becoming enterprisey with free software?

  • 1. Control your own infrastructure
  • 2. Improve user experience by reducing number of password/logon interactions
  • 3. Profit?
slide-106
SLIDE 106

Enterprise desktop: improving client side in the age of Samba AD and FreeIPA 106

Questions?