Configurer la connexion du fournisseur d’identité pour les mises à jour du profil utilisateur
Vous pouvez mettre à jour les préférences de connexion pour un fournisseur d’identité en amont afin de contrôler quand les mises à jour des attributs racine du profil utilisateur sont autorisées à l’aide de Auth0 Dashboard ou de Management API.
Par défaut, les attributs du profil utilisateur fournis par des fournisseurs d’identité autres qu’Auth0 (tels que Google, Facebook ou X) ne sont pas directement modifiables, car ils sont mis à jour par le fournisseur d’identité à chaque fois que l’utilisateur se connecte.
Pour pouvoir modifier les attributs name, nickname, given_name, family_name ou les attributs racine de l’image sur le profil utilisateur normalisé, vous devez configurer votre synchronisation de connexion avec Auth0 de manière à ce que les attributs de l’utilisateur soient mis à jour à partir du fournisseur d’identité uniquement lors de la création du profil utilisateur.
Vous pouvez modifier les attributs racine individuellement ou dans le cadre d’une importation en masse à l’aide de Management API.
Utiliser Dashboard
Allez dans Auth0 Dashboard > Authentication (Authentification), et sélectionnez le type de connexion : Base de données, sociale, entreprise ou sans mot de passe.
Sélectionnez le nom d’une connexion pour afficher ses paramètres.
Localisez la section Advanced (Avancée), activez Synchroniser les attributs du profil utilisateur à chaque connexion sur le paramètre désiré, puis sélectionnez Save (Enregistrer).
Utiliser Management API
Avant de terminer cette étape, vous devez d’abord récupérer les valeurs existantes de l’objet options
de la connexion afin d’éviter de remplacer les valeurs actuelles. Si vous ne le faites pas, les paramètres manquants dans l’objet original seront perdus après la mise à jour.
Effectuez une requête PATCH
au point de terminaison Mettre à jour un connexion. Veillez à inclure les valeurs originales des options dans la requête afin d’éviter d’écraser les valeurs actuelles. De plus, assurez-vous de remplacer les paramètres fictifs CONNECTION_ID
, MGMT_API_ACCESS_TOKEN
, et ATTRIBUTE_UPDATE_VALUE
par votre ID de connexion, le jeton d’accès de Management API et la valeur de mise à jour de l’attribut, respectivement.
curl --request PATCH \
--url 'https://{yourDomain}/api/v2/connections/CONNECTION_ID' \
--header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data '{"options":{"set_user_root_attributes": "ATTRIBUTE_UPDATE_VALUE"}}'
Was this helpful?
var client = new RestClient("https://{yourDomain}/api/v2/connections/CONNECTION_ID");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer MGMT_API_ACCESS_TOKEN");
request.AddHeader("cache-control", "no-cache");
request.AddParameter("application/json", "{\"options\":{\"set_user_root_attributes\": \"ATTRIBUTE_UPDATE_VALUE\"}}", 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/connections/CONNECTION_ID"
payload := strings.NewReader("{\"options\":{\"set_user_root_attributes\": \"ATTRIBUTE_UPDATE_VALUE\"}}")
req, _ := http.NewRequest("PATCH", 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.patch("https://{yourDomain}/api/v2/connections/CONNECTION_ID")
.header("content-type", "application/json")
.header("authorization", "Bearer MGMT_API_ACCESS_TOKEN")
.header("cache-control", "no-cache")
.body("{\"options\":{\"set_user_root_attributes\": \"ATTRIBUTE_UPDATE_VALUE\"}}")
.asString();
Was this helpful?
var axios = require("axios").default;
var options = {
method: 'PATCH',
url: 'https://{yourDomain}/api/v2/connections/CONNECTION_ID',
headers: {
'content-type': 'application/json',
authorization: 'Bearer MGMT_API_ACCESS_TOKEN',
'cache-control': 'no-cache'
},
data: {options: {set_user_root_attributes: 'ATTRIBUTE_UPDATE_VALUE'}}
};
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 = @{ @"options": @{ @"set_user_root_attributes": @"ATTRIBUTE_UPDATE_VALUE" } };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{yourDomain}/api/v2/connections/CONNECTION_ID"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"PATCH"];
[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/connections/CONNECTION_ID",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => "{\"options\":{\"set_user_root_attributes\": \"ATTRIBUTE_UPDATE_VALUE\"}}",
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 = "{\"options\":{\"set_user_root_attributes\": \"ATTRIBUTE_UPDATE_VALUE\"}}"
headers = {
'content-type': "application/json",
'authorization': "Bearer MGMT_API_ACCESS_TOKEN",
'cache-control': "no-cache"
}
conn.request("PATCH", "/{yourDomain}/api/v2/connections/CONNECTION_ID", 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/connections/CONNECTION_ID")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Patch.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Bearer MGMT_API_ACCESS_TOKEN'
request["cache-control"] = 'no-cache'
request.body = "{\"options\":{\"set_user_root_attributes\": \"ATTRIBUTE_UPDATE_VALUE\"}}"
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 = ["options": ["set_user_root_attributes": "ATTRIBUTE_UPDATE_VALUE"]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{yourDomain}/api/v2/connections/CONNECTION_ID")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "PATCH"
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 |
---|---|
CONNECTION_ID |
ID de la connexion pour laquelle vous souhaitez autoriser les mises à jour des attributs racine. |
MGMT_API_ACCESS_TOKEN |
Jeton d’accès pour Management API avec la permission update:connections . |
ATTRIBUTE_UPDATE_VALUE |
Indique quand vous souhaitez autoriser les mises à jour des attributs racine du profil utilisateur. Les valeurs valides sont on_first_login et on_each_login . Par défaut, on_each_login pour les nouvelles connexions. |