Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

Auth0-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

Illustratie · voorbeelddata

Voorbeeld van synchronisatie

Eén record controleren

Bron

Auth0

Connectorstatus: Gepland

Bestemming

Je andere tool

Connectorstatus: Eigen tool

BronveldDoelveldVoorbeeldwaarde
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Opstellen
  2. Eén record controleren
  3. Deze versie goedkeuren

Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.

Verbind Auth0 met Brevo via Tajo om geauthenticeerde gebruikersprofielen te synchroniseren als marketingcontacten, automatiseringen te triggeren op basis van authenticatie-events en je klantdata te verrijken met identity- en access management-inzichten.

Overzicht

EigenschapWaarde
PlatformAuth0 (by Okta)
CategorieIdentity & Access (Custom)
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataGebruikers, Events, Rollen, Identiteiten
Auth-methodeMachine-to-Machine OAuth 2.0

Functies

  • Gebruikersprofiel-sync - Synchroniseer Auth0-gebruikersprofielen naar Brevo-contacten
  • Authenticatie-events - Trigger automatiseringen bij login, signup en password reset
  • Rolgebaseerde segmentatie - Segmenteer contacten op basis van Auth0-rollen en -permissies
  • Social identity-data - Verrijk contacten met profielinformatie uit social logins
  • Logintracking - Track laatste login, aantal logins en apparaatdata
  • Multi-tenant-ondersteuning - Synchroniseer gebruikers over meerdere Auth0-tenants

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Auth0-account met API-toegang
  2. Een Machine-to-Machine-applicatie geregistreerd in Auth0
  3. Management API-rechten toegekend aan de M2M-applicatie
  4. Een Brevo-account met API-toegang
  5. Een Tajo-account met connector-rechten

Authenticatie

Machine-to-Machine OAuth 2.0

Terminal window
# Create an M2M application in Auth0 Dashboard
export AUTH0_DOMAIN=your-tenant.auth0.com
export AUTH0_CLIENT_ID=your_client_id
export AUTH0_CLIENT_SECRET=your_client_secret
export AUTH0_AUDIENCE=https://your-tenant.auth0.com/api/v2/
// Get Management API access token
const tokenResponse = await fetch(
`https://${process.env.AUTH0_DOMAIN}/oauth/token`,
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
client_id: process.env.AUTH0_CLIENT_ID,
client_secret: process.env.AUTH0_CLIENT_SECRET,
audience: process.env.AUTH0_AUDIENCE,
grant_type: 'client_credentials'
})
}
);
const { access_token } = await tokenResponse.json();
// Token is valid for 24 hours by default

API-rechten

Geef je M2M-applicatie alleen de benodigde scopes: read:users, read:user_idp_tokens, read:roles en read:logs. Geef geen schrijfrechten tenzij nodig.

Configuratie

Basisinstelling

connectors:
auth0:
enabled: true
domain: "${AUTH0_DOMAIN}"
client_id: "${AUTH0_CLIENT_ID}"
client_secret: "${AUTH0_CLIENT_SECRET}"
audience: "https://${AUTH0_DOMAIN}/api/v2/"
sync:
users: true
events: true
roles: true
schedule: "0 */4 * * *" # Every 4 hours
lists:
all_users: 20
verified_users: 21
social_login: 22

Veldmapping

field_mapping:
email: email
given_name: FIRSTNAME
family_name: LASTNAME
nickname: NICKNAME
picture: AVATAR_URL
email_verified: EMAIL_VERIFIED
logins_count: LOGIN_COUNT
last_login: LAST_LOGIN_DATE
created_at: SIGNUP_DATE
user_metadata.phone: SMS
user_metadata.company: COMPANY
app_metadata.plan: SUBSCRIPTION_PLAN
app_metadata.role: USER_ROLE

API-endpoints

EndpointMethodBeschrijving
https://{domain}/api/v2/usersGETLijst of zoek gebruikers
https://{domain}/api/v2/users/{id}GETHaal een gebruiker op
https://{domain}/api/v2/users/{id}PATCHWerk gebruikersmetadata bij
https://{domain}/api/v2/users/{id}/rolesGETHaal gebruikersrollen op
https://{domain}/api/v2/rolesGETLijst alle rollen
https://{domain}/api/v2/logsGETHaal log-events op
https://{domain}/api/v2/stats/active-usersGETHaal aantal actieve gebruikers op
https://{domain}/api/v2/stats/dailyGETHaal dagelijkse stats op
https://{domain}/oauth/tokenPOSTHaal access token op

Codevoorbeelden

Connector initialiseren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('auth0', {
domain: process.env.AUTH0_DOMAIN,
clientId: process.env.AUTH0_CLIENT_ID,
clientSecret: process.env.AUTH0_CLIENT_SECRET
});

Gebruikers synchroniseren naar Brevo

// Paginate through Auth0 users
let page = 0;
const perPage = 50;
let hasMore = true;
while (hasMore) {
const response = await fetch(
`https://${domain}/api/v2/users?` +
new URLSearchParams({
page: page.toString(),
per_page: perPage.toString(),
include_totals: 'true',
search_engine: 'v3',
q: 'email_verified:true'
}),
{
headers: { 'Authorization': `Bearer ${accessToken}` }
}
);
const { users, total } = await response.json();
for (const user of users) {
await tajo.contacts.sync({
email: user.email,
attributes: {
FIRSTNAME: user.given_name,
LASTNAME: user.family_name,
LOGIN_COUNT: user.logins_count,
LAST_LOGIN_DATE: user.last_login,
SIGNUP_DATE: user.created_at,
EMAIL_VERIFIED: user.email_verified
},
listIds: [20]
});
}
page++;
hasMore = (page * perPage) < total;
}

Authenticatie-events tracken via Log Streams

// Set up Auth0 Log Stream webhook
// Configure in Auth0 Dashboard > Monitoring > Streams
app.post('/webhooks/auth0', async (req, res) => {
// Verify authorization header
const authHeader = req.headers.authorization;
if (authHeader !== `Bearer ${process.env.AUTH0_WEBHOOK_TOKEN}`) {
return res.status(401).send('Unauthorized');
}
const logs = req.body;
for (const log of logs) {
switch (log.data.type) {
case 's': // Successful login
await tajo.events.track({
email: log.data.details.email,
event: 'user_login',
properties: {
ip: log.data.ip,
user_agent: log.data.user_agent,
connection: log.data.connection
}
});
break;
case 'ss': // Successful signup
await tajo.contacts.sync({
email: log.data.details.email,
attributes: { SIGNUP_DATE: log.data.date },
listIds: [20]
});
break;
case 'sp': // Successful password change
await tajo.events.track({
email: log.data.details.email,
event: 'password_changed'
});
break;
}
}
res.status(200).send('OK');
});

Rolgebaseerde segmentatie

// Sync user roles for segmentation
const rolesResponse = await fetch(
`https://${domain}/api/v2/users/${userId}/roles`,
{
headers: { 'Authorization': `Bearer ${accessToken}` }
}
);
const roles = await rolesResponse.json();
const roleNames = roles.map(r => r.name).join(', ');
await tajo.contacts.update(userEmail, {
attributes: {
USER_ROLE: roleNames,
IS_ADMIN: roles.some(r => r.name === 'admin')
}
});

Rate limits

EndpointcategorieLimietOpmerkingen
Management API50 req/sec (Free)Per tenant
Management API100 req/sec (Paid)Per tenant
Authentication APIVariabelAfhankelijk van plan
Log StreamsRealtimeGeen rate limit op delivery
PagineringMax. 50 items/paginaGebruik page- en per_page-params

Paginering vereist

De Auth0 Management API retourneert maximaal 50 resultaten per pagina. Implementeer altijd paginering met de parameters page en per_page. Voeg include_totals=true toe om het totaal op te halen.

Probleemoplossing

ProbleemOorzaakOplossing
401 UnauthorizedToken verlopenVraag nieuw M2M-token aan (verloopt na 24 uur)
403 ForbiddenOntbrekende scopesGeef de benodigde rechten aan je M2M-app
Lege gebruikerslijstFout in zoekqueryGebruik Lucene query-syntaxis voor v3 engine
Ontbrekende metadataMetadata niet ingesteldControleer user_metadata en app_metadata
Rate limit 429Te veel requestsImplementeer backoff met retry-headers

Debugmodus

connectors:
auth0:
debug: true
log_level: verbose
log_sync: true

Best practices

  1. Gebruik Log Streams - Realtime event-streaming in plaats van de Logs API te pollen
  2. Implementeer paginering - Pagineer altijd gebruikerslijst-queries voor grote tenants
  3. Cache M2M-tokens - Hergebruik tokens tot ze bijna verlopen (24 uur default lifetime)
  4. Gebruik search engine v3 - Gebruik Lucene query-syntaxis voor efficiënte gebruikerszoekopdrachten
  5. Synchroniseer alleen geverifieerde gebruikers - Filter op email_verified:true om niet-geverifieerde contacten te vermijden
  6. Benut user metadata - Sla custom attributen op in Auth0 user_metadata voor synchronisatie

Beveiliging

  • Machine-to-Machine OAuth - Client credentials grant voor server-naar-server auth
  • Scoped permissions - Geef minimaal benodigde Management API-scopes
  • Token-rotatie - M2M-tokens verlopen standaard na 24 uur
  • Log Stream-auth - Gebruik bearer token-verificatie voor webhook-endpoints
  • Tenant-isolatie - Aparte configuraties per Auth0-tenant
  • Versleuteld transport - TLS 1.2+ voor alle API-communicatie

Gerelateerde bronnen

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

AI-assistent

Hallo! Stel me vragen over de documentatie.

Deze pagina als Markdown: auth0.md

Markdown laden…
Openen in Claude Openen in ChatGPT