Add OpenID delegation to your website
If you want to use your own website as OpenID identifier while still using a third-party OpenID provider, you may use a process called delegation. This means that you can log into OpenID websites by using www.example.com instead of http://john.myprovider.com/ (or something even harder to type or remember).
For this to work, you only have to include so called link relationships to the HTML <head> section of your homepage. For more information, please see http://wiki.openid.net/Delegation. Here's how you can accomplish this with Drupal:
- Open Administer > Site building > Blocks and click on Add Block to add a new block.
- Create the block with the following data:
- Block description: choose a name for the block like OpenID delegation.
- Block body: enter the following PHP code and change the href values to the ones given to you by your OpenID provider:
<?php
drupal_set_html_head('<link rel="openid.server" href="http://myprovider.com/openid/server" />');
drupal_set_html_head('<link rel="openid.delegate" href="http://john.myprovider.com/" />');
// add the next two lines if your OpenID Provider supports OpenID 2.0
drupal_set_html_head('<link rel="openid2.provider" href="http://myprovider.com/server" />');
drupal_set_html_head('<link rel="openid2.local_id" href="http://john.myprovider.com/" />');
?> - Input Format: PHP code
Then click on Save block.
- Open Administer > Site building > Blocks and add the new block OpenID delegation to a region of your page. You could choose header to remind you that this information is added to the "top" of the page, but any region will do.
- Press Save blocks and wait for the page to reload. Then check the page source, usually by right clicking somewhere on the page and selecting View Page Source. The page source should start like this:
<html>
<head>
[...]
<link rel="openid.server" href="http://myprovider.com/openid/server" />
<link rel="openid.delegate" href="http://john.myprovider.com/" /> - Finally, you might want to try and log into a website using OpenID and your new identifier www.example.com.

There is a module to do this
I used this technique, and it works fine. But apparently, there is a Drupal OpenID URL Module that allows to do this, so it's probably best practice to use that module.