On Sunday I wrote about Drupal 6 authentication with a FINeID card. In it I also claimed I was planning on expanding the Certificate Login module to facilitate an option for OpenID style identification, in which the user name doesn't need to be taken directly from the certificate but the user can instead be attached to any number of certificates. This is possible by using Drupal 6's authmap-table, which also Drupal's own OpenID module uses. I spent a few hours last night to investigate the possibilities and managed to write a working extension for the module, in which the greatest shortcoming is that the user can't inspect certificates attached to him/herself and can't remove them. If the patch is accepted to the module, however, I will add that feature also. Meanwhile, here's a short tutorial for anyone interested in taking matters in their own hands and using the patch.
Code changesTo use the new feature, you first need to apply the patch to the code. I recommend taking your module code from Drupal.org VCS according to the instructions, because the patch has been taken against it:
$ git clone http://git.drupal.org/project/certificatelogin.git $ cd certificateloginAfter this, download the patch from the issue. Move the downloaded patch to the certificatelogin directory that Git just created for you. Change to the directory and run the following command to apply the patch:
$ patch -p0 < certificatelogin-authmap.patch patching file certificatelogin.moduleIf the output differs from the above (and especially if the output has ”FAILED” in it), the patching probably failed. In this case you shouldn't continue until you've successfully completed the patching. One more thing: Move the module to your Drupal installation to a nice and warm directory (e.g. sites/default/modules/custom).