[cvs] [Wiki] changed: Project/OpenID
Chuck Hagenbuch
chuck at horde.org
Mon Aug 18 01:10:55 UTC 2008
chuck Sun, 17 Aug 2008 21:10:54 -0400
Modified page: http://wiki.horde.org/Project/OpenID
New Revision: 1.4
Change log: horde implementation plan for openid auth
@@ -3,9 +3,9 @@
+ !OpenID Support
++ Goal
-Provide both client and server !OpenID support for Horde (these are
different things).
+Provide both client (consumer) and server !OpenID support for Horde
(these are different things).
++ Bugs
http://bugs.horde.org/ticket/6571
@@ -14,12 +14,22 @@
ChuckHagenbuch is interested in this project, and can provide expert
support on Horde's authentication layer.
++ Description
+
++++ Horde Implementation Plan
+
+Horde_Openid_Server
+Horde_Openid_Consumer
+
+Horde_Auth_Openid -> authenticate with openid server, but generate a
local id for users in another horde backend? or have an openid_users
table? still need to integrate that with regular auth to allow
lookups, prefs, etc.
+
+horde_user_map table - map from any kind of user_id to a numeric
horde_user_id that can be used to identify either external (openid,
whatever) or internal (Horde_Auth driver) users, and provide a simple
numeric value for use in other applications SQL tables. have different
versions of horde_user_map if necessary for different kinds of
userids, but with openid, probably always going to need a varchar(255)
anyway.
+
+++ Notes
-As posted a few months back, I had started working on a PHP5 OpenID
library that I wished to port to the framework since it seemed a
reasonable addition given our web app focus. Given the complexity of
OpenID as a distributed authentication service there are numerous
components. Each by itself is actually not that hard, most of the
problem is putting them together with a solid set of integration tests.
+As posted a few months back, I had started working on a PHP5 !OpenID
library that I wished to port to the framework since it seemed a
reasonable addition given our web app focus. Given the complexity of
!OpenID as a distributed authentication service there are numerous
components. Each by itself is actually not that hard, most of the
problem is putting them together with a solid set of integration tests.
These include wrappers for large integer (> 32 bits) libraries since
bcmath alone is awfully slow for this compared to gmp, cryptographic
algorithms, and even a separate extensible web service (already
proposed on the wiki). The list of possible sub-components that could
feasibly get started with include:
Zend_Service_Yadis
@@ -28,19 +38,17 @@
Zend_Crypt_Hmac
Zend_Crypt_Xtea
Zend_Math_BigInteger
-An actual Zend_Service_Openid would need all of the above as well as
general file parsers. I was looking for an opinion as to whether these
are acceptable as individual proposals. It seems to make sense
rendering OpenID into it's reusable constituent parts rather lumping
everything (and inevitably burying/hiding it) into the Openid
namespace. I don't want to go spamming the wiki with 6+ proposals
until I get a little feedback either :).
-
-Any thoughts/comments on this, or OpenID in the ZF in general, are
appreciated. :) The primary goal is to implement OpenID 1.1 and 2.0 to
the extent necessary to authenticate. The basis of an OpenID server
can be considered after.
+An actual Zend_Service_Openid would need all of the above as well as
general file parsers. I was looking for an opinion as to whether these
are acceptable as individual proposals. It seems to make sense
rendering !OpenID into its reusable constituent parts rather lumping
everything (and inevitably burying/hiding it) into the Openid
namespace. I don't want to go spamming the wiki with 6+ proposals
until I get a little feedback either :).
-JanRain code:
-I dug through the JanRain code quite a bit, and it's a bit bloated
and sloppy, but I think that's just a side-effect of the library
having been ported to a number of different languages, and clearly PHP
wasn't the original. You might also be interested in Wez's much
simpler code:
+!JanRain code:
+I dug through the !JanRain code quite a bit, and it's a bit bloated
and sloppy, but I think that's just a side-effect of the library
having been ported to a number of different languages, and clearly PHP
wasn't the original. You might also be interested in Wez's much
simpler code:
http://netevil.org/node.php?nid=949
-Unless you're in an environment where you can apply his patch, you
can only implement the dumb mode (or do all of that big number math in
PHP, which seems wasteful and error-prone). I was hoping the JanRain
library would just work, since Wez's patch won't be an option for most
people until the next public release of PHP.
+Unless you're in an environment where you can apply his patch, you
can only implement the dumb mode (or do all of that big number math in
PHP, which seems wasteful and error-prone). I was hoping the !JanRain
library would just work, since Wez's patch won't be an option for most
people until the next public release of PHP.
++ Resources
* http://openid.net/developers/
More information about the cvs
mailing list