OpenSSO identity provider for Information Cards. This server hosts OpenSSO Security Token Service (IP/STS) and Information Card issuing servlet. Currently, configuration of the IP/STS is somewhat complex. This will improve as the code is developed further. -------------------------------------------------------------------------------- There are several libraries required to build the authnicip extension. Create a directory named lib under the authnicip root (opensso/extensions/authnicip) containing the following JAR files: -------------------------------------------------------------------------------- xmldap-1.0.jar: The Xmldap.org code can be retrieved from the 'openinfocard' project at http://code.google.com/p/openinfocard/ To build: svn checkout http://openinfocard.googlecode.com/svn/trunk/ \ openinfocard-read-only cd openinfocard-read-only/ant ant Copy xmldap-1.0.jar from openinfocard-read-only/build/xmldap-1.0/ to lib opensso.jar: opensso-sharedlib.jar openfedlib.jar fam.jar The above files can be retrieved from the /WEB-INF/lib or by downloading and building the OpenSSO source. webservices-api.jar webservices-rt.jar You should get these files from the latest Metro 1.2 nightly build - see http://tinyurl.com/5vr2pm j2ee.jar: Copy this from your application server's lib directory or download the Java EE 5 SDK from http://java.sun.com/javaee/downloads -------------------------------------------------------------------------------- Build authnicip -------------------------------------------------------------------------------- cd opensso/extensions/authnicip ant -------------------------------------------------------------------------------- To install Security Token Service and Information Card issuing servlet in OpenSSO: -------------------------------------------------------------------------------- 1 - Install OpenSSO (Download latest OpenSSO v1 build from https://opensso.dev.java.net/public/use/index.html or build from source). 2 - Configure the OpenSSO web application with "https" protocol, rather than http. This is important - a CardSpace STS MUST be deployed on an https URL! 3 - Copy contents of xml/web.xml into /WEB-INF/web.xml in section. Change "path to sun_logo_rgb.gif" to appropriate image path on the server. on Glassfish will be something like /domains/domain1/applications/j2ee-modules/opensso/ 4 - Merge the contents of build/dist/Authnicip.jar into OpenSSO's fam.war. You can use the following sequence of commands for this: mkdir $TMPDIR/fam cd $TMPDIR/fam jar xvf /WEB-INF/lib/fam.jar jar xvf /opensso/extensions/authnicip/build/dist/Authnicip.jar jar cvf /WEB-INF/lib/fam.jar * rm -r $TMPDIR/fam 5 - Copy lib/xmldap-1.0.jar into /WEB-INF/lib 6 - (Optional) Copy your keystore.jks file into /WEB-INF/template/keystore Make sure your keypass and storepass is "secret" and certificate alias is "test". You can use the default OpenSSO keystore.jks for testing - note that the token signing cert must be the same as the SSL cert!!! 7 - Copy all files under images/ into /images 8 - Edit the /WEB-INF/wsdl/famsts.wsdl file to define - Required binding type at "" - Required Authentication token at "" - Required Validation configuration at "" You can use wsdl/famsts.wsdl as a starting point - this default wsdl configures CardSpace username/password authentication with TransportBinding. 9 - Add a binding attribute with value "http://www.w3.org/2003/05/soap/bindings/HTTP/" to the element in /WEB-INF/sun-jaxws.xml, so it looks like this: 10 - Reload the OpenSSO web application. If you have used autodeploy on Glassfish to deploy OpenSSO, you can simply do touch /.reload 11 - Login to OpenSSO Administration console (e.g. https://server.example.com:8181/opensso) as "amadmin" user. Go to Configuration → Agents → Web Service Provider → click "wsp" agent profile → set "Authentication chain" as "ldapService" from the available drop down list. Note that the 'security mechanism' on this screen controls the default token type. 12 - Go to Configuration → Global → Security Token Service → change the value of "Token Implementation Class" attribute to "com.sun.xml.ws.security.trust.impl.ic.ICContractImpl" You should also verify that the certificate alias and issuer URL on this screen match your configuration. 13 - Access https://server.example.com:8181/opensso/GetCard This will redirect to OpenSSO Authentication service. Authenticate using any existing OpenSSO user. Upon successful authentication, an InfoCard for the authenticated OpenSSO user will be issued. 11 - You can use this saved OpenSSO InfoCard to login to any RP (e.g. https://xmldap.org/relyingparty) which accepts Infocard login. For further explanations please email dev@opensso.dev.java.net