Gestion des user et des roles

Bonjour,

je suis en license basic, j'utilise le mécanisme des security api pour gérer les utilisateur et leur role avec les privilèges, ca marche très bien

Mais il y a un truc que je n'arrive pas à tester

Dans la définition de privilèges d'un role, on a le scope cluster,indice,run_as, et applications

exemple d'un rêle avec des privilèges limités

pas action sur le cluster, indice limité à deux index spécifique.
et à un userX

curl -X PUT -H "content-type: application/json"  "http://localhost:9200/_security/role/my_role" -u elastic:elastic -d'
{
	"cluster" : [ "none" ],
	"indices" : [ 
		{   	
			"names" :  [ "titi-*", "toto-*" ],
			"privileges" : ["index", "create", "create_doc", "create_index", "read" ]
		}
   	],
	"applications" : [
		{ 
  			"application" : "myapp",
  			"privileges": [ "all" ],
  			"resources" : [ "all" ]
		}
	],
 	"run_as" : [ "userX" ]
}'

pour test il me suffit de faire un

curl localhost:9200/ -uuserX:userX

je serais rejeté parce que je n'ai pas le droit de faire une action sur le cluster

comment je peux tester la partie des privilege de l'application

j'ai essayé de tester les privelege pour l'application
curl myapp:userX@localhost:9200/titi/_search?pretty -uuserX:userX
ca marche

curl pasbon:userX@localhost:9200/titi/_search?pretty -uuserX:userX
malheureusement l'app "pasbon" n'est pas rejeté par ma definition de role

une idée de comment ca marche ? et je cherche surtout un exemple pour tester.

c'est pas super clair dans la doc elastic, y a tout pour définir mais pas comment je peux le tester pour vérifier.

Merci beaucoup pour vos réponses et vos idées

Hello

Si je comprends bien la documentation, la notion d'application permet à une application donnée de connaitre la portée des droits.
Ca n'influe en rien sur ta connection via "curl". (J'ai mis en gras le passage intéressant).

Application privileges are managed within Elasticsearch and can be retrieved with the has privileges API and the get application privileges API. They do not, however, grant access to any actions or resources within Elasticsearch. Their purpose is to enable applications to represent and store their own privilege models within Elasticsearch roles.

To create application privileges, use the add application privileges API. You can then associate these application privileges with roles, as described in Defining roles.

Donc pour moi, c'est un peu comme de la meta-donnée... Pas d'usage direct par elasticsearch mais par les applications.
Je pense notamment que les applications Kibana type Machine Learning ou SIEM se servent de ça mais pas de certitude.

1 Like

Merci beaucoup pour votre réponse :slight_smile:

j'avais lu le passage, mais je l'avais pas bien compris, ok

j'ai vu un exemple assez vague avec kibana,

je vais sortir le python pour voir comment cela s'utilise.

merci :slight_smile:

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.