Créer des organisations

Vous pouvez créer des organisations à l’aide du Tableau de bord Auth0 ou de Management API.

La disponibilité varie selon le plan Auth0

Votre plan Auth0 ou votre accord personnalisé ont un impact sur la disponibilité de cette fonctionnalité. Pour en savoir plus, lisez Tarification.

Auth0 Dashboard

Pour créer une organisation via le Auth0 Dashboard :

  1. Naviguez vers Auth0 Dashboard > Organisations.

  2. Sélectionnez Créer une organisation.

  3. Saisissez les informations de base pour votre organisation, et sélectionnez Ajouter une organisation :

    Champ Description
    Nom Nom de l’organization que vous souhaitez créer. Il s’agit du nom qu’un utilisateur final saisira dans l’invite de pré-connexion pour identifier l’organisation par laquelle il souhaitait se connecter. Identifiant logique unique. Peut contenir des caractères alphabétiques minuscules, des chiffres, des caractères de soulignement (_) et des tirets (). Peut commencer par un chiffre. Il doit comporter entre 1 et 50 caractères.
    Nom affiché Nom convivial à afficher.

  4. Localisez la section Branding et personnalisez votre organisation, puis sélectionnez Enregistrer les modifications :

    Champ Description
    Logo de l’organization Logo à afficher. La résolution minimale recommandée est de 200 pixels (largeur) par 200 pixels (hauteur).
    Couleur primaire Couleur pour les éléments primaires.
    Couleur d’arrière-plan de la page Couleur pour l’arrière-plan.

  5. Localisez la section Métadonnées et ajoutez toutes les métadonnées nécessaires aux paires de clé/valeur à votre organisation, puis sélectionnez Ajouter.

Management API

Pour créer une organisation via Management API :

Effectuer un appel POST au point de terminaison Créer des organisations. Assurez-vous de remplacer les valeurs d’espace par les valeurs appropriées de votre locataire. Pour plus de détails, consultez le graphique des paramètres ci-dessous.


curl --request POST \
  --url 'https://{yourDomain}/api/v2/organizations' \
  --header 'authorization: Bearer {MGMT_API_ACCESS_TOKEN}' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{ "name": "ORG_NAME", "display_name": "ORG_DISPLAY_NAME", "branding": [ { "logo_url": "{orgLogo}", "colors": [ { "primary": "{orgPrimaryColor}", "page_background": "{orgPageBackground}" } ] } ], "metadata": [ { "{key}": "{value}", "{key}": "{value}", "{key}": "{value}" } ] }, "enabled_connections": [ { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" }, { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" } ] }'

Was this helpful?

