simplesamlphp eurocamp 2010 olav morken olav morken
play

SimpleSAMLphp EuroCAMP 2010 Olav Morken olav.morken@uninett.no - PowerPoint PPT Presentation

SimpleSAMLphp EuroCAMP 2010 Olav Morken olav.morken@uninett.no SimpleSAMLphp Mainly a SAML 2.0 Service Provider and Identity Provider 2 Targets the SP lite and IdP lite profiles (with some limitations) Written entirely in PHP


  1. SimpleSAMLphp EuroCAMP 2010 Olav Morken olav.morken@uninett.no

  2. SimpleSAMLphp  Mainly a SAML 2.0 Service Provider and Identity Provider 2  Targets the SP lite and IdP lite profiles (with some limitations)  Written entirely in PHP  Support for several other protocols  Support for multiple authentication methods

  3. History  Started out as a SAML 2.0 IdP and SP implementation 3  Later extended with partial support for SAML 1.1  Shibboleth 1.3 compatibility  Support for several other protocols added (WS-Federation spring 2008)  Module support added fall 2008

  4. What it has become  Generic SSO platform  Targets multiple use-cases 4  Service Provider  Identity Provider  Bridge / proxy  Also between different protocols, e.g. SAML 2.0 ↔ OpenID  Federation tools, e.g. metadata aggregator

  5. Goals  SSO platform  Easy to get started 5  Flexible  Extensible

  6. Extensibility  Supports extensions through modules  Somewhat stable API 6  Mainly two types of extensions  Authentication sources  E.g. LDAP, SQL, OpenID  Authentication processing filters  E.g. attribute release consent, attribute modifications

  7. Examples of modules  consent - asks the user for permission before releasing attributes to SP  ldap - authenticating against LDAP servers 7  sql – authentication against SQL database  aggregator – a metadata aggregator  openidProvider – An OpenID provider  statistics – Statistics viewer, e.g. logins, logouts, consent responses

  8. Protocol support  SAML 2.0 & SAML 1.1  OpenID 8  CAS  WS-Federation (ADFS)

  9. Authentication  LDAP  SQL 9  Radius  X509 certificates  Various other protocols:  Facebook  Twitter  ...

  10. Version 1.7  Should arrive in December  Few user-visible changes 10  Mostly changes to the internals:  Session handling  Lots of fixes to conform more to the SAML 2 specifications

  11. Session handling (1)  Problem:  Current solution was inflexible 11  Only one “authentication session” for each session  Limited us to one SP or IdP per hostname  Now supports multiple separate “authentication session” per session  Log in and out of various authentication sessions independently

  12. Session handling (2)  Makes it possible to support advanced features in future releases 12  Support for complex authentication, e.g. twofactor  Different authentication contexts  Allows the SP to specify the method of authentication it requires

  13. Session handling (3)  Three session handlers:  PHP built in session handler 13  Memcache  SQL (new in version 1.7)  Supports SQLite, MySQL, PostgreSQL  Generic SQL – may work with other DBs  Can add new handlers through modules  SAML 2 SP supports SOAP logout when using Memcache or SQL session store

  14. Conformance fixes  In preparation for Kantara Initiative SAML 2.0 Full Matrix Conformance 14 Testing (beginning of 2011)  Partially driven by Andreas' automated SAML 2 tester  Most fixes were for rarely used features in the SAML 2 specification  Could become important in the future

  15. Conformance (before) 15

  16. Future improvements  Simpler IdP configuration  Better support for working directly 16 with XML metadata  Better login UI  SAML 2 MDX metadata support  Extending the SAML 2 library

  17. IdP configuration (1)  The various protocols must currently be configured separately 17  Little interaction between the different SSO protocols  Cross-protocol logout difficult  The IdP is directly tied to the current hostname → cannot run multiple IdPs on a single hostname

  18. IdP configuration (2)  Create a single configuration file for IdPs 18  Enable or disable protocols as part of the IdP configuration

  19. XML metadata (1)  XML metadata is the standard format for metadata exchange 19  SimpleSAMLphp currently uses its own internal metadata format, based on arrays  We want to move to XML format as standard  Simplifies deployment

  20. XML metadata (2)  Not everything that can be configured in SimpleSAMLphp can be set in XML metadata  Want to allow configuration both directly in XML metadata 20 and in a separate file  Allows automated downloading of metadata while keeping local configuration  Possibly local configuration based on EntityAttributes in downloaded metadata  User experience when adding and editing metadata

  21. XML metadata (3) 21

  22. Login UI (1)  Current user-interface experience isn't as good as it can be 22  It takes too many steps to log in:  Select to log in  Select protocol  Select federation  Select identity provider  Enter username & password

  23. Login UI (2)  Should at least be possible to reduce to three steps in most cases: 23  Select to log in  Select identity provider  Enter username & password

  24.  Possibly new UI based on result from Kantara ULX working group 24

  25. MDX support (1)  Federations are growing, forming federations of federations.  Can end up with several thousand SAML 2 25 entities  Most of which will rarely, if ever, speak to each other  Full metadata updates waste bandwidth, processing power  Better to download the metadata only for those entities that are in use

  26. MDX support (2)  MDX is a protocol for downloading just one piece of metadata from a 26 larger set  Primarily want support for consuming MDX metadata  May also want to support serving MDX metadata in the metadata aggregator

  27. SAML 2 library (1)  Currently tied to SimpleSAMLphp  Any application that wants to become 27 a SAML 2 SP must include the whole of SimpleSAMLphp  Conflict between application session and SimpleSAMLphp session

  28. SAML 2 library (2)  Want to make it easier to embed the SP directly into the application  Reuse application framework 28  Templates, error handling, session storage  Application must take on many responsibilities:  Metadata generation, attribute extraction, +++  SAML 2 library handles message generation, parsing and validation

  29. 29 Questions ?

Recommend


More recommend