From 0cc9a00c6c74522cf670bd3f1492a977d8a598c2 Mon Sep 17 00:00:00 2001 From: Matthias Piepkorn <mpiepk@gmail.com> Date: Fri, 27 Jan 2017 23:25:37 +0000 Subject: [PATCH] Update README / .gitignore --- .gitignore | 55 +++++++++++++++++++++++---- README.md | 38 ++++++++++++++++++ 2 files changed, 84 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 32858aa..32e898b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,51 @@ +# Intellij +################### +.idea +*.iml + +# Eclipse # +########### +.project +.settings +.classpath + +# NetBeans # +############ +nbactions.xml +nb-configuration.xml +catalog.xml +nbproject + +# Compiled source # +################### +*.com *.class +*.dll +*.exe +*.o +*.so -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso *.jar -*.war -*.ear +*.rar +*.tar +*.zip -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* +# Logs and databases # +###################### +*.log + +# Maven # +######### +target + +# Maven shade +############# +*dependency-reduced-pom.xml diff --git a/README.md b/README.md index ea133ff..528d7d0 100644 --- a/README.md +++ b/README.md @@ -1 +1,37 @@ -# keycloak-protocol-cas \ No newline at end of file +# keycloak-protocol-cas +This plugin for Keycloak Identity and Access Management (http://www.keycloak.org) adds the CAS 3.0 SSO protocol as an available client protocol to the Keycloak system. It implements the required Service Provider Interfaces (SPIs) for a Login Protocol and will be picked up and made available by Keycloak automatically once installed. + +# Features +The following CAS features are currently implemented: +* CAS 1.0/2.0/3.0 compliant Login/Logout and Service Ticket Validation +* Filtering of provided `service` against configured redirect URIs +* JSON and XML response types +* Mapping of custom user attributes to CAS assertion attributes + +The following features are **curently missing**: +* Proxy ticket service and proxy ticket validation [CAS 2.0] +* Long-Term Tickets - Remember-Me [CAS 3.0 - optional] +* SAML request/response [CAS 3.0 - optional] + +# Installation +1. Clone or download this repository (pre-compiled releases will follow!) +2. Run `mvn package` to build the plugin JAR +3. Copy the JAR file generated in the `target` folder into the `providers` directory in your Keycloak server's root +4. Restart Keycloak + +# Configuration +To use the new protocol, you have to create a client within Keycloak as usual. +**Important: Due to [KEYCLOAK-4270](https://issues.jboss.org/browse/KEYCLOAK-4270), you have to select the `openid-connect` protocol when creating the client and change it after saving.** +As the CAS protocol does not transmit a client ID, the client will be identified by the redirect URIs (mapped to CAS service). No further configuration is necessary. + +Enter `https://your.keycloak.host/auth/realms/master/protocol/cas` as the CAS URL into your SP. + +# Disclaimer +This plugin was implemented from scratch to comply to the official CAS protocol specification, and is based heavily on the OpenID Connect implementation in Keycloak. +It is licensed under the Apache License 2.0. + +# References +[1] http://www.keycloak.org +[2] https://issues.jboss.org/browse/KEYCLOAK-1047 (Support CAS 2.0 SSO protocol) +[3] https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol-Specification.html +[4] https://keycloak.gitbooks.io/server-developer-guide/content/topics/providers.html -- Gitblit v1.9.1