Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LDAP / SAML authentication for access to Elasticsearch and database #80

Closed
BeritJanssen opened this issue Jan 8, 2018 · 10 comments
Closed
Assignees
Labels
enhancement improvements to user functionality

Comments

@BeritJanssen
Copy link
Member

BeritJanssen commented Jan 8, 2018

For the Flask part, it seems that python-ldap is a better way to go than the (poorly documented) flask-ldap.
Here a description on Flask and LDAP

Elasticsearch provides the Security plugin which should handle LDAP authentication.

Robert:
As I now understand there was some confusion about the reason that SAML must be implemented. In fact there are two major reasons:

  1. Login in backend for UU users with their Solis ID. Create in backend some universal permission for corpora that are to the disposal of UU users that signed in with solis ID. This feature is requested by the client.

  2. in the api calls to elastic search there is SAML authentication needed to prevent that indexes could be deleted by a simple GET http request. Perhaps there are other ways to configure in Elasticsearch in order to prevent unwanted actions via the url?

@BeritJanssen BeritJanssen changed the title LDAP authentification for access to Elasticsearch and database LDAP authentication for access to Elasticsearch and database Jan 8, 2018
@BeritJanssen BeritJanssen added this to the Version 2 milestone Jan 8, 2018
@alexhebing
Copy link
Contributor

Please also consult Hans (and Chris) about this issue: he advised against using LDAP when I mentioned it to him. Maybe he has a better idea?

@oktaal
Copy link
Member

oktaal commented Jan 15, 2018

Also think about securing corpus details. Currently the api sends all the corpora to the user and then on the client the permissions are checked.

@BeritJanssen BeritJanssen changed the title LDAP authentication for access to Elasticsearch and database LDAP / SAML authentication for access to Elasticsearch and database Jan 15, 2018
@JosedeKruif
Copy link
Collaborator

JosedeKruif commented Aug 22, 2018

Goal is to have a common login for users that have a solis-id for corpora like the Times and the Guardian. And to be able to hand some users extra privileges for access to other corpora like Dutch Banking Data. Extra privileges might have to be arranged through FLASK admin but also while using solis-id.

@robertloeberdevelopment
Copy link
Contributor

robertloeberdevelopment commented Aug 22, 2018

As it appears there is a way to avoid implementing a complete SAML protocol in the code, by making use of the service of ITS called 'access manager'. This in fact the preferred policy by ITS. The user who wants to authenticate with a solis-id, is led to a standard login screen provided by ITS. After signing in the user is forwarded to the application. In the header of the forwarding http request is the username included. This username can be used for further authorisation and access to corpora. This access manager can be used alongside the existing login procedure. Only required is an extra forwarding url (eg. Ianalyzer/loginsaml), where the header variables from access manager are handled.

The access manager is a proxy that is called 'netscaler'. Is translates the SAML responses to http headers

@alexhebing
Copy link
Contributor

@robertloeberdevelopment :

Only required is an extra forwarding url (eg. Ianalyzer/loginsaml), where the header variables from access manager are handled.

Does this imply that there will be two login screens? The one that already exists and a new one that works via ITS? Or do I misunderstand the meaning of 'extra' here?

@jgonggrijp
Copy link
Member

@robertloeberdevelopment Yesterday when you left, you told me you sent an email to the developer at ITS. Could you give us a quick update on what happened since our discussion yesterday?

@robertloeberdevelopment
Copy link
Contributor

Tom de Haas did respond. I have send you a cc of my answer, and his answer included. Did you receive it?

@jgonggrijp
Copy link
Member

I did, thanks!

@jgonggrijp jgonggrijp added the enhancement improvements to user functionality label Sep 5, 2018
@jgonggrijp
Copy link
Member

After some more research, I found out that SAML is definitely not the way for Elasticsearch authentication. This is best illustrated by the following quote from this documentation page:

A realm that facilitates authentication using the SAML 2.0 Web SSO protocol. This realm is designed to support authentication through Kibana, and is non intended for use in the REST API.

As a result, this issue splits into two independent issues: (1) Solis ID authentication for the backend, probably still using SAML, and (2) any kind of authentication (but not SAML) for Elasticsearch, in such a way that it is transparent for the user and that it requires no additional manual work on our part. I will create separate tickets for both and link back to this one from there. Automatic reverse links will appear below this post.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement improvements to user functionality
Projects
None yet
Development

No branches or pull requests

6 participants