External Identity and Authentication Providers For Apache HTTP Server



Similar documents
External and Federated Identities on the Web

Kerberos and Single Sign On with HTTP

Kerberos and Single Sign-On with HTTP

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

FreeIPA - Open Source Identity Management in Linux

U S E R D O C U M E N TA T I O N ( A L E P H I N O

Using Kerberos for Web Authentication. Wesley Craig University of Michigan

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

System Security Services Daemon

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

Building Open Source Identity Management with FreeIPA. Martin Kosek

Deploying RSA ClearTrust with the FirePass controller

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

GL550 - Enterprise Linux Security Administration

TIBCO Spotfire Platform IT Brief

Red Hat Identity Management

LinuxCon North America

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

Single Sign-on (SSO) technologies for the Domino Web Server

ENTERPRISE LINUX SECURITY ADMINISTRATION

Advancements in Linux Authentication and Authorisation using SSSD

ENTERPRISE LINUX SECURITY ADMINISTRATION

Perceptive Experience Single Sign-On Solutions

Identity Management based on FreeIPA

mod_auth_pubtkt a pragmatic Web Single Sign-On solution by Manuel Kasper, Monzoon Networks AG mkasper@monzoon.net

CAC AND KERBEROS FROM VISION TO REALITY

esoc SSA DC-I Part 1 - Single Sign-On and Access Management ICD

OpenSSO: Cross Domain Single Sign On

Web Access Management and Single Sign-On

Securing Splunk with Single Sign On & SAML

AA enabling a closed source legacy application

CA Performance Center

Integrating WebPCM Applications into Single Sign On (SSO) Tom Schaefer Better Software Solutions, Inc. UN 4023 V

Tenrox. Single Sign-On (SSO) Setup Guide. January, Tenrox. All rights reserved.

SAML-Based SSO Solution

SCAS: AN IMPROVED SINGLE SIGN-ON MODEL BASE ON CAS

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

Agenda. How to configure

Guide to Web Hosting in CIS. Contents. Information for website administrators. ITEE IT Support

Ensure that your environment meets the requirements. Provision the OpenAM server in Active Directory, then generate keytab files.

SAML single sign-on configuration overview

New Single Sign-on Options for IBM Lotus Notes & Domino IBM Corporation

SchoolBooking SSO Integration Guide

Single Sign-On for the UQ Web

1. Introduction. Authors. Abstract. Quang Vu DANG (IFI) Olivier BERGER (GET/INT) Christian BAC (GET/INT) Benoît HAMET (phpgroupware)

Security Issues in Web Programming. Robert M. Dondero, Ph.D. Princeton University

Enabling single sign-on for Cognos 8/10 with Active Directory

Getting Started with AD/LDAP SSO

Single Sign On. Configuration Checklist for Single Sign On CHAPTER

FreeIPA 3.3 Trust features

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

Google Apps Deployment Guide

WebNow Single Sign-On Solutions

RHEL Clients to AD Integrating RHEL clients to Active Directory

INTEGRATION GUIDE. IDENTIKEY Federation Server for Juniper SSL-VPN

Step- by- Step guide to Configure Single sign- on for HTTP requests using SPNEGO web authentication

Using Kerberos tickets for true Single Sign On

Shibboleth Identity Provider (IdP) Sebastian Rieger

INUVIKA TECHNICAL GUIDE

Centralized Oracle Database Authentication and Authorization in a Directory

Connecting Web and Kerberos Single Sign On

FERMILAB CENTRAL WEB HOSTING SINGLE SIGN ON (SSO) ON CWS LINUX WITH SAML AND MOD_AUTH_MELLON

304 - APM TECHNOLOGY SPECIALIST

HTTP connections can use transport-layer security (SSL or its successor, TLS) to provide data integrity

CentraSite SSO with Trusted Reverse Proxy

IceWarp Server - SSO (Single Sign-On)

How To Use Netscaler As An Afs Proxy

CA SiteMinder. Implementation Guide. r12.0 SP2

Online Services Booking. Booking Appointments & Purchasing Gifts

Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious

TIBCO Spotfire Web Player 6.0. Installation and Configuration Manual

Connected Data. Connected Data requirements for SSO

Xerox DocuShare Security Features. Security White Paper

SAP NetWeaver AS Java

Integrating Linux systems with Active Directory

Single Sign On for ShareFile with NetScaler. Deployment Guide

FreeIPA Cross Forest Trusts

The saga of WebFTS and Federated Identity

Interwise Connect. Working with Reverse Proxy Version 7.x

Architecture of Enterprise Applications III Single Sign-On

From centralized to single sign on

Fedora Directory Server FUDCon III London, 2005

Leverage Active Directory with Kerberos to Eliminate HTTP Password

AAI for Mobile Apps How mobile Apps can use SAML Authentication and Attributes. Lukas Hämmerle

Identity Management in Liferay Overview and Best Practices. Liferay Portal 6.0 EE

GENERAL OVERVIEW OF VARIOUS SSO SYSTEMS: ACTIVE DIRECTORY, GOOGLE & FACEBOOK

SharePoint User Management

Single Sign On. SSO & ID Management for Web and Mobile Applications

Authentication in a Heterogeneous Environment

EURECOM VPN SSL for students User s guide

Getting Started with Single Sign-On

SUSE Linux Enterprise Server in an Active Directory Domain

Password Power 8 Plug-In for Lotus Domino Single Sign-On via Kerberos

Identity Federation: Bridging the Identity Gap. Michael Koyfman, Senior Global Security Solutions Architect

Step-by-Step guide for SSO from MS Sharepoint 2010 to SAP EP 7.0x

Integrating IBM Cognos 8 BI with 3rd Party Auhtentication Proxies

SAML Authentication Quick Start Guide

Transcription:

External Identity and Authentication Providers For Apache HTTP Server Jan Pazdziora Principal Software Engineer Identity Management Engineering, Red Hat 17 th November 2014

Basic Authentication The only authentication option in 1996 when HTTP 1.0 came out. To remind you what it looked (looks) like: Status code 401 Unauthorized. It means either no authentication was attempted; the [login, password] pair supplied with the HTTP request in the Authorization header was wrong. Basic Authentication Jan Pazdziora 2 / 21

Basic Authentication: Pros Access protection for static content as well. Completely handled via HTTP server configuration. No logic needed in the content (in CGI). User identifier can be consumed in CGI scripts via REMOTE_USER environment variable. Similar mechanisms used for other execution frameworks. Or dedicated method calls (request.getremoteuser()). Various authentication providers emerged, including databases and LDAP lookups. Basic Authentication Jan Pazdziora 3 / 21

Basic Authentication: Cons One 401 status for both "please enter login and password" and "you probably mistyped password" situations. Suboptimal UI in browsers: one popup window type, ending loop with Cancel, no logout (forget credentials) functionality. Optional authentication hard to achieve. Nothing beyond [login, password]. Digest introduced by HTTP 1.1 did not address either concern. Basic Authentication Jan Pazdziora 4 / 21

Authentication in applications Basic Authentication was used heavily. But developers and users wanted more. Especially better control and user experience. Authentication in applications Jan Pazdziora 5 / 21

Cookie-based sessions Codified ex-post, based on real-life implementations in browsers. Originally intended for small customizations and user preferences. Cornerstone of authentication in today's web applications. Applications handle logon form POST submissions or other authentication process, including anonymous users. Applications create sessions internally, HTTP response carries Set- Cookie header with session identification. Cookie sent by browser with each subsequent HTTP request in the Cookie header. The authentication decision has moved to applications completely. Applications manage their own (DB) schemas of users, groups, roles. Who remembers REMOTE_USER? Who needs REMOTE_USER? Authentication in applications Jan Pazdziora 6 / 21

GSSAPI/SPNEGO/Kerberos/Negotiate Server's 401 HTTP response contains WWW-Authenticate: Negotiate. Browser tries to get Kerberos service ticket and use the GSSAPI data in Authorization header. No prompting. (But no confirmation either.) Effectively, single-sign-on. In Apache supported by mod_auth_kerb, outside of application. Application might not have access to the keytab needed to verify the GSSAPI data. Application gets the authentication result. REMOTE_USER re-emerges. http://www.ietf.org/rfc/rfc4178.txt http://www.ietf.org/rfc/rfc4559.txt Cookies still useful you want to avoid negotiate on each request. Authentication in applications Jan Pazdziora 7 / 21

Other mechanisms Other authentication mechanisms might need to use credentials and storage that HTTP server (Apache) has access to but the application does not. SSL client authentication. Security Assertion Markup Language (SAML). There can be additional checks about account's validity (PAM). They all might or might not be needed (supported, enabled, configured) in a particular deployment of each web application. Is it time to move the authentication decision back in front of the web application? Bring back REMOTE_USER? Authentication in applications Jan Pazdziora 8 / 21

Overview of existing modules Authentication Method Pure Application Level Kerberos SSO (ticket) SAML-Based Certificate-Based Apache Authentication Module None mod_auth_kerb mod_auth_mellon mod_nss mod_ssl Module overview Jan Pazdziora 9 / 21

New life for GSSAPI/Kerberos Module mod_auth_gssapi by Simo Sorce. Replacement of mod_auth_kerb using only GSSAPI calls. Original mod_auth_kerb configuration: LoadModule auth_kerb_module modules/mod_auth_kerb.so AuthType Kerberos KrbMethodNegotiate On KrbMethodK5Passwd Off KrbAuthRealms EXAMPLE.COM Krb5KeyTab /etc/http.keytab With mod_auth_gssapi: LoadModule auth_gssapi_module modules/mod_auth_gssapi.so AuthType GSSAPI GssapiCredStore keytab:/etc/http.keytab Recent MIT krb5 and Apache HTTP server 2.4 needed. GSSAPI Jan Pazdziora 10 / 21

System Security Services Daemon Authentication and identity services on operating system level. Host-based access control (HBAC) when used with IPA server. Individual users or user groups Hosts or host groups Mix them into rules Services (ssh, ftp, sudo,...) sssd can consult IPA to check access IPA is centralized identity, authentication, and authorization provider. Other access control schemes possible, depending on the identity source against which sssd is configured. Module pam_sss.so makes sssd services available via PAM. sssd Jan Pazdziora 11 / 21

PAM for Web applications Apache module mod_authnz_pam. For 2.2 and 2.4. PAM-based authorization of users authenticated by other modules. Replace requires valid-user with requires pam-account <PAM-service-name> Configure /etc/pam.d/<pam-service-name>. With pam_sss.so and sssd against IPA, HBAC check will be done. HBAC service name has to match the PAM service name. Use any service name you want: crm-prod, wiki-test, intranet,... Especially useful for SSO that should not reach applications. Use as Basic Authentication provider also possible: AuthBasicProvider PAM AuthPAMService tlwiki PAM for Web applications Jan Pazdziora 12 / 21

PAM for applications' logon forms Provided by Apache server: mod_intercept_form_submit. Logon form submission Module intercepts the POST HTTP request Module PAM auth is run with [login, password] pair (when found) Authentication passes Authentication fails Application REMOTE_USER is set to login Consumes REMOTE_USER EXTERNAL_AUTH_ERROR is set to PAM message Gets chance to authenticate internally PAM for Web applications Jan Pazdziora 13 / 21

PAM for apps' logon forms (cont'd) No 401 status ever. Uses mod_authnz_pam internally. The same look of the logon screen, authenticating against central identity provider. <Location /app/login> InterceptFormLogin user_fld InterceptFormPassword passwd_fld InterceptFormPAMService <PAM-service-name> </Location> PAM for Web applications Jan Pazdziora 14 / 21

