Independent member of the Danish Notesnet group

I am pleased to say that my Lotus Notes/Domino consultancy company PHL Consult has been accepted as an independent member of the Danish Notesnet group of Lotus specialists. The members of Notesnet are all self-employed consultants working with Lotus products in general – and for most of the members with Lotus Notes and Lotus Domino in particular. I am sure that being member of this group will benefit me in some way or the other now that I start on my excisting new adventure.

Before being accepted as member I was invited to the group’s September meeting by the chairman of the group John Dalsgaard of Dalsgaard Data. I enjoyed being part of the meeting and now look forward to lots of interesting meetings in the future.

I will start on my own as a Lotus Notes/Domino consultant

I have exciting news! I am leaving IBM October 15 to start on my own as a self-employed consultant at PHL Consult. I will work primarily with development and administration of Lotus Notes and Lotus Domino solutions.

I have been with IBM for 16 years and had almost never thought that this day would come – but I have been dreaming of working as a self-employed consultant for many years. I am very happy that I finally took the plunge and look forward to the exciting new adventure!

To quote Mark Twain:

Twenty years from now you will be more disappointed by the things that you didn’t do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.

Wish me luck.

I have somehow contributed to OpenNTF

I woke up this morning to a comment by David Jeyachandran to my blog post on Sorting a NotesDocumentCollection by multiple field values. David wanted to let me know that he is using the sort function in the Notes Reconn project at OpenNTF.

That is great news – and I am happy to know that I have contributed to a project on OpenNTF (although just a very small part).

Free course on using Lotus Domino Designer 8.5

TLCC is offering a free course/tutorial on using Lotus Domino Designer 8.5. The course requires that you have Domino Designer 8.5.1 installed as the course is delivered using the Lotus Notes 8.5 client – very cool!.

The course covers:

  • What is Notes and Domino software?
  • The role of the Notes client and Domino server
  • Domino Application Architecture
  • Using Domino Designer software
  • Creating a Domino Application
  • Creating Forms and adding fields
  • Designing Views
  • Creating XPages for your application
  • Programming options in Domino Designer applications
  • Deploying a Domino application

So if you are looking for courses and tutorials on Domino Designer 8.5 then have a look at this one.

New Redbook: Building Domino Web Applications using Domino 8.5.1

As stated on the XPages Blog, a new Redbook has been published on the Lotus Notes and Domino Application Development wiki on building Domino web applications using Domino Designer 8.5.1: Building Domino Web Applications using Domino 8.5.1.

The objective of the Redbook is to “provide guidance on Best Practices for Domino Web Development, with emphasis on the new XPages design element. We introduce the key new features of XPages and discuss how and why these are meaningful within the context of Domino Web Development.

The Redbook serves as a great tutorial on how to use the latest Domino Designer 8.5.1 features. You can read the Redbook directly on the wiki or download it as a PDF. Enjoy.

Getting a book to Lotusphere 2010

Recently Chris Toohey held a contest/giveaway where the price was his review copy of the “Lotus Notes Domino 8: Upgrader’s Guide: What’s new in the latest Lotus Notes Domino Platform” book – courtesy of Packt Publishing. I have also received a review copy of the same book – and I admit: I never got to write my review of the book (but read the book with great interest). So I offered Chris my review copy as well so that his contest/giveaway could have two winners. The lucky winners are Chuckalicious and John James. Chris has already sent his review copy to Chuckalicious and I am going to send my review copy to John James.

Since I live in Denmark and John James lives in Canada the cost of sending the book equals the price of buying the eBook itself – so I thought that I would find alternative ways of sending the book to John James.

So, what better way to get the book to John James than by the help of the community? So the book will be transported to Lotusphere and then onwards to John James by the help of Bo Falkenberg and Marie Scott. I will give my review copy of the book to Bo who will bring it from Denmark to Orlando, Florida for the Lotusphere 2010 conference where Marie Scott will take over and bring the book home from Lotusphere in order to finally deliver it to John James!

Enjoy the book, John! 🙂

Update January 28: John has received my review copy thanks to Bo Falkenberg and Marie Scott.

Great resources on XPages

XPages is the impressive new feature in Lotus Notes and Domino 8.5 for web application development – and will be extended to the Notes client in 8.5.1. Did you know that XPages is built upon JSF and the Dojo toolkit?

For great resources and tutorials on XPages make sure to visit and learn from:

Update July 24: more great resources on XPages:

  • Karsten Lehmann shares some very interesting articles on the Mindoo blog on the backend part of XPages  – focusing on the subjects of Java, Servlets and JavaServer Faces (as pointed out by Patrick Kwinten in the comments to this post and by Mikkel Heisterberg in his blog post on JSF in XPages)
  • YouAtNotes has established the YouAtNotes XPages Wiki with tips and tricks on XPages development

How to create a LTPA session cookie for Lotus Domino using F5 BIG-IP

