Proposal for "OpenID"

» Metadata » Status
  • Category: Authentication
  • Proposer: Bill Shupp 
  • License: BSD Style
  • Status: Proposed
» 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 in HTTP_Request. See below for addressing the requestor issue.
  • HTTP_Request is used instead of HTTP_Request2 because following redirects was not included in HTTP_Request2. This package will move to HTTP_Request2 once redirects are added.
» 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_Request
  • 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.3.1 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
  • 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.