New modules Authentication Method Application GSSAPI/Kerberos Apache Modules Authentication Access Check None mod_auth_kerb mod_auth_gssapi SAML Certificate mod_auth_mellon mod_nss mod_ssl mod_authnz_pam Form-Based mod_intercept_form_submit Module overview Jan Pazdziora 15 / 21

Additional user information Web applications nowadays need more than just login name. Additional attributes for nice user experience, as well as authorization. Email address, full name, phone number,... Group membership. For centrally-managed users, these should come from the central identity provider. Especially when applications autocreate user records. Module mod_lookup_identity uses D-Bus interface of SSSD to retrieve additional data about authenticated users. User attributes and groups Jan Pazdziora 16 / 21

Additional user information (cont'd) Proposing other environment variables beyond REMOTE_USER: REMOTE_USER_EMAIL, REMOTE_USER_FULLNAME,... REMOTE_USER_GROUPS, REMOTE_USER_GROUP_N, REMOTE_USER_GROUP_1,... LookupUserAttr mail REMOTE_USER_EMAIL " " LookupUserAttr givenname REMOTE_USER_FIRSTNAME LookupUserAttr sn REMOTE_USER_LASTNAME LookupUserGroupsIter REMOTE_USER_GROUP LookupOutputGroups REMOTE_USER_GROUPS : User attributes and groups Jan Pazdziora 17 / 21

Module overview Apache Modules Authn Method Authentication Access Check Extra User Info Application None GSSAPI mod_auth_kerb mod_auth_gssapi SAML Certificate mod_auth_mellon mod_nss mod_ssl mod_authnz_pam mod_lookup_identity Form mod_intercept_form_submit User attributes and groups Jan Pazdziora 18 / 21

External authentication in applications Web applications should re-learn to accept REMOTE_USER. Some changes to support the external authentication and identity are typically needed in application code. The reward is much richer matrix of possible deployments. Use of the same HBAC mechanism that enterprises use for OS. Already implemented: Spacewalk Foreman ManageIQ Django being investigated. Consuming external authentication Jan Pazdziora 19 / 21

Conclusion PAM for access to central authentication provider. New variables for additional REMOTE_USER_* attributes. Can we agree on variable names? Less work for application developers. By no means should applications drop their existing functionality that served them well, this is merely an additional possibility. Your favorite application or framework not supporting REMOTE_USER_*? While we might not be able to add the feature ourselves, we will be happy to help people. Explore the modules, let us know what you think. Conclusion Jan Pazdziora 20 / 21

References www.freeipa.org/page/web_app_authentication www.freeipa.org/page/ Environment_Variables#Proposed_Additional_Variables github.com/modauthgssapi/mod_auth_gssapi www.adelton.com/apache/mod_authnz_pam/ www.adelton.com/apache/mod_intercept_form_submit/ www.adelton.com/apache/mod_lookup_identity/ <freeipa-users@redhat.com> Jan Pazdziora <jpazdziora@redhat.com> Conclusion Jan Pazdziora 21 / 21