To enable Shibboleth single sign-on for a Vista/CE installation, you must install the Shibboleth authentication module for Vista/CE. The Shibboleth authentication module (a.k.a. PowerLink) validates the incoming Shibboleth ticket, sets the Vista/CE username to the username (net ID) that Shibboleth provides, and redirects the user to the My Blackboard page. This document explains how to configure the plugin and the Shibboleth identity provider.
Thanks to Bonnie Ferguson (b.ferguson@kent.ac.uk) for providing these instructions.
vista-server.example.org) You must have the usernames and passwords for the
serveradmin and institution admin accounts in order to configure the authentication module
and logging settings. The URLs for logging in to Vista/CE are:
http://<vista_host_and_port>/webct/logonDisplay.dowebct (serveradmin)http://<vista_host_and_port>/webct/ (admin)shibidp.example.org). You will need to be able to access the configuration and logs. You
will need the following Shibboleth IdP values (from the idp.xml file):
NOTE: You do not need a separate Shibboleth Service Provider. The Shibboleth module turns WebCT into a Service Provider.
NOTE: The original Shibboleth authentication module is still available but it should not be used due to certain limitations.
shibbolethsso.jar)
is located in the dist directory.<WebCTDomain>/deployablecomponents
directory called shibbolethsso.commons-codec-1.3.jar and shibbolethsso.jar files into this directory.serveradmin
and go to the Settings tab. | Enable | true |
| Shibboleth AA url | Change this to the Shibboleth Identity Provider's attribute authority that the module
will contact for the user attributes, such as the UserId. This value can be
found in the idp.xml file. For example:
|
| Shibboleth Origin URI |
Origin is the Shibboleth 1.2 name for the Identity Provider, so use the
providerId that is configured at the beginning of the Shibboleth identity Provider's idp.xml file.
If your Shibboleth IdP has been registered with a
federation such as InQueue, the providerId is the URI that was assigned by InQueue when you were accepted
into the federation. Configuring a single Identity Provider limits us to using
only one, though you can probably replace this with the federation WAYF URL.
|
| Shibboleth UserID Attribute |
If necessary, change this value to the LDAP attribute that you are using as the Vista/CE username.
For example, urn:mace:dir:attribute-def:uid.
|
| SHIRE URI used for Authorization | Set this to the URL used to invoke the authentication module. For example:
http://vista-server.example.org:80/webct/urw/ssinboundShibboleth.si<ims_id>.sn<ims_name>/cobaltMainFrame.dowebct SHIRE is the Shibboleth 1.2 term for the "Shibboleth Indexical Reference Establisher". This attribute is not currently being used, because it is being set in the URL that we build later, but it seems good practice to have the correct value for this attribute. |
serveradmin, go to the Logging
tab, and set the following loggers to DEBUG level:
VistaSDKcoreservice.securitycoreservice.deployablecomponentsadd a new logger and set the log level to DEBUG: com.webct.sso.shibboleth.ShibbolethInboundModule
The log messages will be output to <WebCTDomain>/logs/webct.log
and <WebCTDomain>/logs/webct_sdk_log.log. The first one will have all the really
interesting messages. The second contains message relating to the deployment of the authentication
module.
metadata.xml file so that
it recognises the attribute request coming from Vista/CE. For example:
<AssertionConsumerService
Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post"
Location="http://vista-server.example.org:80/webct/urw/ssinboundShibboleth.siURN:X-WEBCT-VISTA-V1:c4d1111-810c-c843-111-1112da97e1cb.snWebCT/cobaltMainFrame.dowebct"
index="2" />
html directory of the Shibboleth module as a base
for your custom login page.
The login form must be submitted to the URL that will trigger Shibboleth authentication. This URL consists of:
https://shibidp.example.org/shibboleth-idp/SSO)http://vista-server.example.org:80/webct/urw/ssinboundShibboleth.si<ims_id>.sn<ims_name>/cobaltMainFrame.dowebct &
There are a couple ways to find the institution's IMS ID and name. One is to log in to Vista/CE as the domain
administrator and view the institution's properties. Another is to run siapi.sh p
from the command line (in the WebCT domain directory).
http://vista-server.example.org:80/webct)
NOTE: You must include a non-empty target parameter in the query string, even though
the value is not used.
Escape sequences must be used to replace the ":" and "/" characters in the query string (: = %3A and / = %2F), resulting in something like this:
https://shibidp.example.org/shibboleth-idp/SSO?shire=http%3A%2F%2Fvista-server.example.org%3A80%2Fwebct%2Furw%2FssinboundShibboleth.siURN:X-WEBCT-VISTA-V1:c4d61116-111c-c111-1118-21c2da97e1cb.snWebCT%2FcobaltMainFrame.dowebct&target=http%3A%2F%2Fvista-server.example.org%3A10080%2Fwebct
IMPORTANT: Only add this custom page once you are sure that it works, otherwise you could lock yourself and your users out of WebCT.
serveradmin.Testing the Shibboleth module in stages (taken from The Powerlinks developers network FAQ)
How do I know whether an authentication module is properly deployed?
1. Does the module show up in server-level SMS, under the "System Integration" Column?
2. Has the deployable component been enabled?
3. Has the "Master Switch" for deployable components been enabled (also in server-level SMS, under the "Deployable Components" settings group)
4. Has the Default SSO Institution been specified?
5. Can you hit your deployable component from a browser, by going to the URL
http://<vista_host_and_port>/webct/urw/ss<url_pattern>.si<ims_id>.sn<ims_name>? (Note: the authentication attempt will probably fail, but you should see in the log whether or not the request is reaching your AuthModule)
Common Error messages in the Shibboleth Identity Provider log:
| Error | What to check |
|---|---|
The name qualifier (wrong entry) for the referenced
subject is not valid for this identity provider
|
Your Shibboleth Origin URI is incorrectly specified in
your module, log in to Vista/CE as serveradmin and change the Shibboleth module's
Origin URI setting.
|