Monday, January 07, 2008

Doing your own OpenID authentication

OpenID is an open standard for authentication on various, unrelated, websites. There are many providers that will provide you with an OpenID idenity but, in some ways, this defeates the purpose of OpenID since your ID is controlled by a person other than you. Just last night I ran into a situation where I was not able to do something with my ID that I wanted since I was using MyOpenID.com because I am not in control of my idenity page. Thanks to a fit of insomnia I did some research and implemented my own OpenID idenity -- and it was actually a lot easier than I expected.

In order to implemt this you need a website with PHP support. This can be done on any web server whether you are in control of it or not but it is recommended that it be a server you are in control of for obvious security reasons. We will use phpMyID since it is simple and serves the purpose well.

This works well if it has its own domain or subdomain but it really isn't a required thing. The OpenID that I created is http://id.bobkmertz.com. My instructions assume you've created a domain or sub-domain for your OpenID but you can adapt as needed.

First thing, you need to register a domain and point that domain's DNS to your webserver and, of course, configure your webserver. I'm not going to touch on that because if you're doing this you probably should already know how and if not there are plenty of web pages out there that can help you with that.

Now you want to grab phpMyID. The latest version is 0.7 BETA and can be found here.

For me, I have my own server with shell access so I downloaded this directly to my server. This is, by far, the easiest method of implementing this but not everyone has this access so you can download it to your local machine, do the edits and then upload the files to your webserver. If you are uploading keep in mind that when I say editing a file you need to edit it and upload it if your not on the server.

There are 2 files that make up phpMyID. Really, that's it. Your OpenID set up is going to use only 2 php files. Let's get started:

  1. Put both files from the archive into your public_html or www directory
  2. Rename MyID.config.php to index.php
  3. Edit index.php and change "auth_username", "auth_password", and "auth_realm"
    • auth_realm doesn't need to be changed but can be anything you want it to be
    • auth_username is the username you want to authenticate as - this is for your use only
    • auth_password is an encrypted password which you can use OpenSSL to create (echo -n 'username:realm:password' | openssl md5).
      • Make sure you replace username and realm in the command with the same as used in auth_realm and auth_username
      • Windows User? Check here

  4. To use SREG, remove hash (#) marks from the values under the sreg array and replace the values with appropriate information. This allows these fields to be automagically filled in when logging into a site
  5. Save the file
You now have a working OpenID service. But if your OpenID is pointing to your OpenID then it would make sense to have some information about yourself on that page, wouldnt it? The PHP script doesnt allow any easy way of editing your page but it's something that may well be desired. You may ever want to use other Web 2.0 features like a pavatar. Let's make an easy way of doing this.
  1. First, create a file to contain your HTML code. We'll use "id.html" in this example.
  2. In this file you'll want to create your HTML page as you wish. Do not include body or html tags as we're going to leave the headers and such to the PHP script and then just inject this file in the middle.
  3. Open MyID.php in your favorite editor and go to line 1392
  4. Following the function call and the header information you will see some HTML code. Under the body tag we want to add the following:

    ';
    readfile("id.html");
    echo '
    

  5. Now look for the title tags above that. You can change the title to whatever you'd like the name of your OpenID page to be.


You should be all set and have an easier way to edit the information on your OpenID page.

Optionally, you may want to give credit to the author of phpMyID. You can place an HTML link before the close body tag in MyID.php.

25 comments:

  1. This is beyond doubt a blog significant to follow. You’ve dig up a great deal to say about this topic, and so much awareness. I believe that you recognize how to construct people pay attention to what you have to pronounce, particularly with a concern that’s so vital. I am pleased to suggest this blog.
    online Python training
    python training in chennai

    ReplyDelete
  2. Thank you for benefiting from time to focus on this kind of, I feel firmly about it and also really like comprehending far more with this particular subject matter. In case doable, when you get know-how, is it possible to thoughts modernizing your site together with far more details? It’s extremely useful to me.
    Data Science training in rajaji nagar | Data Science Training in Bangalore
    Data Science with Python training in chennai
    Data Science training in electronic city
    Data Science training in USA
    Data science training in pune

    ReplyDelete
  3. Have questions about your online casino? Follow the link and find out everything that interests you. best online gambling guide Play with us and win every hour.

    ReplyDelete
  4. Thank you for sharing such valuable information about devops trainining.glad to see this here.keep sharing
    Devops Training in Chennai | Devops Training Institute in Chennai

    ReplyDelete
  5. Excellent content thanks for sharing the unique information and keep posting.

    Devops Training in Chennai | Devops Training Institute in Chennai

    ReplyDelete
  6. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.thank you for sharing such a great blog with us. expecting for your.
    Java Training in Chennai
    Java Training in Coimbatore
    Java Training in Bangalore

    ReplyDelete
  7. Hi,
    Good job & thank you very much for the new information, i learned something new. Very well written. It was sooo good to read and usefull to improve knowledge. Who want to learn this information most helpful. One who wanted to learn this technology IT employees will always suggest you take Big Data Hadoop Online Training Courses.

    ReplyDelete
  8. Thanks a lot for giving great kind of information. So useful and practical for me. Excellent blog and very informative, nice work keep updating. If you are looking for any Big data related information, check our bigdata training institute in bangalore web page. Thanks a lot.

    ReplyDelete
  9. It is really informative and useful blog..


    https://www.acte.in/angular-js-training-in-chennai
    https://www.acte.in/angular-js-training-in-annanagar
    https://www.acte.in/angular-js-training-in-omr
    https://www.acte.in/angular-js-training-in-porur
    https://www.acte.in/angular-js-training-in-tambaram
    https://www.acte.in/angular-js-training-in-velachery

    ReplyDelete
  10. Thanks a lot for giving great kind of information. So useful and practical for me. Excellent blog and very informative, nice work keep updating..i really enjoy to read this thank u so much.
    AngularJS training in chennai | AngularJS training in anna nagar | AngularJS training in omr | AngularJS training in porur | AngularJS training in tambaram | AngularJS training in velachery

    ReplyDelete
  11. Nice post! Thanks for an excellent content that helps in my work area. I really loved the way it is written in a well structured and precise manner.
    amazon web services aws training in chennai

    microsoft azure course in chennai

    workday course in chennai

    android course in chennai

    ios course in chennai

    ReplyDelete
  12. Nice post! Thanks for an excellent content that helps in my work area. I really loved the way it is written in a well structured and precise manner.

    amazon web services aws training in chennai

    microsoft azure training in chennai

    workday training in chennai

    android-training-in chennai

    ios training in chennai

    ReplyDelete
  13. This weblog is as a matter of fact first-rate. The sponsorship here will for all intents and purposes be of some work with to me. much obliged to you!. SmartDraw Free Download With Crack

    ReplyDelete
  14. OmniPage Ultimate break here we will talk about a surprising and beneficial gadget that on account of its unprecedented show is astoundingly famous from wherever the world. Omnipage Free Download Full Version

    ReplyDelete
  15. This Christmas Cards item by Creaternet has 673 favorites from Etsy shoppers. ... Happy Christmas Card Christmas Note to Wife

    ReplyDelete