SlideShare a Scribd company logo
1 of 47
Fast and Free SSO: A Survey
of Open-Source Solutions to
Single Sign-on
Craig Dickson, Software Engineering Manager
Naveen Nallannagari, Senior Consultant

Behr Process Corporation
www.behr.com
TS-4604

                           2007 JavaOneSM Conference | Session TS-4604 |
Goals of This Presentation
A Survey of Open-Source Solutions to Single Sign-on



    Present a sample of the different open
    source based SSO solutions, critically
    compare and contrast them and provide
    tips on how to choose the right one to fit
    your needs.



                      2007 JavaOneSM Conference | Session TS-4604 |   2
Agenda

What is SSO? (briefly)
Survey of the main Open Source players
Head-to-Head Comparisons
Summary
Q&A




                2007 JavaOneSM Conference | Session TS-4604 |   3
Agenda

What is SSO?
Survey of the main Open Source players
Head-to-Head Comparisons
Summary
Q&A




                2007 JavaOneSM Conference | Session TS-4604 |   4
What is SSO?
It is definitely not …



“Every Single time you want to do something, you
  are going to have to Sign-On!”
               - Your Sys Admin




                         2007 JavaOneSM Conference | Session TS-4604 |   5
What is SSO?
This is more like it …


• Authenticate only once and access multiple
  resources
• Improved user productivity
• Improved developer productivity
• Ease of administration




                         2007 JavaOneSM Conference | Session TS-4604 |   6
What is SSO?
But what about the downsides …


• Potentially creates a single point of attack
   • Malicious types only need 1 set of credentials and they
     can do a lot of damage
• Can be very difficult to retrofit existing
  applications and infrastructure with an SSO
  solution




                       2007 JavaOneSM Conference | Session TS-4604 |   7
Agenda

What is SSO?
Survey of the main Open Source players
Head-to-Head Comparisons
Summary
Q&A




               2007 JavaOneSM Conference | Session TS-4604 |   8
OpenSSO
Open Web SSO
• Mission of OpenSSO:
 To provide an extensible implementation of identity
 services infrastructure that will facilitate Single Sign-On for
 web applications.
• From the java.net community
• Focused on Web based Single Sign-On
  • a common starting point for many identity management
    projects




                       2007 JavaOneSM Conference | Session TS-4604 |   9
OpenSSO
Continued …

• Sun will make the following Sun Java™ System Access
  Manager modules freely available as part of OpenSSO:
   • Authentication
   • Single-domain SSO
   • Web and Java 2 Platform, Enterprise Edition
     (J2EE™ platform) agents
   • Session Management
   • Policy
   • Console
   • Administration tools
   • Federation
   • Policy agents


                          2007 JavaOneSM Conference | Session TS-4604 |   10
OpenSSO
OpenSSO Architecture




                   2007 JavaOneSM Conference | Session TS-4604 |   11
OpenSSO
OpenSSO Configuration

• Open SSO is deployed as only one application
   • opensso.war


• After installation, configuration (name of host,
  protocol etc) can be done at:
  http://localhost:8080/opensso/configurator.jsp


• Realms have to be created


                     2007 JavaOneSM Conference | Session TS-4604 |   12
OpenSSO
OpenSSO Configuration
• Installation of Agent (e.g. Tomcat)
    • agentadmin - install
