Ajouter des rôles aux membres d’une organisation

Chaque membre de l’organisation peut se voir attribuer un ou plusieurs rôles, qui sont appliqués lorsque les utilisateurs se connectent via l’organisation. Pour en savoir plus sur les rôles et leur comportement, consultez Contrôle d’accès basé sur les rôles (RBAC).

Vous pouvez ajouter des rôles aux membres d’une organisation à l’aide e Auth0 Dashboard ou de Management API.

Pour pouvoir activer un rôle pour un membre de l’organisation, vous devez déjà avoir créé le rôle dans votre locataire.

Auth0 Dashboard

Pour ajouter des rôles à un membre d’une organisation via le Auth0 Dashboard :

  1. Accédez à Auth0 Dashboard > Organizations et sélectionnez l’organisation pour laquelle vous souhaitez configurer l’appartenance.

  2. Sélectionnez la vue Membres, puis le nom du membre auquel vous souhaitez ajouter un rôle.

  3. Sélectionnez Attribuer un rôle.

  4. Saisissez le(s) nom(s) de rôle que vous souhaitez attribuer au membre, puis sélectionnez Add role(s) to organization (Ajouter un ou plusieurs rôles à l’organization).

Management API

Pour ajouter des rôles à un membre d’une organisation via Management API : Créez un appel POST au point de terminaison Create Organization Member Roles (Créer des rôles pour les membres de l’organisation). Assurez-vous de remplacer les valeurs d’espace réservé ORG_ID, MGMT_API_ACCESS_TOKEN, USER_ID et ROLE_ID avec l’ID de votre organisation, le jeton d’accès à Management API, l’ID utilisateur et l’ID du rôle, respectivement.


curl --request POST \
  --url https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles \
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{ "roles": [ "ROLE_ID", "ROLE_ID", "ROLE_ID" ] }'

Was this helpful?

/
var client = new RestClient("https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer MGMT_API_ACCESS_TOKEN");
request.AddHeader("cache-control", "no-cache");
request.AddParameter("application/json", "{ \"roles\": [ \"ROLE_ID\", \"ROLE_ID\", \"ROLE_ID\" ] }", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Was this helpful?

/
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles"

	payload := strings.NewReader("{ \"roles\": [ \"ROLE_ID\", \"ROLE_ID\", \"ROLE_ID\" ] }")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("authorization", "Bearer MGMT_API_ACCESS_TOKEN")
	req.Header.Add("cache-control", "no-cache")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}

Was this helpful?

/
HttpResponse<String> response = Unirest.post("https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles")
  .header("content-type", "application/json")
  .header("authorization", "Bearer MGMT_API_ACCESS_TOKEN")
  .header("cache-control", "no-cache")
  .body("{ \"roles\": [ \"ROLE_ID\", \"ROLE_ID\", \"ROLE_ID\" ] }")
  .asString();

Was this helpful?

/
var axios = require("axios").default;

var options = {
  method: 'POST',
  url: 'https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles',
  headers: {
    'content-type': 'application/json',
    authorization: 'Bearer MGMT_API_ACCESS_TOKEN',
    'cache-control': 'no-cache'
  },
  data: {roles: ['ROLE_ID', 'ROLE_ID', 'ROLE_ID']}
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});

Was this helpful?

/
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"content-type": @"application/json",
                           @"authorization": @"Bearer MGMT_API_ACCESS_TOKEN",
                           @"cache-control": @"no-cache" };
NSDictionary *parameters = @{ @"roles": @[ @"ROLE_ID", @"ROLE_ID", @"ROLE_ID" ] };

NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];

Was this helpful?

/
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{ \"roles\": [ \"ROLE_ID\", \"ROLE_ID\", \"ROLE_ID\" ] }",
  CURLOPT_HTTPHEADER => [
    "authorization: Bearer MGMT_API_ACCESS_TOKEN",
    "cache-control: no-cache",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Was this helpful?

/
import http.client

conn = http.client.HTTPSConnection("your_auth0_domain")

payload = "{ \"roles\": [ \"ROLE_ID\", \"ROLE_ID\", \"ROLE_ID\" ] }"

headers = {
    'content-type': "application/json",
    'authorization': "Bearer MGMT_API_ACCESS_TOKEN",
    'cache-control': "no-cache"
    }

conn.request("POST", "/api/v2/organizations/ORG_ID/members/USER_ID/roles", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

Was this helpful?

/
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Bearer MGMT_API_ACCESS_TOKEN'
request["cache-control"] = 'no-cache'
request.body = "{ \"roles\": [ \"ROLE_ID\", \"ROLE_ID\", \"ROLE_ID\" ] }"

response = http.request(request)
puts response.read_body

Was this helpful?

/
import Foundation

let headers = [
  "content-type": "application/json",
  "authorization": "Bearer MGMT_API_ACCESS_TOKEN",
  "cache-control": "no-cache"
]
let parameters = ["roles": ["ROLE_ID", "ROLE_ID", "ROLE_ID"]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://your_auth0_domain/api/v2/organizations/ORG_ID/members/USER_ID/roles")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()

Was this helpful?

/

Valeur Description
ORG_ID Identifiant de l’organisation pour laquelle vous souhaitez ajouter des rôles à un membre.
MGMT_API_ACCESS_TOKEN Jeton d’accès à Management API avec la permission create:organization_member_roles.
USER_ID Identifiant de l’utilisateur auquel vous souhaitez ajouter le(s) rôle(s) spécifié(s).
ROLE_ID Identifiant du rôle que vous voulez ajouter à l’utilisateur spécifié pour l’organisation spécifiée. Maximum de 100 rôles par utilisateur.

Codes d’état des réponses

Les codes d’état de réponse possibles sont les suivants  :

Code d’état Code d’erreur Message Cause
204 Rôles associés avec succès à l’utilisateur.
400 invalid_body Corps de requête non valide. Le message varie selon la cause. La charge utile de la requête n’est pas valide.
400 invalid_query_string Chaîne de requête non valide. Le message varie selon la cause. La chaîne de requête n’est pas valide.
401 Jeton non valide.
401 Signature non valide reçue pour la validation du jeton Web JSON.
401 Le client n’est pas global.
403 insufficient_scope Permission insuffisante; permission attendue : create:organization_member_roles. Tentative de lecture/écriture d’un champ qui n’est pas autorisé avec les permissions de jeton du porteur fourni.
429 Trop de requêtes. Vérifiez les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset.