Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire

Principe

Pour limiter l'accès aux données contenues dans Agimus-NG, nous allons utiliser le serveur hébergeant kibana pour restreindre l'accès à elasticsearch.

...

Le frontal ne fait qu'afficher une interface réduite de kibana sous forme d'iframe. Elle permet de gérer les droits d'accès aux différents graphiques suivant des profils et d'empêcher un utilisateur de facilement modifier les graphiques créés. Pour retrouver le code de ce frontal, rendez-vous à l'adresse suivante :

https://github.com/EsupPortail/agimus-ng/tree/master/experimentation/front-agimus-ngfrontal

Avertissement

Si quelqu'un a accès via le frontal, il a également accès à kibana et peut, s'il connaît l'url, modifier les graphiques créés. C'est pourquoi nous vous conseillons de sauvegarder régulièrement vos configurations kibana avec les scripts proposés sur le dépôt github.

...

Configuration du frontal

 

Bloc de code
languagephp
themeConfluence
languagephp
titleParamétrage de gestion des groupes pour le frontal (front-agimus-ng/config/config.php)
    $user_roles = array('ROLE_ADMIN', 'ROLE_MANAGER', 'ROLE_USER');
    $user_roles_mapping = array(
      "ROLE_ADMIN" => "nom_du_groupe_ldap_ADMIN",
      "ROLE_MANAGER" => "nom_du_groupe_ldap_MANAGER",
      "ROLE_USER" => "nom_du_groupe_ldap_USER"
    );

...

Bloc de code
themeConfluence
titleConfiguration apache sur le serveur kibana
RewriteEngine on
RewriteRule "^/$" "/kibana4kibana/"  [R]
RewriteRule "^/kopf/?$" "/elasticsearch/_plugin/kopf/"  [R]

CustomLog logs/access.agimus.log combined
ErrorLog logs/error.agimus.log

RemoteIPHeader X-Forwarded-For

# Configuration du module mod_cas
include conf.modules.d/00-cas.conf

<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>

<Location "/kibana4kibana/">
    <RequireAny>
		# Autorisation d'appel du serveur kibana sur lui même sans authentification (123.456.789.012)
        Require ip 123.456.789.012 127.0.0.1
		# Autorisation des comptes CAS
        AuthType CAS
        CASScope /

        #### 2 types d'autorisation possibles
        ### On utilise uniquement le CAS et une autorisation par utilisateurs
        require user login1 login2 login3    

        ### On autorise en se basant sur un attribut LDAP qui peut également être utilisé dans la configuration du frontal
        # AuthLDAPURL "ldap://ldap.univ.fr:389/ou=people,dc=univ,dc=fr?uid??"
        # AuthLDAPBindDN "cn=app-agimus,ou=system,dc=univ,dc=fr"
        # AuthLDAPBindPassword "XXXXXXXXX"
        ## Groupe englobant l'ensemble des groupes utilisés dans le frontal 
        # require ldap-filter group=Agimus-user

    </RequireAny>
    ProxyPass http://localhost:5601/
    ProxyPassReverse http://localhost:5601/
</Location>

##############
# Cas où elasticsearch est sur le même serveur que kibana
##############
#<Location "/elasticsearch">
#    <RequireAny>
#        # Autorisation d'appel du serveur kibana sur lui même sans authentification (123.456.789.012)
#        Require ip 123.456.789.012 127.0.0.1
#		# Autorisation des comptes CAS (ici on limite aux utilisateurs suivant le cluster, les informaticiens)
#        AuthType CAS
#        CASScope /
#        require user login1
#    </RequireAny>
#    ProxyPass http://localhost:9200/
#    ProxyPassReverse http://localhost:9200/
#</Location>
#
###############


##############
# Cas où elasticsearch est un cluster
##############

<Proxy balancer://EScluster>
BalancerMember http://es1.univ.fr:9200 route=es1
BalancerMember http://es2.univ.fr:9200 route=es2
</Proxy>

Header add Set-Cookie "AgimusRoute=route.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED

<Location "/elasticsearch">
    <RequireAny>
        # Autorisation d'appel du serveur kibana sur lui même sans authentification (123.456.789.012)
        Require ip 123.456.789.012 127.0.0.1
		Require local
		# Autorisation des comptes CAS (ici on limite aux utilisateurs suivant le cluster, les informaticiens)
        AuthType CAS
        CASScope /
        require user login1
    </RequireAny>
    ProxyPass balancer://EScluster stickysession=AgimusRoute
    ProxyPassReverse balancer://EScluster
</Location>

ProxyPreserveHost on
#Empêche le proxy apache (nous on ne fait que du reverse proxy)
ProxyRequests Off


...