Open Federation

Source Code FAQ

  1. How are the OpenSSO source code, Sun Java System Access Manager and Sun Java System Federation Manager related?
  2. What comprises the OpenSSO code base?
  3. What comprises the amserver source code?
  4. What comprises the federation source code?
  5. On what industry standards is the federation source code based?
  6. What is opensso.zip?
  7. What samples are available for the amserver code?
  8. What samples are available for the federation code?

Q: How are the OpenSSO source code, Sun Java System Access Manager and Sun Java System Federation Manager related?

The OpenSSO source code is based on the code released as Sun JavaTM System Access Manager 7.0 (including components under development for 7.1) and Sun Java System Federation Manager. Sun Microsystems, Inc. has provided the source code of these products to the Java developer community on a free right-to-use basis. (Prior to release, there were changes made because of third-party source code that cannot be redistributed but these changes were minimal.) The forthcoming Federated Access Manager 8.0 (the combined Access Manager and Federation Manager) will be built from the OpenSSO source - just as Sun Java System Application Server is built from Glassfish). When Sun decides that OpenSSO contains the features we want to use in the next release, we will branch the code and stabilize the release branch, all in public. New feature development can and will continue on the trunk and fixes in the Sun release branch will be copied back to the OpenSSO trunk.

Q: What comprises the OpenSSO code base?

When you browse the products branch of the source code, you see the following directories pertaining to the OpenSSO product code itself:

  • amserver contains the code for session management, policy, authentication, console, administration tools, auditing and other non-federation related features.
  • federation contains the code for federation related features. This includes those based on the Liberty Alliance project protocols and SAML. There are two branches under federation that are used:

    1. The library branch contains the basic framework for identity federation and its associated web services. The code provides an extensible and pluggable infrastructure for integrating the functionality with existing systems. The library code is dependent on the shared branch for building.
    2. The openfm branch provides an implementation of the framework in the library branch. It delivers a single WAR deployable on any J2EE web container as well as easy to setup samples for getting the system up and running.
  • installtools contains code for installation and configuration functions necessary for deployment of the web archive (WAR).
  • j2eeagents contains code for the policy agents developed for J2EE containers.
  • legacy contains code for the legacy command line interface. This code will be phased out over time.
  • shared contains Java archive (JAR) files of third-party libraries. Any JAR placed in this directory is automatically included in the workspace compilation classpath.
  • webagents contains code for the policy agents developed for web containers.
  • wssagents contains code for the web services security agents.

Q: What comprises the amserver source code?

When you browse the amserver branch of the source code, you will see code for session management, policy, authentication, console, administration tools, auditing, the Client SDK, and the remote Distributed Authentication User Interface.

Q: What comprises the federation source code?

When you browse the federation branch of the source code, you see the following directories:

  • The library branch contains the basic framework for identity federation and its associated web services. The code provides an extensible and pluggable infrastructure for integrating the functionality with existing systems. The library code is dependent on the shared branch for building.
  • The openfm branch provides an implementation of the framework in the library branch. It delivers a single WAR deployable on any J2EE web container as well as easy to setup samples for getting the system up and running.

Q: On what industry standards is the federation source code based?

  • Liberty Alliance Project Identity Federation Framework (Liberty ID-FF) v.1.1 and v.1.2 (including identity provider and service provider extended profiles)
  • Liberty Alliance Project Identity Web Services Framework (Liberty ID-WSF) v.1.0 and v.1.1
  • Organization for the Advancement of Structured Information Standards (OASIS) Security Assertion Markup Language (SAML) v.1.0 and v.1.1
  • OASIS SAML v.2.0 (Operational modes: IdP and SP Complete)
  • WS-Federation Passive Requestor Profile v1.1

The following will be supported in future releases:

  • Liberty ID-WSF v.2.0
  • Web Services Interoperability (WS-I) Basic Security Profile (BSP)

Q: What is opensso.zip?

opensso.zip is the built download of the OpenSSO deliverable. After it is decompressed, you will find:

  • opensso.war - the deployable OpenSSO WAR including the applicable source code, images, localized files and the federation samples.
  • Instructions to create other deployable WARs including the Distributed Authentication WAR and the console WAR
  • famclientsdk.jar - the Client SDK JAR including the federation library code which can be used to build a remote federation-based service provider
  • fam-client.zip - Client SDK samples
  • fam-public-javadocs.jar - public Java API reference comments
  • famSessionTools.zip - session failover tools
  • famAdminTools.zip - command line interface

Q: What samples are available for the amserver code?

The following amserver samples are available:

  1. An authentication sample demonstrates logging in and out of the OpenSSO console.
  2. The SSO command line sample creates a new SSO token and displays user attributes.
  3. The SSOToken sample displays the attributes associated with a token ID. It also demonstrates how to set and get token properties.
  4. The identity repository sample demonstrates the use of the AMIdentityRepository class.
  5. The logging sample demonstrates logging to the OpenSSO server.

Q: What samples are available for the federation code?

The following federation samples are available:

  1. The Liberty ID-FF sample demonstrates the interactions involved when federating one user between two instances of Open Federation.
  2. The SAMLv2 sample demonstrates the interactions involved when federating one user between two instances of Open Federation using SAMLv2 protocol.
  3. The Multiple-Federation Protocols sample demonstrates the Single Sign-on and Single Logout use cases where there are multiple federation protocols (e.g. ID-FF, SAMLv2 and WS-Federation) in one circle of trust.
  4. The Liberty ID-WSF sample demonstrates the interactions between a web service client (WSC) and a web service provider (WSP). Specifically, it demonstrates how to query and modify the discovery service, and how to query and modify the Personal Profile service. Additionally, policy driven interactions can be configured to access Personal Profile service attributes using this sample.