• Modify web.xml
    <security-constraint>
       <web-resource-collection>
           <web-resource-name>Protected Resources</web-resource-name>
          <url-pattern>/secure/*</url-pattern>
       </web-resource-collection>
       <auth-constraint>
           <role-name>id=teste, ou=role, dc=opensso, dc=java, dc=net</role-name>
       </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/authentication/login.html</form-login-page>
            <form-error-page>/authentication/accessdenied.html</form-error-page>
        </form-login-config>
    </login-config>
    <security-roll id="test">
        <role-name>id=test, ou=role, dc=opensso, dc=java, dc=net</role-name>
    </security-role>



                                 2007 JavaOneSM Conference | Session TS-4604 |   13
JOSSO
Java Open Single Sign-On

• Based on Java Authentication and Authorization Service
  (JAAS)
• Uses web services implemented with Apache Axis as the
  distributed infrastructure
• Uses Apache Struts and JavaServer Pages™ technology
  (JSP™ page) technology standards
• Comes with a Reverse Proxy component that can be used
  to create n-tier Single Sign-On configurations
   • Allows n-tier configurations using multiple strategies, including
     storing user information and credentials in LDAP, Databases and
     XML files

                          2007 JavaOneSM Conference | Session TS-4604 |   14
JOSSO
Continued …


• Implement and combine multiple authentication
  schemes with credential stores
• Credential Stores are repositories for user
  credentials, to be used during the user
  authentication transaction
• Can be configure to use (for example) certificate-
  based authentication scheme, obtaining user
  X.509 certificates from a database using Java
  DataBase Connectivity (JDBC™) software

                    2007 JavaOneSM Conference | Session TS-4604 |   15
JOSSO
JOSSO Architecture




                     2007 JavaOneSM Conference | Session TS-4604 |   16
JOSSO
JOSSO Configuration


• Integration of JOSSO with specific application
  Server (Tomcat or JBoss)

• Integrating Java Web Application with JOSSO




                      2007 JavaOneSM Conference | Session TS-4604 |   17
JOSSO
JOSSO Configuration - Integration with Tomcat or JBoss

• The Single Sign–on Gateway Configuration
   • Configuration file: josso-gateway-config.xml
       ●
            Authenticator
       ●    Identity Manager
       ●    Session Manager
       ●    Audit Manager
       ●    Event Manager

• Single Sign On Agent Configuration
   • To check that a previously user logged in is authorized to access
     a web context
   • Configuration file to declare the concrete configuration files:
       ●   $CATALINA_HOME/bin/josso-config.xml


                           2007 JavaOneSM Conference | Session TS-4604 |   18
JOSSO
JOSSO Configuration - Integration with Tomcat or JBoss

• Protect a Web Application
   • Add to server.xml file
    <Host>
        ...
        <Valve className="org.josso.tc50.agent.SSOAgentValve" debug="1"/>
        ...
    </Host>


   • For each request to the /partner Web Context, the Single Sign-
     On Agent will intercept it, assert the Single Sign-On session and
     obtain the user data from the Single Sign-On Gateway.



                              2007 JavaOneSM Conference | Session TS-4604 |   19
JOSSO
JOSSO Configuration - Integration with Tomcat or JBoss

• Add a JAAS Realm
   • In order to integrate the Single Sign-On Agent with the Single
     Sign-On Gateway a JAAS Tomcat Realm entry must be added to
     the server.xml.
• Configure a JAAS Login Module
   • jaas.conf file in the $CATALINA_HOME/conf directory with the
     following content:
   josso {
      org.josso.tc50.agent.jaas.SSOGatewayLoginModule
      required debug=true;
   };
   • The Login Module validates the session and obtains the
     corresponding user and role information by invoking the gateway
     identity management webservices.


                          2007 JavaOneSM Conference | Session TS-4604 |   20
JOSSO
JOSSO Configuration - Integration with Tomcat or JBoss
• Configure the Agent
<?xml version="1.0" encoding="ISO-8859-1" ?>
<agent>
    <class>org.josso.tc50.agent.CatalinaSSOAgent</class>
    <gatewayLoginUrl>http://localhost:8080/josso/signon/login.do</gatewayLo
       ginUrl>
    <gatewayLogoutUrl>http://localhost:8080/josso/signon/logout.do</gateway
       LogoutUrl>
    <sessionAccessMinInterval>1000</sessionAccessMinInterval>
    <service-locator>
         <class>org.josso.gateway.WebserviceGatewayServiceLocator</class>
         <endpoint>localhost:8080</endpoint>
    </service-locator>
    <partner-apps>
         <partner-app>
                  <context>/partner</context>
         </partner-app>
    </partner-apps>
</agent>



                            2007 JavaOneSM Conference | Session TS-4604 |   21
JOSSO
JOSSO Configuration – Integration Java application with JOSSO

• Web application Security Constraints

• Configured using three elements in web.xml
  • <login-config> element
   •   <security-constraint> element
   •   <security-role> element




                        2007 JavaOneSM Conference | Session TS-4604 |   22
JOSSO
JOSSO Configuration – Integration Java application with JOSSO

• Integrating Enterprise JavaBeans™ (EJB™) with JOSSO
   •   The security constraints should be declared in the ejb-jar.xml file of the partner
       components based on the Enterprise JavaBeans specification (EJB components)
   •   For the user identity to be propagated to the EJB components tier, the jboss.xml
       file must set java:/jaas/josso as the security domain in the following way:

   <?xml version="1.0" encoding="UTF-8"?>
   <jboss>
      <security-domain>java:/jaas/josso</security-domain>
      <enterprise-beans>
         <session>
            <ejb-name>PartnerComponentEJB</ejb-name>
            <jndi-name>josso/samples/PartnerComponentEJB</jndi-name>
         </session>
      </enterprise-beans>
   </jboss>



                                 2007 JavaOneSM Conference | Session TS-4604 |   23
JA-SIG CAS
Central Authentication Service


• An open and well-documented protocol
• A library of clients for Java technology, .NET,
  PHP, Perl, Apache, uPortal and others
• Integrates with uPortal, BlueSocket, TikiWiki,
  Mule, Liferay, Moodle and others
• Community documentation and implementation
  support
• An extensive community of adopters

                       2007 JavaOneSM Conference | Session TS-4604 |   24
JA-SIG CAS
Continued …

• The players involved
   •   CAS (The Central Authentication Service)
   •   Service
   •   Proxy
   •   Target (or back-end service)
• CAS authentication make use of tickets, or opaque strings
  that prove some assertion to CAS.
• CAS 2.0 uses the following tickets
   •   Ticket-granting cookie (TGC)
   •   Service ticket (ST)
   •   Proxy-granting ticket (PGT)
   •   Proxy-granting ticket IOU (PGTIOU)
   •   Proxy ticket (PT)

                           2007 JavaOneSM Conference | Session TS-4604 |   25
JA-SIG CAS
CAS Architecture




                   2007 JavaOneSM Conference | Session TS-4604 |   26
JA-SIG CAS
CAS Configuration


• Server Deployment

• Client Configuration




                    2007 JavaOneSM Conference | Session TS-4604 |   27
JA-SIG CAS
CAS Configuration- Server Deployment


• Based on authentication scheme used
   • password based
   • certificate based


• Need to implement Authentication Handler
  interface




                         2007 JavaOneSM Conference | Session TS-4604 |   28
JA-SIG CAS
CAS Configuration- Server Deployment

• Example : Password based
public class UsernameLengthAuthnHandler implements AuthenticationHandler {

    public boolean authenticate(Credentials credentials) throws
            AuthenticationException {
        UsernamePasswordCredentials upCredentials =
            (UsernamePasswordCredentials) credentials;
        String username = upCredentials.getUsername();
        String password = upCredentials.getPassword();
        String correctPassword = Integer.toString(username.length());
        return correctPassword.equals(password);
    }

    public boolean supports(Credentials credentials) {
        // we support credentials that bear usernames and passwords
        return credentials instanceof UsernamePasswordCredentials;
    }
}
                             2007 JavaOneSM Conference | Session TS-4604 |   29
JA-SIG CAS
CAS Configuration- Server Deployment


• Customizing views
   • The existing views can be changed (i.e. JSP pages to
     match the look and feel of the applications)

• Using LDAP for authentication
   • Install the CAS LDAP authentication handler .jar file -
     cas-server-ldap-{SOMETHING}.jar
   • Include an LDAP library ("LdapTemplate" or "Spring
     LDAP") intoCAS server


                       2007 JavaOneSM Conference | Session TS-4604 |   30
JA-SIG CAS
CAS Configuration- Server Deployment


• Using X.509Certificates
   • CAS provides customizations to the CAS webflow to retrieve
     certificates from the HttpServletRequest, package the certificates
     into Credentials CAS can understand and pass them into the
     CentralAuthenticationService service.
   • Provides an authentication handler to determine the validity of a
     certificate and if the credentials are authentic or not.
   • Provides sample resolvers to translate the credentials into a
     principal that client applications will understand.




                           2007 JavaOneSM Conference | Session TS-4604 |   31
JA-SIG CAS
CAS Configuration- Client


• Various Clients
   •   Java technology client
   •   JSP software client
   •   Uportal client
   •   Acegi as CAS client
   •   Perl, ASP.NET client etc.




                        2007 JavaOneSM Conference | Session TS-4604 |   32
JA-SIG CAS
CAS Configuration- Client
• Java technology Client Configuration
• CASFilter configuration - Example
  <web-app>
  ...
      <filter>
          <filter-name>CAS Filter</filter-name>
          <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
          <init-param>
               <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
               <param-value>https://secure.its.yale.edu/cas/login</param-value>
          </init-param>
          <init-param>
               <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
               <param-value>https://secure.its.yale.edu/cas/serviceValidate</param-value>
          </init-param>
          <init-param>
               <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
               <param-value>your server name and port (e.g., www.yale.edu:8080)</param-
  value>
          </init-param>
      </filter>
      <filter-mapping>
          <filter-name>CAS Filter</filter-name>
          <url-pattern>/requires-cas-authetication/*</url-pattern>
      </filter-mapping>
      ...
  </web-app>




                                 2007 JavaOneSM Conference | Session TS-4604 |   33
Agenda

What is SSO?
Survey of the main Open Source players
Head-to-Head Comparisons
Summary
Q&A




                2007 JavaOneSM Conference | Session TS-4604 |   34
Head-to-Head Comparison
Retrofitting an existing application

• JOSSO
   • No support for certain application servers
   • Does provide a plugin infrastructure to facilitate
     integration with other containers; you can base your
     own plugin on existing samples
• OpenSSO
   • can fit into a multitude of application servers because
     of the availability of agents
   • These agents include Apache, Sun Java System Web
     Server, Microsoft IIS, Domino


                         2007 JavaOneSM Conference | Session TS-4604 |   35
Head-to-Head Comparison
Integration of non-Java applications


• JOSSO
   • Uses web services for asserting user identity via SOAP
   • Allows the integration of non-Java applications (e.g.
     PHP, .NET etc.)
• CAS
   • There are many client libraries to assist in “CASifying”
     applications
   • Examples include AuthCAS for Apache, a uPortal
     client, a Java technology Client, a PHP client and a
     Perl client

                       2007 JavaOneSM Conference | Session TS-4604 |   36
Head-to-Head Comparison
Customizability

• JOSSO
   • If your application server is not supported, need to customize by
     writing plugins
• CAS
   •   Basic implementation includes only HTTPS
   •   Can be easily customized to be HTTP enabled
   •   Look and feel of login pages can be changed
   •   Comes with pluggable authenticators to validate against LDAP
       etc.
• OpenSSO
   • Customizations can be done by writing Authentication modules
   • Authentication User Interface JSP pages can be customized by
     Realm, Locale, Client type or any Service of the SSO system


                           2007 JavaOneSM Conference | Session TS-4604 |   37
Head-to-Head Comparison
Ease of Deployment

• CAS
   • Involves deploying CAS Server (downloadable as a pre-built WAR
     file or can be customized) and a CAS client with each application
• JOSSO
   • Involves Configuration of:
       ●   Single Sign-On Gateway
       ●   the Authenticator
       ●   the Identity Manager
       ●   the Session Manager
• OpenSSO
   • Deployable as a WAR file


                            2007 JavaOneSM Conference | Session TS-4604 |   38
Head-to-Head Comparison
Authentication for non-browser-based clients


• CAS
   • Has Proxy Authentication support
• OpenSSO
   • Does not have out-of-the-box support for CAS-like
     proxy authentication, however there are authentication
     APIs available to build one
• JOSSO
   • Comes with a Reverse Proxy component that can be
     used to create n-tier Single Sign-On configurations

                       2007 JavaOneSM Conference | Session TS-4604 |   39
Head-to-Head Comparison
Support for web service security


• JASSO
   • Can be used to secure web services but is limited due
     to the level of application server support
• CAS
   • Supports web service security by protecting URLs
• OpenSSO
   • Has started work related to web services security



                       2007 JavaOneSM Conference | Session TS-4604 |   40
Head-to-Head Comparison
Community support


• As all three are Open Source solutions, the
  support is in the form of project websites,
  community generated documentation, user
  forums and mailing lists

• CAS, OpenSSO and JOSSO all have well
  managed user groups



                    2007 JavaOneSM Conference | Session TS-4604 |   41
Agenda

What is SSO?
Survey of the main Open Source players
Head-to-Head Comparisons
Summary
Q&A




                2007 JavaOneSM Conference | Session TS-4604 |   42
How to Choose
Which horse for which course …
• There are multiple factors to consider when deciding on the SSO
  solution you need
• All three are Open Source solutions, so licensing issues are removed
• OpenSSO is a good choice if
   •   Using XML based file formats and language independent APIs is important
   •   Clustered environment support is required
   •   SSL mutual authentication is required
   •   You want to leverage all of the features of the Sun Java System Access Manager
• CAS is a good choice if
   •   Your using a Spring based infrastructure with acegi
   •   Your using simple DB based credential management
• JOSSO is a good choice if
   •   It supports your particular application server, otherwise additional development
       effort will be required



                                  2007 JavaOneSM Conference | Session TS-4604 |   43
Alternative Open Source Solutions
Some other horses to consider


• Atlassian Seraph
   • http://opensource.atlassian.com/seraph
• Shibboleth
   • http://shibboleth.internet2.edu
• CoSign
   • http://www.umich.edu/~umweb/software/cosign
• Enterprise Sign-On Engine
   • http://esoeproject.org/


                       2007 JavaOneSM Conference | Session TS-4604 |   44
For More Information
• OpenSSO Home Page
   • https://opensso.dev.java.net/
• JOSSO Home Page
   • http://www.josso.org/
• CAS Home Page
   • http://www.ja-sig.org/products/cas/
• Wikipedia
   • http://en.wikipedia.org/wiki/Single_sign-on
• SAML
   • http://www.oasis-open.org/committees/tc_home.php?
     wg_abbrev=security
• Acegi
   • http://www.acegisecurity.org/


                             2007 JavaOneSM Conference | Session TS-4604 |   45
Agenda

What is SSO?
Survey of the main Open Source players
Head-to-Head Comparisons
Summary
Q&A




                2007 JavaOneSM Conference | Session TS-4604 |   46
Q&A
Craig Dickson – cdickson@behr.com
Naveen Nallannagari – nnallannagari@behr.com




                        2007 JavaOneSM Conference | Session TS-4604 |   47

More Related Content

What's hot

Jasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten MinutesJasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten MinutesAndrew Petro
 
SSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy ManagementSSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy ManagementManish Harsh
 
Single sign on (SSO) How does your company apply?
Single sign on (SSO) How does your company apply?Single sign on (SSO) How does your company apply?
Single sign on (SSO) How does your company apply?Đỗ Duy Trung
 
Presentation sso design_security
Presentation sso design_securityPresentation sso design_security
Presentation sso design_securityMarco Morana
 
Web Single sign on system
Web Single sign on systemWeb Single sign on system
Web Single sign on systemSwati Sinha
 
SSO Strategy Implementation Considerations
SSO Strategy Implementation ConsiderationsSSO Strategy Implementation Considerations
SSO Strategy Implementation ConsiderationsJohn Bauer
 
SAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 OverviewSAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 OverviewSAP Technology
 
Single sign on - benefits, challenges and case study : iFour consultancy
Single sign on - benefits, challenges and case study :  iFour consultancySingle sign on - benefits, challenges and case study :  iFour consultancy
Single sign on - benefits, challenges and case study : iFour consultancyDevam Shah
 
Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6
Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6
Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6Kenneth Peeples
 
Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?Anil Saldanha
 
Alfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAMLAlfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAMLJ V
 
Java EE Application Security With PicketLink
Java EE Application Security With PicketLinkJava EE Application Security With PicketLink
Java EE Application Security With PicketLinkpigorcraveiro
 
Single Sign On - Case Study
Single Sign On - Case StudySingle Sign On - Case Study
Single Sign On - Case StudyEbizon
 
How to deploy SharePoint 2010 to external users?
How to deploy SharePoint 2010 to external users?How to deploy SharePoint 2010 to external users?
How to deploy SharePoint 2010 to external users?rlsoft
 
Security in java ee platform: what is included, what is missing
Security in java ee platform: what is included, what is missingSecurity in java ee platform: what is included, what is missing
Security in java ee platform: what is included, what is missingMasoud Kalali
 

What's hot (20)

Jasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten MinutesJasig Central Authentication Service in Ten Minutes
Jasig Central Authentication Service in Ten Minutes
 
SSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy ManagementSSO IN/With Drupal and Identitiy Management
SSO IN/With Drupal and Identitiy Management
 
Single Sign On - The Basics
Single Sign On - The BasicsSingle Sign On - The Basics
Single Sign On - The Basics
 
Single sign on (SSO) How does your company apply?
Single sign on (SSO) How does your company apply?Single sign on (SSO) How does your company apply?
Single sign on (SSO) How does your company apply?
 
Presentation sso design_security
Presentation sso design_securityPresentation sso design_security
Presentation sso design_security
 
Web Single sign on system
Web Single sign on systemWeb Single sign on system
Web Single sign on system
 
SSO Strategy Implementation Considerations
SSO Strategy Implementation ConsiderationsSSO Strategy Implementation Considerations
SSO Strategy Implementation Considerations
 
SAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 OverviewSAP Single Sign-On 2.0 Overview
SAP Single Sign-On 2.0 Overview
 
Single sign on - benefits, challenges and case study : iFour consultancy
Single sign on - benefits, challenges and case study :  iFour consultancySingle sign on - benefits, challenges and case study :  iFour consultancy
Single sign on - benefits, challenges and case study : iFour consultancy
 
Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6
Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6
Peeples authentication authorization_services_with_saml_xacml_with_jboss_eap6
 
Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?Saml vs Oauth : Which one should I use?
Saml vs Oauth : Which one should I use?
 
Alfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAMLAlfresco: Implementing secure single sign on (SSO) with OpenSAML
Alfresco: Implementing secure single sign on (SSO) with OpenSAML
 
Java EE Application Security With PicketLink
Java EE Application Security With PicketLinkJava EE Application Security With PicketLink
Java EE Application Security With PicketLink
 
Single sign on
Single sign onSingle sign on
Single sign on
 
Single Sign On 101
Single Sign On 101Single Sign On 101
Single Sign On 101
 
IdP, SAML, OAuth
IdP, SAML, OAuthIdP, SAML, OAuth
IdP, SAML, OAuth
 
Single Sign On - Case Study
Single Sign On - Case StudySingle Sign On - Case Study
Single Sign On - Case Study
 
How to deploy SharePoint 2010 to external users?
How to deploy SharePoint 2010 to external users?How to deploy SharePoint 2010 to external users?
How to deploy SharePoint 2010 to external users?
 
Security in java ee platform: what is included, what is missing
Security in java ee platform: what is included, what is missingSecurity in java ee platform: what is included, what is missing
Security in java ee platform: what is included, what is missing
 
SSO introduction
SSO introductionSSO introduction
SSO introduction
 

Viewers also liked

OpenLDAP - Installation and Configuration
OpenLDAP - Installation and ConfigurationOpenLDAP - Installation and Configuration
OpenLDAP - Installation and ConfigurationWildan Maulana
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Ivo Jansch
 
WSO2 Identity Server - Product Overview
WSO2 Identity Server - Product OverviewWSO2 Identity Server - Product Overview
WSO2 Identity Server - Product OverviewWSO2
 
Upgrading to cas 4.0 at oakland university
Upgrading to cas 4.0 at oakland universityUpgrading to cas 4.0 at oakland university
Upgrading to cas 4.0 at oakland universitybpowell29a
 
WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0
WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0
WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0WSO2
 
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 serverLudovic A
 

Viewers also liked (9)

ITIL V3 Overview
ITIL V3 OverviewITIL V3 Overview
ITIL V3 Overview
 
Single Sign-On Best Practices
Single Sign-On Best PracticesSingle Sign-On Best Practices
Single Sign-On Best Practices
 
OpenLDAP - Installation and Configuration
OpenLDAP - Installation and ConfigurationOpenLDAP - Installation and Configuration
OpenLDAP - Installation and Configuration
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)
 
WSO2 Identity Server - Product Overview
WSO2 Identity Server - Product OverviewWSO2 Identity Server - Product Overview
WSO2 Identity Server - Product Overview
 
Upgrading to cas 4.0 at oakland university
Upgrading to cas 4.0 at oakland universityUpgrading to cas 4.0 at oakland university
Upgrading to cas 4.0 at oakland university
 
WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0
WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0
WSO2 Product Release Webinar: WSO2 Identity Server 5.2.0
 
Sso walk-through
Sso walk-throughSso walk-through
Sso walk-through
 
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
"Esup CAS Packaging" : Deploy and customize easily a CAS4 server
 

Similar to Fast and Free SSO: A Survey of Open-Source Solutions to Single Sign-on

ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONSADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONSelliando dias
 
Breaking SAP portal (HackerHalted)
Breaking SAP portal (HackerHalted)Breaking SAP portal (HackerHalted)
Breaking SAP portal (HackerHalted)ERPScan
 
ASPNET Roadmap
ASPNET RoadmapASPNET Roadmap
ASPNET Roadmapukdpe
 
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.Dimitris Andreadis
 
Lifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 ProductsLifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 ProductsWSO2
 
JBoss AS7 Webservices
JBoss AS7 WebservicesJBoss AS7 Webservices
JBoss AS7 WebservicesJBug Italy
 
JBoss AS7 web services
JBoss AS7 web servicesJBoss AS7 web services
JBoss AS7 web servicesalepalin
 
Java ee 8 + security overview
Java ee 8 + security overviewJava ee 8 + security overview
Java ee 8 + security overviewRudy De Busscher
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyMohamed Taman
 
WebLogic authentication debugging
WebLogic authentication debuggingWebLogic authentication debugging
WebLogic authentication debuggingMaarten Smeets
 
Open Source Identity Integration with OpenSSO
Open Source Identity Integration with OpenSSOOpen Source Identity Integration with OpenSSO
Open Source Identity Integration with OpenSSOelliando dias
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1WSO2
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementSharkrit JOBBO
 
As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012alepalin
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowSpiffy
 
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DECWEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DECncodeit123
 
Introduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS ProjectIntroduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS ProjectMichael J Geiser
 
ASP.Net Presentation Part3
ASP.Net Presentation Part3ASP.Net Presentation Part3
ASP.Net Presentation Part3Neeraj Mathur
 

Similar to Fast and Free SSO: A Survey of Open-Source Solutions to Single Sign-on (20)

ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONSADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
ADDRESSING TOMORROW'S SECURITY REQUIREMENTS IN ENTERPRISE APPLICATIONS
 
Breaking SAP portal (HackerHalted)
Breaking SAP portal (HackerHalted)Breaking SAP portal (HackerHalted)
Breaking SAP portal (HackerHalted)
 
ASPNET Roadmap
ASPNET RoadmapASPNET Roadmap
ASPNET Roadmap
 
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
 
Lifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 ProductsLifecycle Management of SOA Artifacts for WSO2 Products
Lifecycle Management of SOA Artifacts for WSO2 Products
 
JBoss AS7 Webservices
JBoss AS7 WebservicesJBoss AS7 Webservices
JBoss AS7 Webservices
 
JBoss AS7 web services
JBoss AS7 web servicesJBoss AS7 web services
JBoss AS7 web services
 
Java ee 8 + security overview
Java ee 8 + security overviewJava ee 8 + security overview
Java ee 8 + security overview
 
What’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new StrategyWhat’s new in Java SE, EE, ME, Embedded world & new Strategy
What’s new in Java SE, EE, ME, Embedded world & new Strategy
 
WebLogic authentication debugging
WebLogic authentication debuggingWebLogic authentication debugging
WebLogic authentication debugging
 
Open Source Identity Integration with OpenSSO
Open Source Identity Integration with OpenSSOOpen Source Identity Integration with OpenSSO
Open Source Identity Integration with OpenSSO
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
 
As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DECWEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
 
Jboss Tutorial Basics
Jboss Tutorial BasicsJboss Tutorial Basics
Jboss Tutorial Basics
 
Introduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS ProjectIntroduction to the WSO2 Identity Server &Contributing to an OS Project
Introduction to the WSO2 Identity Server &Contributing to an OS Project
 
ASP.Net Presentation Part3
ASP.Net Presentation Part3ASP.Net Presentation Part3
ASP.Net Presentation Part3
 

More from Craig Dickson

Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarCraig Dickson
 
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the CloudDead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the CloudCraig Dickson
 
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitCraig Dickson
 
Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011Craig Dickson
 
JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)Craig Dickson
 
How to test drive development using Linux
How to test drive development using LinuxHow to test drive development using Linux
How to test drive development using LinuxCraig Dickson
 
Google Wave Introduction
Google Wave IntroductionGoogle Wave Introduction
Google Wave IntroductionCraig Dickson
 
Adobe Flex 4 Overview
Adobe Flex 4 OverviewAdobe Flex 4 Overview
Adobe Flex 4 OverviewCraig Dickson
 
Java Persistence API (JPA) - A Brief Overview
Java Persistence API (JPA) - A Brief OverviewJava Persistence API (JPA) - A Brief Overview
Java Persistence API (JPA) - A Brief OverviewCraig Dickson
 
eHarmony in the Cloud
eHarmony in the CloudeHarmony in the Cloud
eHarmony in the CloudCraig Dickson
 
Building Social Applications using Zembly
Building Social Applications using ZemblyBuilding Social Applications using Zembly
Building Social Applications using ZemblyCraig Dickson
 
Best Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesBest Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesCraig Dickson
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing IntroductionCraig Dickson
 
Performance Analysis and Monitoring with Perf4j
Performance Analysis and Monitoring with Perf4jPerformance Analysis and Monitoring with Perf4j
Performance Analysis and Monitoring with Perf4jCraig Dickson
 
JavaFX vs AJAX vs Flex
JavaFX vs AJAX vs FlexJavaFX vs AJAX vs Flex
JavaFX vs AJAX vs FlexCraig Dickson
 

More from Craig Dickson (16)

Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
 
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the CloudDead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
Dead-Simple Deployment: Headache-Free Java Web Applications in the Cloud
 
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
 
Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011
 
JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)
 
How to test drive development using Linux
How to test drive development using LinuxHow to test drive development using Linux
How to test drive development using Linux
 
Google Wave Introduction
Google Wave IntroductionGoogle Wave Introduction
Google Wave Introduction
 
Adobe Flex 4 Overview
Adobe Flex 4 OverviewAdobe Flex 4 Overview
Adobe Flex 4 Overview
 
Palm WebOS Overview
Palm WebOS OverviewPalm WebOS Overview
Palm WebOS Overview
 
Java Persistence API (JPA) - A Brief Overview
Java Persistence API (JPA) - A Brief OverviewJava Persistence API (JPA) - A Brief Overview
Java Persistence API (JPA) - A Brief Overview
 
eHarmony in the Cloud
eHarmony in the CloudeHarmony in the Cloud
eHarmony in the Cloud
 
Building Social Applications using Zembly
Building Social Applications using ZemblyBuilding Social Applications using Zembly
Building Social Applications using Zembly
 
Best Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesBest Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web Sites
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing Introduction
 
Performance Analysis and Monitoring with Perf4j
Performance Analysis and Monitoring with Perf4jPerformance Analysis and Monitoring with Perf4j
Performance Analysis and Monitoring with Perf4j
 
JavaFX vs AJAX vs Flex
JavaFX vs AJAX vs FlexJavaFX vs AJAX vs Flex
JavaFX vs AJAX vs Flex
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Fast and Free SSO: A Survey of Open-Source Solutions to Single Sign-on

  • 1. Fast and Free SSO: A Survey of Open-Source Solutions to Single Sign-on Craig Dickson, Software Engineering Manager Naveen Nallannagari, Senior Consultant Behr Process Corporation www.behr.com TS-4604 2007 JavaOneSM Conference | Session TS-4604 |
  • 2. Goals of This Presentation A Survey of Open-Source Solutions to Single Sign-on Present a sample of the different open source based SSO solutions, critically compare and contrast them and provide tips on how to choose the right one to fit your needs. 2007 JavaOneSM Conference | Session TS-4604 | 2
  • 3. Agenda What is SSO? (briefly) Survey of the main Open Source players Head-to-Head Comparisons Summary Q&A 2007 JavaOneSM Conference | Session TS-4604 | 3
  • 4. Agenda What is SSO? Survey of the main Open Source players Head-to-Head Comparisons Summary Q&A 2007 JavaOneSM Conference | Session TS-4604 | 4
  • 5. What is SSO? It is definitely not … “Every Single time you want to do something, you are going to have to Sign-On!” - Your Sys Admin 2007 JavaOneSM Conference | Session TS-4604 | 5
  • 6. What is SSO? This is more like it … • Authenticate only once and access multiple resources • Improved user productivity • Improved developer productivity • Ease of administration 2007 JavaOneSM Conference | Session TS-4604 | 6
  • 7. What is SSO? But what about the downsides … • Potentially creates a single point of attack • Malicious types only need 1 set of credentials and they can do a lot of damage • Can be very difficult to retrofit existing applications and infrastructure with an SSO solution 2007 JavaOneSM Conference | Session TS-4604 | 7
  • 8. Agenda What is SSO? Survey of the main Open Source players Head-to-Head Comparisons Summary Q&A 2007 JavaOneSM Conference | Session TS-4604 | 8
  • 9. OpenSSO Open Web SSO • Mission of OpenSSO: To provide an extensible implementation of identity services infrastructure that will facilitate Single Sign-On for web applications. • From the java.net community • Focused on Web based Single Sign-On • a common starting point for many identity management projects 2007 JavaOneSM Conference | Session TS-4604 | 9
  • 10. OpenSSO Continued … • Sun will make the following Sun Java™ System Access Manager modules freely available as part of OpenSSO: • Authentication • Single-domain SSO • Web and Java 2 Platform, Enterprise Edition (J2EE™ platform) agents • Session Management • Policy • Console • Administration tools • Federation • Policy agents 2007 JavaOneSM Conference | Session TS-4604 | 10
  • 11. OpenSSO OpenSSO Architecture 2007 JavaOneSM Conference | Session TS-4604 | 11
  • 12. OpenSSO OpenSSO Configuration • Open SSO is deployed as only one application • opensso.war • After installation, configuration (name of host, protocol etc) can be done at: http://localhost:8080/opensso/configurator.jsp • Realms have to be created 2007 JavaOneSM Conference | Session TS-4604 | 12
  • 13. OpenSSO OpenSSO Configuration • Installation of Agent (e.g. Tomcat) • agentadmin - install • Modify web.xml <security-constraint> <web-resource-collection> <web-resource-name>Protected Resources</web-resource-name> <url-pattern>/secure/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>id=teste, ou=role, dc=opensso, dc=java, dc=net</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/authentication/login.html</form-login-page> <form-error-page>/authentication/accessdenied.html</form-error-page> </form-login-config> </login-config> <security-roll id="test"> <role-name>id=test, ou=role, dc=opensso, dc=java, dc=net</role-name> </security-role> 2007 JavaOneSM Conference | Session TS-4604 | 13
  • 14. JOSSO Java Open Single Sign-On • Based on Java Authentication and Authorization Service (JAAS) • Uses web services implemented with Apache Axis as the distributed infrastructure • Uses Apache Struts and JavaServer Pages™ technology (JSP™ page) technology standards • Comes with a Reverse Proxy component that can be used to create n-tier Single Sign-On configurations • Allows n-tier configurations using multiple strategies, including storing user information and credentials in LDAP, Databases and XML files 2007 JavaOneSM Conference | Session TS-4604 | 14
  • 15. JOSSO Continued … • Implement and combine multiple authentication schemes with credential stores • Credential Stores are repositories for user credentials, to be used during the user authentication transaction • Can be configure to use (for example) certificate- based authentication scheme, obtaining user X.509 certificates from a database using Java DataBase Connectivity (JDBC™) software 2007 JavaOneSM Conference | Session TS-4604 | 15
  • 16. JOSSO JOSSO Architecture 2007 JavaOneSM Conference | Session TS-4604 | 16
  • 17. JOSSO JOSSO Configuration • Integration of JOSSO with specific application Server (Tomcat or JBoss) • Integrating Java Web Application with JOSSO 2007 JavaOneSM Conference | Session TS-4604 | 17
  • 18. JOSSO JOSSO Configuration - Integration with Tomcat or JBoss • The Single Sign–on Gateway Configuration • Configuration file: josso-gateway-config.xml ● Authenticator ● Identity Manager ● Session Manager ● Audit Manager ● Event Manager • Single Sign On Agent Configuration • To check that a previously user logged in is authorized to access a web context • Configuration file to declare the concrete configuration files: ● $CATALINA_HOME/bin/josso-config.xml 2007 JavaOneSM Conference | Session TS-4604 | 18
  • 19. JOSSO JOSSO Configuration - Integration with Tomcat or JBoss • Protect a Web Application • Add to server.xml file <Host> ... <Valve className="org.josso.tc50.agent.SSOAgentValve" debug="1"/> ... </Host> • For each request to the /partner Web Context, the Single Sign- On Agent will intercept it, assert the Single Sign-On session and obtain the user data from the Single Sign-On Gateway. 2007 JavaOneSM Conference | Session TS-4604 | 19
  • 20. JOSSO JOSSO Configuration - Integration with Tomcat or JBoss • Add a JAAS Realm • In order to integrate the Single Sign-On Agent with the Single Sign-On Gateway a JAAS Tomcat Realm entry must be added to the server.xml. • Configure a JAAS Login Module • jaas.conf file in the $CATALINA_HOME/conf directory with the following content: josso { org.josso.tc50.agent.jaas.SSOGatewayLoginModule required debug=true; }; • The Login Module validates the session and obtains the corresponding user and role information by invoking the gateway identity management webservices. 2007 JavaOneSM Conference | Session TS-4604 | 20
  • 21. JOSSO JOSSO Configuration - Integration with Tomcat or JBoss • Configure the Agent <?xml version="1.0" encoding="ISO-8859-1" ?> <agent> <class>org.josso.tc50.agent.CatalinaSSOAgent</class> <gatewayLoginUrl>http://localhost:8080/josso/signon/login.do</gatewayLo ginUrl> <gatewayLogoutUrl>http://localhost:8080/josso/signon/logout.do</gateway LogoutUrl> <sessionAccessMinInterval>1000</sessionAccessMinInterval> <service-locator> <class>org.josso.gateway.WebserviceGatewayServiceLocator</class> <endpoint>localhost:8080</endpoint> </service-locator> <partner-apps> <partner-app> <context>/partner</context> </partner-app> </partner-apps> </agent> 2007 JavaOneSM Conference | Session TS-4604 | 21
  • 22. JOSSO JOSSO Configuration – Integration Java application with JOSSO • Web application Security Constraints • Configured using three elements in web.xml • <login-config> element • <security-constraint> element • <security-role> element 2007 JavaOneSM Conference | Session TS-4604 | 22
  • 23. JOSSO JOSSO Configuration – Integration Java application with JOSSO • Integrating Enterprise JavaBeans™ (EJB™) with JOSSO • The security constraints should be declared in the ejb-jar.xml file of the partner components based on the Enterprise JavaBeans specification (EJB components) • For the user identity to be propagated to the EJB components tier, the jboss.xml file must set java:/jaas/josso as the security domain in the following way: <?xml version="1.0" encoding="UTF-8"?> <jboss> <security-domain>java:/jaas/josso</security-domain> <enterprise-beans> <session> <ejb-name>PartnerComponentEJB</ejb-name> <jndi-name>josso/samples/PartnerComponentEJB</jndi-name> </session> </enterprise-beans> </jboss> 2007 JavaOneSM Conference | Session TS-4604 | 23
  • 24. JA-SIG CAS Central Authentication Service • An open and well-documented protocol • A library of clients for Java technology, .NET, PHP, Perl, Apache, uPortal and others • Integrates with uPortal, BlueSocket, TikiWiki, Mule, Liferay, Moodle and others • Community documentation and implementation support • An extensive community of adopters 2007 JavaOneSM Conference | Session TS-4604 | 24
  • 25. JA-SIG CAS Continued … • The players involved • CAS (The Central Authentication Service) • Service • Proxy • Target (or back-end service) • CAS authentication make use of tickets, or opaque strings that prove some assertion to CAS. • CAS 2.0 uses the following tickets • Ticket-granting cookie (TGC) • Service ticket (ST) • Proxy-granting ticket (PGT) • Proxy-granting ticket IOU (PGTIOU) • Proxy ticket (PT) 2007 JavaOneSM Conference | Session TS-4604 | 25
  • 26. JA-SIG CAS CAS Architecture 2007 JavaOneSM Conference | Session TS-4604 | 26
  • 27. JA-SIG CAS CAS Configuration • Server Deployment • Client Configuration 2007 JavaOneSM Conference | Session TS-4604 | 27
  • 28. JA-SIG CAS CAS Configuration- Server Deployment • Based on authentication scheme used • password based • certificate based • Need to implement Authentication Handler interface 2007 JavaOneSM Conference | Session TS-4604 | 28
  • 29. JA-SIG CAS CAS Configuration- Server Deployment • Example : Password based public class UsernameLengthAuthnHandler implements AuthenticationHandler { public boolean authenticate(Credentials credentials) throws AuthenticationException { UsernamePasswordCredentials upCredentials = (UsernamePasswordCredentials) credentials; String username = upCredentials.getUsername(); String password = upCredentials.getPassword(); String correctPassword = Integer.toString(username.length()); return correctPassword.equals(password); } public boolean supports(Credentials credentials) { // we support credentials that bear usernames and passwords return credentials instanceof UsernamePasswordCredentials; } } 2007 JavaOneSM Conference | Session TS-4604 | 29
  • 30. JA-SIG CAS CAS Configuration- Server Deployment • Customizing views • The existing views can be changed (i.e. JSP pages to match the look and feel of the applications) • Using LDAP for authentication • Install the CAS LDAP authentication handler .jar file - cas-server-ldap-{SOMETHING}.jar • Include an LDAP library ("LdapTemplate" or "Spring LDAP") intoCAS server 2007 JavaOneSM Conference | Session TS-4604 | 30
  • 31. JA-SIG CAS CAS Configuration- Server Deployment • Using X.509Certificates • CAS provides customizations to the CAS webflow to retrieve certificates from the HttpServletRequest, package the certificates into Credentials CAS can understand and pass them into the CentralAuthenticationService service. • Provides an authentication handler to determine the validity of a certificate and if the credentials are authentic or not. • Provides sample resolvers to translate the credentials into a principal that client applications will understand. 2007 JavaOneSM Conference | Session TS-4604 | 31
  • 32. JA-SIG CAS CAS Configuration- Client • Various Clients • Java technology client • JSP software client • Uportal client • Acegi as CAS client • Perl, ASP.NET client etc. 2007 JavaOneSM Conference | Session TS-4604 | 32
  • 33. JA-SIG CAS CAS Configuration- Client • Java technology Client Configuration • CASFilter configuration - Example <web-app> ... <filter> <filter-name>CAS Filter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name> <param-value>https://secure.its.yale.edu/cas/login</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name> <param-value>https://secure.its.yale.edu/cas/serviceValidate</param-value> </init-param> <init-param> <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name> <param-value>your server name and port (e.g., www.yale.edu:8080)</param- value> </init-param> </filter> <filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/requires-cas-authetication/*</url-pattern> </filter-mapping> ... </web-app> 2007 JavaOneSM Conference | Session TS-4604 | 33
  • 34. Agenda What is SSO? Survey of the main Open Source players Head-to-Head Comparisons Summary Q&A 2007 JavaOneSM Conference | Session TS-4604 | 34
  • 35. Head-to-Head Comparison Retrofitting an existing application • JOSSO • No support for certain application servers • Does provide a plugin infrastructure to facilitate integration with other containers; you can base your own plugin on existing samples • OpenSSO • can fit into a multitude of application servers because of the availability of agents • These agents include Apache, Sun Java System Web Server, Microsoft IIS, Domino 2007 JavaOneSM Conference | Session TS-4604 | 35
  • 36. Head-to-Head Comparison Integration of non-Java applications • JOSSO • Uses web services for asserting user identity via SOAP • Allows the integration of non-Java applications (e.g. PHP, .NET etc.) • CAS • There are many client libraries to assist in “CASifying” applications • Examples include AuthCAS for Apache, a uPortal client, a Java technology Client, a PHP client and a Perl client 2007 JavaOneSM Conference | Session TS-4604 | 36
  • 37. Head-to-Head Comparison Customizability • JOSSO • If your application server is not supported, need to customize by writing plugins • CAS • Basic implementation includes only HTTPS • Can be easily customized to be HTTP enabled • Look and feel of login pages can be changed • Comes with pluggable authenticators to validate against LDAP etc. • OpenSSO • Customizations can be done by writing Authentication modules • Authentication User Interface JSP pages can be customized by Realm, Locale, Client type or any Service of the SSO system 2007 JavaOneSM Conference | Session TS-4604 | 37
  • 38. Head-to-Head Comparison Ease of Deployment • CAS • Involves deploying CAS Server (downloadable as a pre-built WAR file or can be customized) and a CAS client with each application • JOSSO • Involves Configuration of: ● Single Sign-On Gateway ● the Authenticator ● the Identity Manager ● the Session Manager • OpenSSO • Deployable as a WAR file 2007 JavaOneSM Conference | Session TS-4604 | 38
  • 39. Head-to-Head Comparison Authentication for non-browser-based clients • CAS • Has Proxy Authentication support • OpenSSO • Does not have out-of-the-box support for CAS-like proxy authentication, however there are authentication APIs available to build one • JOSSO • Comes with a Reverse Proxy component that can be used to create n-tier Single Sign-On configurations 2007 JavaOneSM Conference | Session TS-4604 | 39
  • 40. Head-to-Head Comparison Support for web service security • JASSO • Can be used to secure web services but is limited due to the level of application server support • CAS • Supports web service security by protecting URLs • OpenSSO • Has started work related to web services security 2007 JavaOneSM Conference | Session TS-4604 | 40
  • 41. Head-to-Head Comparison Community support • As all three are Open Source solutions, the support is in the form of project websites, community generated documentation, user forums and mailing lists • CAS, OpenSSO and JOSSO all have well managed user groups 2007 JavaOneSM Conference | Session TS-4604 | 41
  • 42. Agenda What is SSO? Survey of the main Open Source players Head-to-Head Comparisons Summary Q&A 2007 JavaOneSM Conference | Session TS-4604 | 42
  • 43. How to Choose Which horse for which course … • There are multiple factors to consider when deciding on the SSO solution you need • All three are Open Source solutions, so licensing issues are removed • OpenSSO is a good choice if • Using XML based file formats and language independent APIs is important • Clustered environment support is required • SSL mutual authentication is required • You want to leverage all of the features of the Sun Java System Access Manager • CAS is a good choice if • Your using a Spring based infrastructure with acegi • Your using simple DB based credential management • JOSSO is a good choice if • It supports your particular application server, otherwise additional development effort will be required 2007 JavaOneSM Conference | Session TS-4604 | 43
  • 44. Alternative Open Source Solutions Some other horses to consider • Atlassian Seraph • http://opensource.atlassian.com/seraph • Shibboleth • http://shibboleth.internet2.edu • CoSign • http://www.umich.edu/~umweb/software/cosign • Enterprise Sign-On Engine • http://esoeproject.org/ 2007 JavaOneSM Conference | Session TS-4604 | 44
  • 45. For More Information • OpenSSO Home Page • https://opensso.dev.java.net/ • JOSSO Home Page • http://www.josso.org/ • CAS Home Page • http://www.ja-sig.org/products/cas/ • Wikipedia • http://en.wikipedia.org/wiki/Single_sign-on • SAML • http://www.oasis-open.org/committees/tc_home.php? wg_abbrev=security • Acegi • http://www.acegisecurity.org/ 2007 JavaOneSM Conference | Session TS-4604 | 45
  • 46. Agenda What is SSO? Survey of the main Open Source players Head-to-Head Comparisons Summary Q&A 2007 JavaOneSM Conference | Session TS-4604 | 46
  • 47. Q&A Craig Dickson – cdickson@behr.com Naveen Nallannagari – nnallannagari@behr.com 2007 JavaOneSM Conference | Session TS-4604 | 47