Obtener la configuración de OpenID
curl --request GET \
--url https://{issuer}/.well-known/openid-configurationimport requests
url = "https://{issuer}/.well-known/openid-configuration"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://{issuer}/.well-known/openid-configuration', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{issuer}/.well-known/openid-configuration",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{issuer}/.well-known/openid-configuration"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{issuer}/.well-known/openid-configuration")
.asString();require 'uri'
require 'net/http'
url = URI("https://{issuer}/.well-known/openid-configuration")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"issuer": "https://your-app.auth.didit.me",
"authorization_endpoint": "https://your-app.auth.didit.me/sign-in",
"token_endpoint": "https://your-app.auth.didit.me/token/",
"jwks_uri": "https://your-app.auth.didit.me/.well-known/jwks.json",
"response_types_supported": [
"code"
],
"response_modes_supported": [
"query"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"ES256"
],
"token_endpoint_auth_methods_supported": [
"none"
],
"code_challenge_methods_supported": [
"S256"
],
"scopes_supported": [
"openid",
"email",
"phone",
"profile",
"offline_access"
],
"claims_supported": [
"iss",
"aud",
"sub",
"sid",
"auth_time",
"nonce",
"vendor_data",
"amr",
"org",
"verified",
"act",
"email",
"email_verified",
"name",
"phone_number"
]
}Referencia de la API
Configuración OpenID | API de autenticación de Didit
GET /.well-known/openid-configuration devuelve el documento de descubrimiento OIDC de tu aplicación Didit: issuer, endpoints, grants, ES256 y claims.
GET
/
.well-known
/
openid-configuration
Obtener la configuración de OpenID
curl --request GET \
--url https://{issuer}/.well-known/openid-configurationimport requests
url = "https://{issuer}/.well-known/openid-configuration"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://{issuer}/.well-known/openid-configuration', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{issuer}/.well-known/openid-configuration",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{issuer}/.well-known/openid-configuration"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{issuer}/.well-known/openid-configuration")
.asString();require 'uri'
require 'net/http'
url = URI("https://{issuer}/.well-known/openid-configuration")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"issuer": "https://your-app.auth.didit.me",
"authorization_endpoint": "https://your-app.auth.didit.me/sign-in",
"token_endpoint": "https://your-app.auth.didit.me/token/",
"jwks_uri": "https://your-app.auth.didit.me/.well-known/jwks.json",
"response_types_supported": [
"code"
],
"response_modes_supported": [
"query"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"ES256"
],
"token_endpoint_auth_methods_supported": [
"none"
],
"code_challenge_methods_supported": [
"S256"
],
"scopes_supported": [
"openid",
"email",
"phone",
"profile",
"offline_access"
],
"claims_supported": [
"iss",
"aud",
"sub",
"sid",
"auth_time",
"nonce",
"vendor_data",
"amr",
"org",
"verified",
"act",
"email",
"email_verified",
"name",
"phone_number"
]
}La autenticación es una función nueva. Estos endpoints los sirve el emisor de tu aplicación, como
https://<name>.auth.didit.me, y nunca reciben tu clave de API de Didit.Respuesta
El documento de descubrimiento.
El documento de descubrimiento OpenID Connect del emisor. Obtén los endpoints de aquí en lugar de construirlos.
El emisor: el origen de inicio de sesión de la aplicación, sin barra final. El iss de cada token es igual a este valor.
Ejemplo:
"https://your-app.auth.didit.me"
La página de inicio de sesión alojada (/sign-in).
Ejemplo:
"https://your-app.auth.didit.me/sign-in"
Ejemplo:
"https://your-app.auth.didit.me/token/"
Ejemplo:
"https://your-app.auth.didit.me/.well-known/jwks.json"
Ejemplo:
["code"]
Ejemplo:
["query"]
Ejemplo:
["authorization_code", "refresh_token"]
Ejemplo:
["public"]
Ejemplo:
["ES256"]
none: los clientes son públicos y no envían ningún secreto.
Ejemplo:
["none"]
Ejemplo:
["S256"]
Ejemplo:
[
"openid",
"email",
"phone",
"profile",
"offline_access"
]
Ejemplo:
[
"iss",
"aud",
"sub",
"sid",
"auth_time",
"nonce",
"vendor_data",
"amr",
"org",
"verified",
"act",
"email",
"email_verified",
"name",
"phone_number"
]
Última modificación el 1 de noviembre de 2026