Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

Auth0 Connector

Stanje konektorja: Načrtovano Še ni izdelano. Tajo danes ne poganja tega konektorja.

Ponazoritev · vzorčni podatki

Primer sinhronizacije

Preglejte en zapis

Vir

Auth0

Stanje konektorja: Načrtovano

Cilj

Vaše drugo orodje

Stanje konektorja: Orodje po meri

Izvorno poljeCiljno poljeVzorčna vrednost
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Osnutek
  2. Preglejte en zapis
  3. Odobrite to različico

Stanja veljajo za posamezne konektorje in ne zagotavljajo, da je ta sinhronizacija pripravljena. Polja so ponazoritvena. Pred zagonom sinhronizacije preverite dejansko shemo in dovoljenja.

Poveži Auth0 z Brevo prek Tajo za sinhronizacijo profilov avtenticiranih uporabnikov kot marketinških stikov, sprožanje avtomatizacij na osnovi dogodkov avtentikacije in obogatitev podatkov o strankah z vpogledi v upravljanje identitet in dostopa.

Pregled

LastnostVrednost
PlatformaAuth0 (by Okta)
KategorijaIdentiteta in dostop (po meri)
Zahtevnost nastavitveSrednja
Uradna integracijaNe
Sinhronizirani podatkiUporabniki, dogodki, vloge, identitete
Metoda avtentikacijeMachine-to-Machine OAuth 2.0

Funkcionalnosti

  • Sinhronizacija profilov uporabnikov – sinhronizacija profilov uporabnikov Auth0 s stiki Brevo
  • Dogodki avtentikacije – sprožanje avtomatizacij ob prijavi, registraciji in ponastavitvi gesla
  • Segmentacija na osnovi vlog – segmentiraj stike glede na vloge in dovoljenja Auth0
  • Podatki o socialni identiteti – obogati stike s podatki iz profilov socialnih prijav
  • Sledenje aktivnosti prijave – sledi zadnji prijavi, številu prijav in podatkom naprave
  • Podpora za več najemnikov – sinhronizacija uporabnikov med več najemniki Auth0

Predpogoji

Preden začneš, se prepričaj, da imaš:

  1. Račun Auth0 z dostopom do API
  2. V Auth0 registrirano Machine-to-Machine aplikacijo
  3. Dovoljenja Management API dodeljena M2M aplikaciji
  4. Brevo račun z dostopom do API
  5. Tajo račun z dovoljenji za konektorje

Avtentikacija

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

Dovoljenja API

M2M aplikaciji dodeli samo zahtevane obsege: read:users, read:user_idp_tokens, read:roles in read:logs. Izogibaj se dodeljevanju dovoljenj za pisanje, razen če je to nujno.

Konfiguracija

Osnovna nastavitev

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

Preslikava polj

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

Končne točke API

Končna točkaMetodaOpis
https://{domain}/api/v2/usersGETSeznam ali iskanje uporabnikov
https://{domain}/api/v2/users/{id}GETPridobi uporabnika
https://{domain}/api/v2/users/{id}PATCHPosodobi metapodatke uporabnika
https://{domain}/api/v2/users/{id}/rolesGETPridobi vloge uporabnika
https://{domain}/api/v2/rolesGETSeznam vseh vlog
https://{domain}/api/v2/logsGETPridobi dnevniške dogodke
https://{domain}/api/v2/stats/active-usersGETPridobi število aktivnih uporabnikov
https://{domain}/api/v2/stats/dailyGETPridobi dnevno statistiko
https://{domain}/oauth/tokenPOSTPridobi žeton za dostop

Primeri kode

Inicializacija konektorja

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
});

Sinhronizacija uporabnikov z 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;
}

Sledenje dogodkov avtentikacije prek 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');
});

Segmentacija na osnovi vlog

// 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')
}
});

Omejitve hitrosti

Kategorija končnih točkOmejitevOpombe
Management API50 zahtevkov/s (Free)Na najemnika
Management API100 zahtevkov/s (plačljivo)Na najemnika
Authentication APIRazličnoGlede na paket
Log StreamsV realnem časuBrez omejitve hitrosti dostave
PaginacijaNajveč 50 elementov/stranUporabi parametra page in per_page

Zahtevana paginacija

Auth0 Management API vrne največ 50 rezultatov na stran. Vedno implementiraj paginacijo z parametroma page in per_page. Vključi include_totals=true za pridobitev skupnega števila.

Odpravljanje težav

TežavaVzrokRešitev
401 UnauthorizedŽeton je potekelZahtevaj nov M2M žeton (24-urno trajanje)
403 ForbiddenManjkajoči obsegiDodeli zahtevana dovoljenja M2M aplikaciji
Prazen seznam uporabnikovNapaka v iskalni poizvedbiUporabi sintakso Lucene za iskalnik v3
Manjkajo metapodatkiMetapodatki niso nastavljeniPreveri user_metadata in app_metadata
Omejitev hitrosti 429Preveč zahtevkovImplementiraj odlog s ponovnimi poskusi

Način odpravljanja napak

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

Najboljše prakse

  1. Uporabi Log Streams – pretakanje dogodkov v realnem času namesto anketiranja Logs API
  2. Implementiraj paginacijo – vedno paginiraj poizvedbe po seznamu uporabnikov za velike najemnike
  3. Predpomni M2M žetone – ponovno uporabi žetone do skorajšnjega poteka (privzeto 24-urna življenjska doba)
  4. Uporabi iskalnik v3 – za učinkovito iskanje uporabnikov uporabi sintakso Lucene
  5. Sinhronizacija samo preverjenih uporabnikov – filtriraj po email_verified:true, da se izogneš nepreverjenim stikom
  6. Izkoristi metapodatke uporabnikov – za sinhronizacijo shrani atribute po meri v user_metadata Auth0

Varnost

  • Machine-to-Machine OAuth – dodelitev poverilnic odjemalca za avtentikacijo strežnik-strežnik
  • Obsegana dovoljenja – dodeli minimalne zahtevane obsege Management API
  • Rotacija žetonov – M2M žetoni privzeto potečejo po 24 urah
  • Avtentikacija Log Stream – za webhook končne točke uporabi preverjanje prinosnega žetona
  • Izolacija najemnika – ločene konfiguracije na najemnika Auth0
  • Šifrirani prenos – TLS 1.2+ za vse komunikacije API

Povezani viri

Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

AI pomočnik

Živjo! Vprašajte me o dokumentaciji.

Ta stran kot Markdown: auth0.md

Nalaganje Markdowna …
Odpri v Claude Odpri v ChatGPT