I have previously blogged about how to create a LTPA session cookie for Lotus Domino and now I am finally able to present the code for creating this LTPA cookie that can be implemented on the F5 BIG-IP platform using the F5 iRules Control Language (which builds upon the Tcl scripting language). I created the code by going through a Java library for creating a LTPA cooke created by Miha Vitorovič.

The F5 iRule code is available for you to download – you just need to add the code necessary to do authentication of the user. Check F5 DevCentral for examples on this – for instance this iRule example that does reverse proxy with basic SSO.

Update: Based on this blog post I have created an article on this in the Lotus Notes & Domino wiki per request from Joyce Davis.

The following shows the actual code:

when RULE_INIT {
 set cookie_name "LtpaToken"           # Don't change this
 set ltpa_version "\x00\x01\x02\x03"   # Don't change this
 set ltpa_secret "b64encodedsecretkey" # Set this to the LTPA secrey key from your Lotus Domino LTPA configuration
 set ltpa_timeout "1800"               # Set this to the timeout value from your Lotus Domino LTPA configuration
}

when HTTP_REQUEST {
 #
 # Do your usual F5 HTTP authentication here
 #

 # Initial values
 set creation_time_temp [clock seconds]
 set creation_time [format %X $creation_time_temp]
 set expr_time_temp [expr { $creation_time_temp + $::ltpa_timeout}]
 set expr_time [format %X $expr_time_temp]
 set username [HTTP::username]
 set ltpa_secret_decode [b64decode $::ltpa_secret]

 # First part of token
 set cookie_data_raw {}
 append cookie_data_raw $::ltpa_version
 append cookie_data_raw $creation_time
 append cookie_data_raw $expr_time
 append cookie_data_raw $username
 append cookie_data_raw $ltpa_secret_decode

 # SHA1 of first part of token
 set sha_cookie_raw [sha1 $cookie_data_raw]

 # Final not yet encoded token
 set ltpa_token_raw {}
 append ltpa_token_raw $::ltpa_version
 append ltpa_token_raw $creation_time
 append ltpa_token_raw $expr_time
 append ltpa_token_raw $username
 append ltpa_token_raw $sha_cookie_raw

 # Final Base64 encoded token
 set ltpa_token_final [b64encode $ltpa_token_raw]

 # Insert the cookie
 HTTP::cookie insert name $::cookie_name value $ltpa_token_final
 }

 # Remove Authorization HTTP header to avoid using basic authentication
 if { [HTTP::header exists "Authorization"] } {
 HTTP::header remove "Authorization"
 }
}

How to create your own LTPA session cookie

Lotus Domino uses LTPA as the authentication technology for single sign-on. LTPA involves creating a session cookie that can be used to achieve single sign-on across several servers.

LTPA can also be used in combination with a reverse proxy to authenticate users at the reverse proxy and then be able to forward the authenticated user to backend Lotus Domino servers. The reverse proxy will then have to send a LTPA session cookie along with the HTTP request to the Lotus Domino server. The Tivoli Access Manager Webseal reverse proxy can do just that and supports LTPA.

However, if you use a product that does not support LTPA, then you have to create the LTPA cookie yourself. Daniel Lehtihet has provided the details on how to create a LTPA session cookie in the Domino Experts forum – and Miha Vitorovič from NIL Data Communications has extended this to create a Java library with all the necessary code. In short, a LTPA session cookie consists of the following (with some SHA-1 and Base64 magic on top):

  • LTPA token version
  • Creation time
  • Expiration time
  • User name
  • Domino server secret

I am currently on a project where we plan to use a F5 BIG-Ip application delivery controller to (among many things) authenticate and load balance HTTP requests against backend Lotus Domino servers. The solution will involve forwarding an authenticated user to the Lotus Domino server and this is where this post on creating your own LTPA session cookie comes into play. I plan to use the F5 iRules control language to create a LTPA session cookie when a user has been authenticated and then send this LTPA session cookie along with the HTTP requests to the Lotus Domino server.

Lotus Notes Traveler: easy push mail for Domino

I recentry upgraded a Lotus Domino server to 8.5 and installed Lotus Notes Traveler 8.5 – and the upgraded Domino server was up and running with Traveler loaded within two hours!  Potential mobile clients could then connect and install the provided Traveler client software. However, I do not own a Nokia S60 device or a Windows Mobile device which are the devices currently supported by Traveler. I own an iPhone and eagerly await that an upcoming release of Traveler will support ActiveSync and thereby support push mail for the iPhone.

Lotus Notes Traveler was introduced with the Domino 8.0.1 release and is and now in release 8.5. Traveler is push mail for Lotus Domino and other solutions in the push mail area include Excitor with DME, Visto, Funambol, and of course Blackberry with their Enterprise Server product.

Documentation for Traveler 8.5 is available and the following presentation is a good introduction to the features of the Traveler 8.5 release: