commit | author | age
|
0cc9a0
|
1 |
# keycloak-protocol-cas |
MP |
2 |
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. |
|
3 |
|
b8c874
|
4 |
[![Build Status](https://travis-ci.org/Doccrazy/keycloak-protocol-cas.svg?branch=master)](https://travis-ci.org/Doccrazy/keycloak-protocol-cas) |
MP |
5 |
|
1482f2
|
6 |
## Features |
0cc9a0
|
7 |
The following CAS features are currently implemented: |
MP |
8 |
* CAS 1.0/2.0/3.0 compliant Login/Logout and Service Ticket Validation |
b8c874
|
9 |
* Single Logout (SLO) |
0cc9a0
|
10 |
* Filtering of provided `service` against configured redirect URIs |
MP |
11 |
* JSON and XML response types |
|
12 |
* Mapping of custom user attributes to CAS assertion attributes |
|
13 |
|
b8c874
|
14 |
The following features are **currently missing**: |
3f0be1
|
15 |
* [#1](/../../issues/1): SAML request/response [CAS 3.0 - optional] |
D |
16 |
* [#2](/../../issues/2): Proxy ticket service and proxy ticket validation [CAS 2.0] |
4e2fd6
|
17 |
|
D |
18 |
The following features are out of scope: |
0cc9a0
|
19 |
* Long-Term Tickets - Remember-Me [CAS 3.0 - optional] |
MP |
20 |
|
3f0be1
|
21 |
## Compatibility |
ea64d6
|
22 |
The CAS plugin has been tested against the following Keycloak versions. Please ensure your version is compatible before deploying. |
D |
23 |
Please report test results with other versions! |
|
24 |
|
3f0be1
|
25 |
* For Keycloak **2.5.x, 3.0.x and 3.1.x** please use plugin version **1.0.0** |
D |
26 |
* For Keycloak **3.2.x, 3.3.x and 3.4.0** please use plugin version **2.1.0** |
|
27 |
* Starting from Keycloak **3.4.3**, the plugin version should **match your Keycloak version** |
|
28 |
|
|
29 |
## Installation |
|
30 |
Installation of a compatible plugin version is simple and can be done without a Keycloak server restart. |
ea64d6
|
31 |
|
D |
32 |
1. Download the latest release compatible with your Keycloak version from the [releases page](https://github.com/Doccrazy/keycloak-protocol-cas/releases) |
|
33 |
2. Copy the JAR file into the `standalone/deployments` directory in your Keycloak server's root |
|
34 |
3. Restart Keycloak (optional, hot deployment should work) |
0cc9a0
|
35 |
|
1482f2
|
36 |
## Configuration |
D |
37 |
To use the new protocol, you have to create a client within Keycloak as usual. |
ea64d6
|
38 |
**Important: Due to [KEYCLOAK-4270](https://issues.jboss.org/browse/KEYCLOAK-4270), you may have to select the `openid-connect` protocol when creating the client and change it after saving. This has been fixed in Keycloak 3.0.0.** |
0cc9a0
|
39 |
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. |
MP |
40 |
|
|
41 |
Enter `https://your.keycloak.host/auth/realms/master/protocol/cas` as the CAS URL into your SP. |
|
42 |
|
1482f2
|
43 |
## Disclaimer |
D |
44 |
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. |
0cc9a0
|
45 |
It is licensed under the Apache License 2.0. |
MP |
46 |
|
1482f2
|
47 |
## References |
D |
48 |
[1] http://www.keycloak.org |
|
49 |
[2] https://issues.jboss.org/browse/KEYCLOAK-1047 (Support CAS 2.0 SSO protocol) |
|
50 |
[3] https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol-Specification.html |
0cc9a0
|
51 |
[4] https://keycloak.gitbooks.io/server-developer-guide/content/topics/providers.html |