Bootstrapping ID-WSF 2.0 with OpenID Presentation

Posted in Updates, ClientLib by Asa on the May 20th, 2008

IIW Spring 2008 was excellent. The energy was all about collaboration. Cardspace/Infocard, OpenID, and Liberty (SAMLv2/ID-WSF 2.0) were all represented well. The focus was on how to pull these technologies together, leveraging the best parts of each. So the setting was perfect for the convergence demo that I had prepared, bootstrapping ID-WSF 2.0 with OpenID.

The demo was 4 applications:

RED-ID an OpenID Provider (OP) and an ID-WSF Client, providing attributes through OpenID Attribute extensions which originated from the user’s ID-WSF Profile Service.

PAdMan a relying party (RP) Personal Address Manager built on top of ID-WSF, using the user’s ID-WSF Personal Profile service, bootstrapped from an endpoint reference provided by the OP.

ID-TELE an identity aware telco RP that understands how to pull address data from the ID-WSF personal profile service, and how to set up a subscription for an address change.

DUDEyll a twitter RP.

I demonstrated OpenID SSO passing attributes supplied by an ID-WSF layer, and then some deeper usage of the Personal Profile Service across all 4 apps.

The write up and a PDF download is here.

beta!!!

Posted in Updates, ClientLib by Asa on the February 25th, 2008

Hardcastle deploys the betaThis is the official announcement for the beta release of the ID-WSF 2.0 ClientLib! We have been working like mad to get this release out (hence the photo with this post). Lots of new code was cut, lots of old code was gutted or reworked, and there are many new features.

This release marks excellent progress, but there is still a lot of work to do. The beta is not bug free nor is it thoroughly tested. It is ready for other people to sink their teeth into and give feedback, make requests, or write some code. For development purposes we are currently testing against two ID-WSF WSPs and have access to a third (HP Select Federation) which we hope to have working with the library before Version 1 release planned later this year.

This beta would not have been possible without help from a number of people. Notably Conor Cahill, Sampo Kellomäki, and Scott Cantor & the OpenSAML guys. Luckily these people also wrote many of the specifications documents.

What’s New:

  • Liberty SOAP Bindings fully implemented
  • Handling of CredentialsContext
  • Handling of EndpointUpdate
  • Added WSFMessageSigner
  • TLS and ClientTLS support
  • Bearer & SAMLv2 Support (Signing!)
  • CRAM-MD5 SASL Authentication
  • Addition of ID-SIS-DAP XML Tooling and basic Service Client
  • Addition of WSCUtilities to simplify basic ID-* operations
  • Simplified approach to creating OpenSAML XML Tooling classes (Element, marshaller, unmarshaller, and builder as a self contained unit)
  • javadoc now available
  • sample code available
  • switched from HttpURLConnection to not-yet-commons-ssl for transport
  • Added BaseServiceClient
  • Reworked the website to get you to the code faster
  • Testing has begun with Symlabs Federated Identity

What remains:

  • Lots of testing
  • Liberty Certification
  • OpenLiberty public testing environment
  • compress the Tooling Objects that rely on 4 classes into 1 as per the new method
  • sample application using the library
  • more utility methods
  • Build out: ID-SIS-DAP, People Service
  • More Service Clients: ID-SIS SMS and MMS, Contact Book (ID-SIS-CB), SSOService …

If you have questions or interest, please send me a note at asa.openlibertyREMOVEIT@zenn.net (remove the REMOVEIT from the email).

Also, I will be in Santa Clara at the Liberty Alliance plenary meeting, all week. On Monday I’ll be presenting the library. If you are in the area or at the plenary and you want to check it out, do some coding, interop, anything just send me a note and I’ll send you my cell #.

Bulding ID-SIS-DAP

Posted in Updates, ClientLib by Asa on the February 9th, 2008

The BETA deadline (February 16th) is rapidly approaching! With this in mind there are two major goals. The first is to have signing enabled and the second is to have an ID-SIS-DAP service client(SC) available. Development on the ID-SIS-DAP SC is going very well and has been a good learning experience. Here’s why:

The ID-WSF2.0 ClientLib uses OpenSAML xmltooling, ws, and saml libraries. There are no xsd code generators for the java-xmltooling classes, so I have spent a great deal of time becoming acquainted with the xsd for the various liberty specifications. I also spend a lot of time writing marshallers, unmarshallers, and builders. So for each element, there is the potential for 4 files. This gets big really fast. With the ID-SIS-DAP SC I began to embed the marshaller, unmarshaller, and builder inside the element class as static internal classes. Yay!! This has taken care of a tremendous amount of clutter, and generally helps with readability.

If you are using OpwnSAML’s java-xmltooling and you want to use this method, make sure that the classes are static, and reference the internal classes in the config file like this:

<MarshallingClass className=”org.openliberty.xmltooling.idsis.dap.DAPModifyItem$Marshaller” />

Notice the “$” between DAPModifyItem and Marshaller. This indicates that Marshaller is an internal class to DAPModifyItem.

Oh, and from Chad at OpenSAML:

The Java OpenSAML 2.0 Release Candidate 2 release is now available at the normal download site.

http://shibboleth.internet2.edu/downloads/opensaml/java/

This release includes minor bug fixes found in RC1 and includes the generated javadocs. This is the last release candidate and the next release will be the final 2.0 release.

The ClientLib tests fine with RC2.

ClientLib Interop at January TEG Interim with Symlabs

Posted in Updates, ClientLib by Asa on the January 31st, 2008

Late news, but still very relevant. Earlier this month we took the alpha to Boston for a presentation at the Jan 8-10 TEG Interim, and interoperability testing with Symlabs Federated Identity Suite. We also made a visit to Parity Communications to meet with members of the Higgins Project to discuss some project synergies. Brett will follow with a post that has more details.

The presentation at the TEG Interim lasted about an hour and covered as many aspects of the project as possible. We discussed the website and the tools we’re using for collaboration, we went through some code, specifically the non standard DST 2.1 based Profile Service, and discussed briefly the trajectory of the project as a whole. Our next deadline (BETA), approaching quickly, is two days after Valentine’s Day, February 16th!!!! Not sure why we keep choosing deadline right around holidays, but there you have it.

The big news from going to Boston was having a chance to meet with Sampo Kellomäki, the Chief Architect at Symlabs. Sampo is extremely knowledgeable in the development and practice of ID-WSF and has written several Liberty specifications. He also has an open source project ZXID, which is aiming for a full stack implementation of all federated identity management and identity web services protocols. ZXID is written in c and supports PERL, PHP, and Java. It is 95% ID-WSF 2.0 feature complete. We are planning on testing with ZXID as soon as possible, using the Java support.

In Boston Sampo and I tested the ClientLib against Symlabs Federated Identity Suite. We successfully authenticated using the Symlabs AS and pulled a Discovery EPR. We then used the Discovery EPR to get another Discovery EPR from the DS. This was fun, and it all went off really well. So, we went to Boston and celebrated. The next day we did some more work and were able to use the DST 2.1 reference implementation to create a ID-DAP query and parse the response. ID-DAP (which is part of Symlabs Federated Identity) provides federated identity based access to an LDAP directory. It is a great example of an in production service that utilizes DST 2.1.

Overall it was a very successful trip. I learned a lot, did some testing, made some friends, and came back to Berkshire County in one piece. Keep your eyes open for the BETA an Feb 16th!

WSC ClientLib Alpha Delivered!!

Posted in Updates, ClientLib by Curtis on the January 2nd, 2008

We are very pleased to announce that, after many setbacks and challenges, the ClientLib Alpha is now available online! As of this build, it is possible to use the AS client and the DS client with Conor Cahill’s WSP. The Personal Profile Service Client (operating on DST 2.1) is now complete — and there is now a shell of a People Service Client as well.

To enable you to begin experimenting with this build, we’ve put together a simple quick start, involving 5 simple steps. Please feel free to take a look and let us know what you think, but bear in mind that this is still Alpha code!

New IGF Attribute Service API Draft Proposal

Posted in Updates, IGF by pjdhunt on the October 12th, 2007

A new draft of the IGF Attribute Services API (aka CARML API) has been posted. Also, a couple examples of uses of the IGF “stack” have been added to the wiki.

Your comments and feedback greatly appreciated!

Enjoy.

New “Further Reading” Section Added To IGF Wiki

Posted in Updates, IGF by pjdhunt on the September 23rd, 2007

Prateek Mishra has contributed a new further reading section to the IGF Wiki. Check it out here.

IGF Joins The openLiberty Project!

Posted in Updates, IGF by pjdhunt on the July 26th, 2007

This marks my first post, and the start of the IGF Project at openLiberty.

The Identity Governance Framework (IGF) is now the second project at openLiberty.org. IGF will help you enable your identity-consuming applications to bind governance policies (consent and constraints) to the identity data you receive and ensure those policies are enforced whenever any other IGF-enabled application tries to access that data at a later time.

From today’s press release

“Consisting of nearly 50 subscribers with leadership and representation from HP, Intel, Internet2/Shibboleth and OpenSAML, openLiberty.org is an open source community open to everyone interested in advancing open source Liberty Web Services and now IGF implementations. openLiberty.org will develop a set of open source libraries and technologies based on the Apache 2.0 license that developers and vendors can use to build products that consume, provide and manage identity-related information based on the IGF protocols. Developers, individuals and organizations can get more information and join the openLiberty.org IGF community here.”

A brief overview of the market requirements use case document is available here.

For those of you wanting to follow updates to the IGF project, keep an eye on this blog. I will also continue to post more general articles over at the IdentityPrivacy blog.

I also want to thank all of the Liberty member organizations who have contributed to getting the Market Requirements Document done. Their contributions have really begun to crystalize the IGF requirements. Now we all have to work hard to make IGF “real” through actual implementation and standards definition!

Other sites of interest:

…/Phil

First Check in!

Posted in Updates by Asa on the July 12th, 2007
The value of a good editor
The value of a good editor!

Last night we checked in the first lines of code for the project on our project site on sourceforge! The code is primarily the ID-WSF EndpointReference modeled with XML Tooling. It requires three projects from OpenSAML, java-xmltooling, java-opensaml2, and java-openws. The great thing is that the saml2 assertion and the soap envelope came for free from the OpenSAML libs.

My spouse pointed out the text on the back of the boat pictured to the left. It was too good not to send your way. Imagine, ruining a perfectly good boat!

May 23rd Washington Results

Posted in Updates, meeting by Asa on the June 13th, 2007

The meeting was held on Wednesday 23-May-07 in a very nice conference facility in the same Georgetown University building that houses Chad’s office. We got started at 10:00AM.

We covered a lot of ground. Topics included OpenID bootstrap, OpenSAML XML Tooling, Conor Cahill’s ID-WSF client, and code generation. It was maintained that the SAML bootstrap is top and first priority, but that the requirements for OpenID bootstrapping would be very much the same as far as the ID-WSF Client is concerned.

XML TOOLING NOTE

OpenSAML’s XML Tooling creates a complete object graph based on the element structure of the XML. Unmarshalling and Marshalling are used to go from DOM based XML to Java Objects and back. The design technique that is used by OpenSAML is to break down every single element into a set of classes/objects that handle the various details of each. This can get extremely detailed. Take this XML:

<house>
  <floors>
    <floor name=”basement”>
      <room squarefeet=”40″ doors=”" windows=”" type=”bathroom” />
      <room squarefeet=”120″ doors=”" windows=”" type=”closet” />
    </floor>
    <floor name=”first floor”>
      <room squarefeet=”40″ doors=”" windows=”" type=”bathroom” />
      <room squarefeet=”120″ doors=”" windows=”" type=”kitchen” />
    </floor>
  </floors>
</house>

The code above would be supported by 5 classes for each of the following elements: house, floors, floor, and room. For example, you might take “House” and create:

HouseXMLObject.java (The object created for the element “house”)
HouseXMLObjectBuilder.java (builds the XMLObject)
HouseXMLObjectValidator.java (any validation done here)
HouseXMLObjectUnmarshaller.java (DOM element “house” to java object)
HouseXMLObjectMarshaller.java (facilitates java object to DOM element)

Each of these is registered in a config document which will identify the role that each class plays to the underlying xml tooling engine. One concern the development group had was that this level of detail might not be great for performance. Chad agreed that we might look into not building classes for some subelements.

The full notes are posted here on the wiki:
May 23rd Washington Face to Face Notes

Next Page »