-
Notifications
You must be signed in to change notification settings - Fork 2
Basic Auth in your LA node without CAS
If you need to use LA software without CAS Authentication System (for instance in an initial deploy) you need two main steps to protect your /admin/
web interfaces:
- Configure a Basic Auth in your proxy
- Disable CAS in the different services you are deploying
Take into account that without CAS there are several things that nowadays will not work in your services like:
- the new download plugin
- some functionality in
image-service
like select/delete & albums - some lists species actions like deletion, setting 'authoritative' flag, ...
- some spatial admin tasks
- etc
Lets use collectory
service as a sample. You have to get what is authenticated by default via CAS
, so we do:
$ grep uri_filter_pattern ansible/roles/collectory/templates/config/*
security.cas.uriFilterPattern={{ collectory_uri_filter_pattern | default('/admin.*,/admin/.*,/admin/.*/.*,/collection.*,/institution.*,/contact.*,/reports.*,/providerCode.*,/providerMap.*,/dataProvider.*,/dataResource.*,/dataHub.*,/manage/.*') }}
and transform this filter in some Basic Auth (in this example using Apache
).
You need to a2enmod include
for using includes.
Use passwd
to create a manage users in, for instance, in /etc/apache2/la-users-password
.
Later create /etc/la
directory and something like:
# /etc/la/basic-auth.conf
AuthType Basic
AuthName "Authentication Required"
AuthUserFile /etc/apache2/la-users-password
<RequireAny>
Require env noauth
Require env REDIRECT_noauth
Require valid-user
</RequireAny>
And create an admin-collectory.conf
file requesting auth for each previous CAS filter.
# /etc/la/admin-collectory.conf
<Location /admin>
Include /etc/la/basic-auth.conf
</Location>
<Location /collection>
Include /etc/la/basic-auth.conf
</Location>
<Location /institution>
Include /etc/la/basic-auth.conf
</Location>
(...)
<Location /manage>
Include /etc/la/basic-auth.conf
</Location>
this sample is truncated.
Later you have to include /etc/la/admin-collectory.conf
in your collectory vhost configuration, like:
<VirtualHost *:443>
ServerName collectory.yourlivingatlas.org
(...)
Include /etc/la/admin-collectory.conf
ErrorLog ${APACHE_LOG_DIR}/error.log
(...)
</VirtualHost>
Later you have to leave blank the previous security.cas.uriFilterPattern
in each service and disable CAS.
For instance in collectory
, after running ansible
you should get something like:
security.cas.uriFilterPattern=
security.cas.bypass=true
disableCAS=true
in your /data/ala-collectory/config/ala-collectory-config.properties
.
Take into account that each service has a different ansible
var name for this filter. So with:
bie_base_uri_filter_pattern=
bie_index_uri_filter_pattern=
collectory_uri_filter_pattern=
images_uri_filter_pattern=
specieslist_uri_filter_pattern=
logger_uri_filter_pattern=
regions_uri_filter_pattern=
biocache_hub_uri_filter_pattern=
bypass_cas=true
adapted to your inventory/ies you'll disable CAS in these services.
In the future, if you install a CAS system, you can comment these filters (son ansible
will use the default filter value), and set bypass_cas=false
to enable CAS authentication.
Index
- Wiki home
- Community
- Getting Started
- Support
- Portals in production
- ALA modules
- Demonstration portal
- Data management in ALA Architecture
- DataHub
- Customization
- Internationalization (i18n)
- Administration system
- Contribution to main project
- Study case