Yesterday, I said: "...in addition to Carl's task list (for lack of a
better word)..."

My mistake, it was Jan's task list; I didn't scroll back far enough in the
thread.

--Dave


--

DAVID A. CURRY, CISSP
*DIRECTOR OF INFORMATION SECURITY*
INFORMATION TECHNOLOGY

71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
+1 212 229-5300 x4728 • [email protected]

[image: The New School]

On Mon, Jan 29, 2018 at 2:52 PM, David Curry <[email protected]>
wrote:

> For those of you who are new to CAS and looking for some help, in addition
> to Carl's task list (for lack of a better word), I have been making this
> available for anyone who wants it:
>
> https://dacurry-tns.github.io/deploying-apereo-cas/
> introduction_overview.html
>
> It's NOT official, and it's not the only way to do things, but it's pretty
> verbose and step-by-step.
>
> I just updated it the other day with my initial work on doing some high
> availability stuff with MongoDb, so it's up-to-date with CAS 5.2.2-SNAPSHOT.
>
> --Dave
>
>
> --
>
> DAVID A. CURRY, CISSP
> *DIRECTOR OF INFORMATION SECURITY*
> INFORMATION TECHNOLOGY
>
> 71 FIFTH AVE., 9TH FL., NEW YORK, NY 10003
> +1 212 229-5300 x4728 • [email protected]
>
> [image: The New School]
>
> On Mon, Jan 29, 2018 at 2:08 PM, Matthew Uribe <[email protected]>
> wrote:
>
>> Jan,
>>
>> I have to say, as another new arrival to the CAS world, that I agree with
>> your statements, and wish I would have encountered your post several weeks
>> ago. I appreciate the link to guide, and hope that others will find it
>> earlier in their journey than I did.
>>
>> Also, I want to thank all who have contributed directly to the project,
>> as well as here in the group.
>>
>>
>> On Monday, October 30, 2017 at 7:50:43 AM UTC-6, Jan wrote:
>>>
>>> Hello,
>>>
>>> As a new user of CAS, I'd like to voice my opinion that the official
>>> documentation of how one can get started with CAS is just awful. By this I
>>> mean not the lack of it, but rather how indirect, not step-by-step it is.
>>> Clarity could often be improved too.
>>>
>>> In the end I managed to do what I hoped for, ie investigate CAS locally
>>> as an SSO solution, for which I needed to (1) run CAS server locally, (2)
>>> connect and authenticate using a simple CAS client locally, (3) run the
>>> service management app. However, the difficulty I had at most steps of
>>> getting it all to work make me really want to use something else even if I
>>> have to implement parts of it from scratch..
>>>
>>> Only now, when wanting to post this message, did I find this helpful
>>> guide: https://dacurry-tns.github.io/deploying-apereo-cas/ Could the
>>> CAS team incorporate some step-by-step tutorial like this into the official
>>> documentation?
>>>
>>> These threads seem to voice a similar concern:
>>> https://groups.google.com/a/apereo.org/forum/#!searchin/cas-
>>> user/documentation/cas-user/z3BLJ0IQwZ0/wRybEK1LAQAJ
>>> https://groups.google.com/a/apereo.org/forum/#!searchin/cas-
>>> user/documentation/cas-user/qaAINooFi1s/D3k7Pr-7BQAJ
>>>
>>> I'm also posting the notes I made for myself during the process. I
>>> wouldn't have written them if there was something like this available in
>>> official docs, or I had found the unofficial guide earlier. I'm adding ****
>>> to points that took me particularly long to figure out.
>>>
>>> *Building*
>>> - Described here: https://apereo.github.io/cas/d
>>> eveloper/Build-Process.html
>>> - git clone --depth=1 --single-branch --branch=master 
>>> [email protected]:apereo/cas.git
>>> cas-server
>>> - cd cas-server
>>> - git checkout master
>>> - ./gradlew build install --parallel -x test -x javadoc -x check
>>>
>>> *Config*
>>> - Default config dir is /etc/cas/config (may need to be created, given
>>> permissions) If you create application.properties in there, CAS seems to
>>> pick them up. ****
>>> - You can override in there any properties listed on
>>> https://apereo.github.io/cas/development/installation/Config
>>> uration-Properties.html
>>>
>>> *Keys*
>>> - keytool -genkey -alias cas -keyalg RSA -validity 999 -keystore
>>> /etc/cas/thekeystore -ext san=dns:cas-sso.local
>>> - Add 127.0.0.1 cas-sso.local to /etc/hosts
>>> - keytool -export -file /etc/cas/config/cas.crt -keystore
>>> /etc/cas/thekeystore -alias cas
>>> - sudo keytool -import -file /etc/cas/config/cas.crt -alias cas
>>> -keystore $JAVA_HOME/jre/lib/security/cacerts (default password to
>>> cacerts is changeit)
>>> - Add the following lines to application.properties in CAS config dir
>>> (with whatever password you set up for /etc/cas/thekeystore) ****
>>> server.ssl.keyStorePassword=qwer1234
>>> server.ssl.keyPassword=qwer1234
>>>
>>> *Adding JSON service registry (to get a sample client registered)*
>>> - Add line >>compile "org.apereo.cas:cas-server-sup
>>> port-json-service-registry:5.2.0-SNAPSHOT"<< to the file
>>> cas-server/webapp/cas-server-webapp-tomcat/build.gradle, replacing
>>> 5.2.0-SNAPSHOT with whatever version of CAS you have. The version can be
>>> figured out after starting CAS (is displayed). ****
>>> - Recompile the whole thing as above.
>>> - Add the following lines to application.properties in CAS config dir:
>>> ****
>>> cas.serviceRegistry.watcherEnabled=true
>>> cas.serviceRegistry.repeatInterval=10
>>> cas.serviceRegistry.startDelay=1
>>> cas.serviceRegistry.initFromJson=true
>>> - Add json file with service defs in directory
>>> cas-server/webapp/resources/services (the server seems to display which
>>> directory it watches after start).
>>> {
>>>   "@class" : "org.apereo.cas.services.RegexRegisteredService",
>>>   "serviceId" : "http://localhost/.*";, ****
>>>   "name" : "testId",
>>>   "id" : 1,
>>>   "accessStrategy" : {
>>>   "@class" : "org.apereo.cas.services.Defau
>>> ltRegisteredServiceAccessStrategy",
>>>   "enabled" : true,
>>>   "ssoEnabled" : true
>>>   }
>>> }
>>>
>>> *Getting access to /status/dashboard endpoint *****
>>> - Add the following lines to application.properties in CAS config dir:
>>> cas.adminPagesSecurity.ip=127\.0\.0\.1
>>> cas.monitor.endpoints.enabled=true
>>> cas.monitor.endpoints.sensitive=false
>>>
>>> *Running*
>>> - cd webapp/cas-server-webapp-tomcat
>>> - ../../gradlew build bootRun --parallel
>>>
>>> *Simple client*
>>> - git clone [email protected]:apereo/phpCAS.git
>>> - cd phpCAS
>>> - Copy docs/examples/config.example.php to docs/examples/config.php and
>>> edit:
>>> // Full Hostname of your CAS Server
>>> $cas_host = 'cas-sso.local';
>>> // Context of the CAS Server
>>> $cas_context = '/cas';
>>> // Port of your CAS server. Normally for a https server it's 443
>>> $cas_port = 8443;
>>> - Make the file docs/examples/example_simple.php accessible by www.
>>> - Navigate to http://localhost/phpCAS/docs/examples/example_simple.php
>>>
>>> *Service management app*
>>> - Based on https://github.com/apereo/cas-services-management-overlay
>>> - git clone [email protected]:apereo/cas-services-management-overlay.git
>>> - cd cas-services-management-overlay
>>> - ./build.sh package
>>> - This creates target/cas-management.war, which should be deployed to
>>> Tomcat. Make sure Tomcat uses the same Java as CAS server. Otherwise, it
>>> won't find the SSL keys in the Java truststore. ****
>>> - On first run, it copies various files from cas/config into
>>> /etc/cas/config. You may want to update management.properties as follows,
>>> in particular:
>>> # CAS server that management app will authenticate with
>>> # This server will authenticate for any app (service) and you can login
>>> as casuser/Mellon
>>> cas.server.name: https://cas-sso.local:8443/
>>> cas.server.prefix: https://cas-sso.local:8443/cas
>>> cas.mgmt.adminRoles[0]=ROLE_ADMIN
>>> cas.mgmt.userPropertiesFile=file:/etc/cas/config/users.properties
>>> # Update this URL to point at server running this management app
>>> cas.mgmt.serverName=http://localhost:8080
>>> server.context-path=/cas-management
>>> server.port=8080
>>> logging.config=file:/etc/cas/config/log4j2-management.xml
>>> - http://localhost:8080/cas-management
>>>
>>> *Conclusions*
>>> - Really painful to set up.
>>> - CAS documentation is very unclear, tons of linked documents, not sure
>>> where to find information.
>>> - Wonder if better to do OAuth2 even if redirecting to Google / FB needs
>>> to be implemented from scratch.
>>>
>>> ---
>>>
>>> With all that, thank you for writing and maintaining this software. It
>>> does seem like a good choice for SSO solutions - but the initial learning
>>> curve shouldn't be quite so sharp.
>>>
>>> Jan
>>>
>> --
>> - Website: https://apereo.github.io/cas
>> - Gitter Chatroom: https://gitter.im/apereo/cas
>> - List Guidelines: https://goo.gl/1VRrw7
>> - Contributions: https://goo.gl/mh7qDG
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "CAS Community" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit https://groups.google.com/a/ap
>> ereo.org/d/msgid/cas-user/f9d02240-df8e-4b39-80a6-3580cd380b
>> 36%40apereo.org
>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/f9d02240-df8e-4b39-80a6-3580cd380b36%40apereo.org?utm_medium=email&utm_source=footer>
>> .
>>
>
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/CA%2Bd9XAP8CaBdZzFCTvm7xj9S2O6CJBmohiuvySuvrPJ%3D-_QNSw%40mail.gmail.com.

Reply via email to