/
var client = new RestClient("https://{yourDomain}/api/v2/organizations");
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", "{ \"name\": \"ORG_NAME\", \"display_name\": \"ORG_DISPLAY_NAME\", \"branding\": [ { \"logo_url\": \"{orgLogo}\", \"colors\": [ { \"primary\": \"{orgPrimaryColor}\", \"page_background\": \"{orgPageBackground}\" } ] } ], \"metadata\": [ { \"{key}\": \"{value}\", \"{key}\": \"{value}\", \"{key}\": \"{value}\" } ] }, \"enabled_connections\": [ { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" }, { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" } ] }", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Was this helpful?

/
package main

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

func main() {

	url := "https://{yourDomain}/api/v2/organizations"

	payload := strings.NewReader("{ \"name\": \"ORG_NAME\", \"display_name\": \"ORG_DISPLAY_NAME\", \"branding\": [ { \"logo_url\": \"{orgLogo}\", \"colors\": [ { \"primary\": \"{orgPrimaryColor}\", \"page_background\": \"{orgPageBackground}\" } ] } ], \"metadata\": [ { \"{key}\": \"{value}\", \"{key}\": \"{value}\", \"{key}\": \"{value}\" } ] }, \"enabled_connections\": [ { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" }, { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" } ] }")

	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://{yourDomain}/api/v2/organizations")
  .header("content-type", "application/json")
  .header("authorization", "Bearer {MGMT_API_ACCESS_TOKEN}")
  .header("cache-control", "no-cache")
  .body("{ \"name\": \"ORG_NAME\", \"display_name\": \"ORG_DISPLAY_NAME\", \"branding\": [ { \"logo_url\": \"{orgLogo}\", \"colors\": [ { \"primary\": \"{orgPrimaryColor}\", \"page_background\": \"{orgPageBackground}\" } ] } ], \"metadata\": [ { \"{key}\": \"{value}\", \"{key}\": \"{value}\", \"{key}\": \"{value}\" } ] }, \"enabled_connections\": [ { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" }, { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" } ] }")
  .asString();

Was this helpful?

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

var options = {
  method: 'POST',
  url: 'https://{yourDomain}/api/v2/organizations',
  headers: {
    'content-type': 'application/json',
    authorization: 'Bearer {MGMT_API_ACCESS_TOKEN}',
    'cache-control': 'no-cache'
  },
  data: '{ "name": "ORG_NAME", "display_name": "ORG_DISPLAY_NAME", "branding": [ { "logo_url": "{orgLogo}", "colors": [ { "primary": "{orgPrimaryColor}", "page_background": "{orgPageBackground}" } ] } ], "metadata": [ { "{key}": "{value}", "{key}": "{value}", "{key}": "{value}" } ] }, "enabled_connections": [ { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" }, { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" } ] }'
};

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" };

NSData *postData = [[NSData alloc] initWithData:[@"{ "name": "ORG_NAME", "display_name": "ORG_DISPLAY_NAME", "branding": [ { "logo_url": "{orgLogo}", "colors": [ { "primary": "{orgPrimaryColor}", "page_background": "{orgPageBackground}" } ] } ], "metadata": [ { "{key}": "{value}", "{key}": "{value}", "{key}": "{value}" } ] }, "enabled_connections": [ { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" }, { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" } ] }" dataUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{yourDomain}/api/v2/organizations"]
                                                       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://{yourDomain}/api/v2/organizations",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{ \"name\": \"ORG_NAME\", \"display_name\": \"ORG_DISPLAY_NAME\", \"branding\": [ { \"logo_url\": \"{orgLogo}\", \"colors\": [ { \"primary\": \"{orgPrimaryColor}\", \"page_background\": \"{orgPageBackground}\" } ] } ], \"metadata\": [ { \"{key}\": \"{value}\", \"{key}\": \"{value}\", \"{key}\": \"{value}\" } ] }, \"enabled_connections\": [ { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" }, { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" } ] }",
  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("")

payload = "{ \"name\": \"ORG_NAME\", \"display_name\": \"ORG_DISPLAY_NAME\", \"branding\": [ { \"logo_url\": \"{orgLogo}\", \"colors\": [ { \"primary\": \"{orgPrimaryColor}\", \"page_background\": \"{orgPageBackground}\" } ] } ], \"metadata\": [ { \"{key}\": \"{value}\", \"{key}\": \"{value}\", \"{key}\": \"{value}\" } ] }, \"enabled_connections\": [ { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" }, { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" } ] }"

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

conn.request("POST", "/{yourDomain}/api/v2/organizations", 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://{yourDomain}/api/v2/organizations")

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 = "{ \"name\": \"ORG_NAME\", \"display_name\": \"ORG_DISPLAY_NAME\", \"branding\": [ { \"logo_url\": \"{orgLogo}\", \"colors\": [ { \"primary\": \"{orgPrimaryColor}\", \"page_background\": \"{orgPageBackground}\" } ] } ], \"metadata\": [ { \"{key}\": \"{value}\", \"{key}\": \"{value}\", \"{key}\": \"{value}\" } ] }, \"enabled_connections\": [ { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" }, { \"connection_id\": \"{connectionId}\", \"assign_membership_on_login\": \"{assignMembershipOption}\" } ] }"

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 postData = NSData(data: "{ "name": "ORG_NAME", "display_name": "ORG_DISPLAY_NAME", "branding": [ { "logo_url": "{orgLogo}", "colors": [ { "primary": "{orgPrimaryColor}", "page_background": "{orgPageBackground}" } ] } ], "metadata": [ { "{key}": "{value}", "{key}": "{value}", "{key}": "{value}" } ] }, "enabled_connections": [ { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" }, { "connection_id": "{connectionId}", "assign_membership_on_login": "{assignMembershipOption}" } ] }".data(using: String.Encoding.utf8)!)

let request = NSMutableURLRequest(url: NSURL(string: "https://{yourDomain}/api/v2/organizations")! 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
MGMT_API_ACCESS_TOKEN Jeton d’accès pour le Management API avec la permission create:organizations.
ORG_NAME Nom de l’organization que vous souhaitez créer. Il s’agit du nom qu’un utilisateur final saisira dans l’invite de pré-connexion pour identifier l’organisation par laquelle il souhaitait se connecter. Identifiant logique unique. Peut contenir des caractères alphabétiques minuscules, des chiffres, des caractères de soulignement (_) et des tirets (). Peut commencer par un chiffre. Il doit comporter entre 1 et 50 caractères.
ORG_DISPLAY_NAME Facultatif. Nom convivial des organizations qui peut être affiché dans le flux de connexion et dans les modèles courriel.
ORG_LOGO Facultatif. URL du logo de l’organization.
ORG_PRIMARY_COLOR Facultatif. Code HEX de couleur pour les éléments primaires.
ORG_BACKGROUND_COLOR Facultatif. Code HEX de couleur pour l’arrière-plan.
KEY/VALUE Facultatif. Paires de clés et de valeurs représentant les métadonnées de l’organization. Maximum de 255 caractères chaque. Maximum de 10 paires de métadonnées.
CONNECTION_ID Facultatif. ID de la connexion que vous souhaitez activer pour l’organization spécifiée. Les connexions activées sont affichées sur l’invite de connexion de l’organization, afin que les utilisateurs puissent accéder à leur(s) application(s).
ASSIGN_MEMBERSHIP_OPTION Facultatif. Indique si vous voulez que les utilisateurs qui se connectent avec la connexion activée se voient automatiquement accorder le statut de membre de l’organization spécifiée. Si la valeur est true, les utilisateurs deviendront automatiquement membres. Lorsque défini à false, ils ne se verront pas accorder automatiquement le statut de membre.

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
201 organization créée avec succès.
400 invalid_body Corps invalide de la requête. 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 en fonction de 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; une des permissions suivantes était attendue : create:organizations. Tentative de lire/écrire un champ qui n’est pas autorisé avec les permissions de jeton du porteur fourni.
409 organization_conflict Une organisation existe déjà sous ce nom. Une organisation existe déjà sous ce nom.
429 Trop de requêtes. Vérifiez les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset.