Paramètres de configuration du fournisseur d’identités SAML

Paramètres communs

Il s’agit des paramètres utilisés pour configurer un fournisseur d’identités (IdPSAML.

URL de renvoi

Lorsque vous utilisez la SSO initié par le fournisseur d’identité, assurez-vous d’inclure le paramètre de connexion dans l’URL de renvoi :

https://{yourDomain}/login/callback?connection={yourConnectionName}

Was this helpful?

/

Si vous utilisez la fonctionnalité Organizations, vous pouvez éventuellement inclure un paramètre d’organization contenant l’ID de l’organization souhaitée :

https://{yourDomain}/login/callback?connection={yourConnectionName}&organization={yourCustomersOrganizationId}

Was this helpful?

/

Identifiant de l’entité

L’identifiant du fournisseur de services est le suivant :

urn:auth0:{yourTenant}:{yourConnectionName}

Was this helpful?

/

Vous pouvez créer un identifiant d’entité personnalisé à l’aide de la propriété connection.options.entityId. Pour en savoir plus, lisez Indiquer un identifiant d’entité personnalisé.

Vous pouvez obtenir la valeur de l’identifiant d’entité personnalisée en utilisant le point de terminaison Obtenir une connexion :


curl --request GET \
  --url 'https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D' \
  --header 'authorization: Bearer {yourAccessToken}'

Was this helpful?

/
var client = new RestClient("https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Bearer {yourAccessToken}");
IRestResponse response = client.Execute(request);

Was this helpful?

/
package main

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

func main() {

	url := "https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("authorization", "Bearer {yourAccessToken}")

	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.get("https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D")
  .header("authorization", "Bearer {yourAccessToken}")
  .asString();

Was this helpful?

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

var options = {
  method: 'GET',
  url: 'https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D',
  headers: {authorization: 'Bearer {yourAccessToken}'}
};

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 = @{ @"authorization": @"Bearer {yourAccessToken}" };

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];
[request setAllHTTPHeaderFields:headers];

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/connections/%7ByourConnectionID%7D",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "authorization: Bearer {yourAccessToken}"
  ],
]);

$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("")

headers = { 'authorization': "Bearer {yourAccessToken}" }

conn.request("GET", "/{yourDomain}/api/v2/connections/%7ByourConnectionID%7D", headers=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/connections/%7ByourConnectionID%7D")

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

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Bearer {yourAccessToken}'

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

Was this helpful?

/
import Foundation

let headers = ["authorization": "Bearer {yourAccessToken}"]

let request = NSMutableURLRequest(url: NSURL(string: "https://{yourDomain}/api/v2/connections/%7ByourConnectionID%7D")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

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?

/

Remplacer la valeur de l’en-tête ACCESS_TOKEN par un jeton d’accès de Management APIv2.

La liaison des requêtes SAML

Également appelé Liaison de protocole, il est envoyé à l’IdP par Auth0. Si possible, la valeur est fixée de manière dynamique en fonction de connection.options.protocolBinding :

connection.options.protocolBinding value Valeur de liaison de requêtes SAML
Valeur vide ("") ou absente HTTP-Redirect
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect HTTP-Redirect
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST HTTP-POST

S’il n’est pas possible de définir la valeur de manière dynamique, il faut alors définir HTTP-Redirect (par défaut) ou HTTP-Post si vous avez sélectionné cette option dans Liaison de protocole.

Liaison de la réponse SAML

Comment le jeton SAML est reçu par Auth0 du fournisseur d’identité, défini comme HTTP-Post.

Format du NameID

Non spécifié.

Affirmation et réponse SAML

L’affirmation SAML et la réponse SAML peuvent être signées individuellement ou simultanément.

URL du service SingleLogout

C’est ici que le fournisseur d’identités SAML enverra les demandes de déconnexion et les réponses :

https://{yourDomain}/logout

Was this helpful?

/

Les demandes de déconnexion SAML doivent être signées par le fournisseur d’identités.

Assertions signées

Utilisez les liens suivants pour obtenir la clé publique dans différents formats :

Télécharger le certificat dans le format demandé par l’IdP.

Authentification unique initiée par l’IdP

Pour en savoir plus sur la connexion unique initiée par l’IdP, consultez Configurer l'authentification unique initiée par l’IdP SAML.

Métadonnées

Certains fournisseurs d’identité SAML peuvent accepter d’importer directement des métadonnées contenant toutes les informations requises. Vous pouvez accéder aux métadonnées de votre connexion dans Auth0 ici :

https://{yourDomain}/samlp/metadata?connection={yourConnectionName}

Was this helpful?

/

Organizations

Utilisez l’URL ACS de votre organization dans l’IdP fédéré pour lancer le flux de connexion d’Organizations.

https://{yourDomain}/samlp?connection={yourConnectionName}&organization=${yourOrgID}

Was this helpful?

/

En savoir plus