Hi,
I am setting up Keycloak to authenticate users federated from Active Directory. Keycloak is connected to AD, and users have been imported.
Both Keycloak and cBioPortal are deployed via Docker-Compose and accessible behind an Apache front end (also Dockerized). The reverse proxy listens on https://myserver.edu:443 for cBioPortal and https://myserver.edu:444/auth for Keycloak.
The Keycloak client, cbioportal, settings are as indicated in the instructions and:
Valid Redirect Urls: https://myserver.edu/*, https://myserver.edu:443/*
Logout Service POST Binding URL: https://myserver.edu:443/saml/logout
I had set the Master SAML Processing URL to https://myserver.edu:444/auth/realms/cbioportal, but since that setting is only depicted in the image and not in the actual instructions, I removed it. (https://docs.cbioportal.org/2.2-authorization-and-authentication/authenticating-and-authorizing-users-via-keycloak)
Here is the SAML section from portal.properties. When I set entitybaseurl, the error indicates, “No IDP was configured, please update included metadata with at least one IDP.” When I leave it blank, the error indicates “java.net.MalformedURLException: no protocol: /saml/login.”
# No IDP configured when entitybaseurl is enabled... but it has to be there as a placeholder...
# saml.sp.metadata.entitybaseurl=#{null}
# saml.sp.metadata.entitybaseurl=
saml.sp.metadata.entitybaseurl=https://myserver.edu:444/auth/realms/cbioportal/
filter_groups_by_appname=false
saml.sp.metadata.entityid=cbioportal
saml.sp.metadata.wantassertionsigned=true
saml.idp.metadata.location=classpath:/client-tailored-saml-idp-metadata.xml
saml.idp.metadata.entityid=https://myserver.edu:444/auth/realms/cbioportal
saml.keystore.location=classpath:/samlKeystore.jks
saml.keystore.password=***
saml.keystore.private-key.key=secure-key
saml.keystore.private-key.password=***
saml.keystore.default-key=secure-key
saml.idp.comm.binding.settings=defaultBinding
saml.idp.comm.binding.type=
saml.idp.metadata.attribute.email=email
saml.idp.metadata.attribute.role=Role
saml.custom.userservice.class=org.cbioportal.security.spring.authentication.keycloak.SAMLUserDetailsServiceImpl
# global logout (as opposed to local logout):
saml.logout.local=false
saml.logout.url=/
Also, and I am not sure that this is relevant, when I access the saml.idp.metadata.entityid URL, https://myserver.edu:444/auth/realms/cbioportal, I see the following JSON object:
{"realm":"cbioportal","public_key”:”***”,”token-service":"https://myserver.edu:444/auth/realms/cbioportal/protocol/openid-connect","account-service":"https://myserver.edu:444/auth/realms/cbioportal/account","tokens-not-before":0}
Should the token-service refer to openid-connect? That URL displays page not found.
If, however, I change URL to https://cras-dev.kcr.uky.edu:444/auth/realms/cbioportal/protocol/saml, I see “Invalid Request,” which seems promising…
Any help would be most welcome.
Thank you,
bront
--
You received this message because you are subscribed to the Google Groups "cBioPortal for Cancer Genomics Discussion Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cbioportal+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/61ab452a-166e-4c6f-8dbd-5e5b933c00ban%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/cb77f0a9-4b86-4606-956f-d798e3d7057bn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/b3b27222-2503-460d-a418-033b8a4cc044n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/5eb52de0-4f8b-4491-91eb-b8f56b38ea8bn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/c36e176c-9969-4da9-8cbc-8451cd37b218n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cbioportal/de5e28cc-fd71-4732-81a5-18caa460171fn%40googlegroups.com.