Implementing a Shibboleth Identity Provider and Service Provider