Proposal for "OpenID"

» Metadata » Status
  • Category: Authentication
  • Proposer: Bill Shupp 
  • License: BSD Style
» Description

OpenID is a free and easy way to use a single digital identity across the Internet. See openid.net for details. This package is a PHP implementation of the OpenID 1.1 and 2.0 specifications for Relying Party functionality.

Only Relying Party support is provided at this time. Provider support is already underway, and will be added as a separate package (i.e. OpenID_Provider).

There is out of the box support for a few extensions, including Simple Registration (1.0 and 1.1), Attribute Exchange, and some support for the new UI extension.

This package supports a storage interface (including Cache_Lite and MDB2 drivers) for easy addition of custom drivers. There is also support for observers for logging, etc.

There is an example web console for testing discovery, relying party (with some useful debugging functionality), and also a sample implementation of an OpenID JS Selector (i.e. the "NASCAR" solution).

You can try the examples here.

A few notes about this package:

  • There is 100% code coverage, and full CS compliance with PHP_CodeSniffer 1.1.0.
  • This package meets all test-id.net tests with the exception of SSL validation, as that doesn't work well in curl for some reason (I'm investigating it).
» Dependencies » Links
  • PEAR installer version 1.4.0b1 or newer
  • Package pear.php.net/PEAR
  • * Version 1.4.0 or newer
  • Package pear.php.net/HTTP_Request2 0.5.1 or newer
  • Package pear.php.net/Validate
  • Package pear.php.net/Cache_Lite
  • Package pear.php.net/Crypt_DiffieHellman
  • Package pear.php.net/Services_Yadis
  • * Version 0.4.0 or newer
  • Package pear.php.net/Net_URL2
  • Package pear.php.net/Date
  • Extension date
  • Extension dom
  • Extension hash
  • Extension libxml
  • Extension mbstring
  • Extension pcre
  • Extension SPL
» Timeline » Changelog
  • First Draft: 2009-07-06
  • Proposal: 2009-07-06
  • Call for Votes: 2009-12-16
  • Bill Shupp
    [2009-08-08 07:47 UTC]

    • Added POST support for OpenID_RelyingParty::verify()
    • Added support for duplicates in openid.signed (Yahoo! bug)
    • Styled examples - thanks Danny Trinh!
    • Fixed a bug in the discovery example
    • More tests
    • Factored DH related request stuff into new OpenID_Association_DiffieHellman
  • Bill Shupp
    [2009-08-09 22:40 UTC]

    Added a link to live examples

  • Bill Shupp
    [2009-10-29 08:18 UTC]

    Initial XRI support, some bug fixes

  • Bill Shupp
    [2009-11-11 02:41 UTC]

    Forgot to add the Date dependency in the proposal.

  • Bill Shupp
    [2009-12-16 04:03 UTC]

    • Moved to HTTP_Request2
    • Requires Services_Yadis 0.4.0
    • Added extension support detection in discovery
    • Bug fixes