Thanks Christopher and Paul for the quick responses.

I couldn't solve the error that I was getting with the RemoteUser login option
"Invalid content was found starting with element 'LoginHandler'. One of 
'{"urn:mace:shibboleth:2.0:idp:profile-handler":LoginHandler}' is expected"

So, as Paul suggested, I installed Unicon's shib-cas-authn2 package (the CAS 
plugin) and now our default gateway does come up but authentication fails with 
error:

javax.security.auth.login.LoginException: No LoginModules configured for 
ShibUserPassAuth
        at javax.security.auth.login.LoginContext.init(LoginContext.java:287) 
~[na:1.6.0_32]
        at javax.security.auth.login.LoginContext.<init>(LoginContext.java:432) 
~[na:1.6.0_32]

Thanks again for any help or tips.

Niva

From: Christopher Myers [mailto:[email protected]]
Sent: Wednesday, March 18, 2015 1:59 PM
To: [email protected]
Subject: Re: [cas-user] Casifying Shib (idP)

I am not an expert in this, so I might not be able to be of much help. But 
conveniently, I did just complete this process last week and it seems to work 
fine. Here are the notes I took along the way, using CAS 4.0.1 and shib 2.4.4:





Configuring Tomcat: 
https://spaces.internet2.edu/display/SHIB2/IdPApacheTomcatPrepare

Download the IDP source zip file from: 
http://shibboleth.internet2.edu/downloads/shibboleth/idp/latest/
Extract it to /opt/shibboleth-src/


Download the tomcat6-dta-ssl-1.0.0.jar file from 
http://shibboleth.internet2.edu/downloads/maven2/edu/internet2/middleware/security/tomcat6/tomcat6-dta-ssl/1.0.0/tomcat6-dta-ssl-1.0.0.jar
 into the /usr/share/tomcat6/lib folder
Edit /usr/share/tomcat6/conf/server.xml, add the following connector:

<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
SSLImplementation="edu.internet2.middleware.security.tomcat6.DelegateToApplicationJSSEImplementation"
scheme="https"
SSLEnabled="true"
clientAuth="true"
keystoreFile="/opt/shibboleth-idp/credentials/idp.jks"
keystorePass="changemeplease" />




Install the IDP: https://spaces.internet2.edu/display/SHIB2/IdPInstall

Run ./install.sh from where you extracted the IDP source from above.
--This will installed to /opt/shibboleth-idp by default
--Enter the fdn of the server
--Enter the password you want to use for the keystore (make sure it's the same 
one as you used in the tomcat config file change above.)
--Restart tomcat after this is done, but before deploying the war file so that 
the new connector will come online
--Move the idp.war file from /opt/shibboleth-idp/war/ into 
/usr/share/tomcat6/webapps/

To verify that the IDP was installed correctly, browsing to this page: 
http://servername.domain.edu/idp/profile/Status should say "ok"




Connect Shibboleth to CAS: 
http://www.ja-sig.org/wiki/display/CASUM/Shibboleth-CAS+Integration

Download the latest cas-client-x.x.x.zip from 
http://www.ja-sig.org/downloads/cas-clients/
Copy cas-client-x.x.x/modules/cas-client-core-x.x.x.jar to 
/opt/shibboleth-src/lib/

Edit /opt/shibboleth-idp/conf/handler.xml, add:
<!-- Remote User handler for CAS support -->
<LoginHandler xsi:type="RemoteUser">
<AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</AuthenticationMethod>
<AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMethod>
</LoginHandler
to the LoginHandler section.

Edit /opt/shibboleth-src/src/main/webapp/WEB-INF/web.xml, add the following to 
the "context-param" section:

<!-- For CAS client support -->
<context-param>
<param-name>serverName</param-name>
<param-value>shib_server.domain.edu</param-value>
</context-param>

Add the following to the "filter" section:

<!-- CAS client filters -->
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://cas_server.domain.edu/cas/login</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/Authn/RemoteUser</url-pattern>
</filter-mapping>

<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://cas_server.domain.edu/cas/</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/Authn/RemoteUser</url-pattern>
</filter-mapping>

<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/Authn/RemoteUser</url-pattern>
</filter-mapping>






To re-deply Shibboleth after making these changes:

run /opt/shibboleth-src/install.sh
Hit <return> when prompted for the location for the IDP software install 
location (answer is for /opt/shibboleth-idp)
Hit <return> when asked if you want to overwrite the Shibboleth config (answer 
is for "no")
Move the idp.war file from /opt/shibboleth-idp/war/ to 
/usr/share/tomcat6/webapps/





When you're testing with testshib.org, if you get random errors trying to 
deploy the war after changing the relying-party.xml file while following the 
instructions at https://www.testshib.org/testshib-two/configure.jsp - make sure 
the file used in "something like testshib.xml" is owned by tomcat:tomcat

ALSO COMMENT: Make sure to copy relying-party.xml.prod back to 
relying-party.xml when done testing!!







If you're pointing to a CAS with a self-signed cert, you can run this:

/usr/lib/jvm/java-1_6_0-ibm-1.6.0/jre/bin/keytool -import -aliasmyalias  
-keystore /usr/java/latest/jre/lib/security/cacerts -file 
/home/installers/my_root.cer

(where my_root.cer is a b64 version of the self-signed root CA cert)

if you get errors like:

SEVERE: Servlet.service() for servlet RemoteUserAuthHandler threw exception
Throwable occurred: java.lang.RuntimeException: 
javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.g: PKIX path building 
failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl 
could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by 
OU=Organizational CA, O=MY_ROOT is not trusted ...







If you get errors like:

Unable to establish security of incoming assertion.

Look at your /opt/shibboleth-idp/conf/relying-party.xml file and make sure your 
AnonymousRelyingParty and DefaultRelyingParty providers match the actual 
hostname, etc.

http://groups.google.com/group/shibboleth-users/browse_thread/thread/e3665fb0f9b23265?pli=1



--

You are currently subscribed to 
[email protected]<mailto:[email protected]> as: 
[email protected]<mailto:[email protected]>

To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to