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 :
Naviguez vers Auth0 Dashboard > Organisations.
Sélectionnez Créer une organisation.
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. 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. 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. |