Pāriet uz saturu
Sursa Developers

Autentifikācija

Katrā Sursa API pieprasījumā galvenē Authorization ir API atslēga vai lietotnes OAuth piekļuves marķieris:

Authorization: Bearer kb_3f9c…

Atslēga identificē organizāciju un nosaka, ko pieprasījums var redzēt un mainīt: tās loma, tvērumi, datu profils un kolekcijas. API adresē nav sesiju un sīkdatņu. Katrs pieprasījums tiek autentificēts atsevišķi, tāpēc ar vienu un to pašu atslēgu varat sūtīt pieprasījumus paralēli un no vairākiem serveriem.

curl https://api.sursa.com/v1/me \
  -H "Authorization: Bearer $SURSA_API_KEY"

Agrākas integrācijas var sūtīt atslēgu galvenē X-API-Key. Tā joprojām tiek pieņemta, bet jaunā kodā izmantojiet Authorization: Bearer.

Akreditācijas datu veidi

Akreditācijas datiIzskatāsKur darbojas
Organizācijas API atslēgakb_…Visas API operācijas atbilstoši tās lomai, tvērumiem, datu profilam un kolekcijām.
Pielāgotā avota atslēgakbsrc_…Tikai sava pielāgotā avota push operācijas (/v1/push/sources/{source_id}/…).
OAuth piekļuves marķieriskbat_…API rokasgrāmatas operācijas atbilstoši marķiera tvērumiem. Marķieris, kas saņemts no POST /oauth/token ar autorizācijas kodu, darbojas tā darbinieka vārdā, kurš devis piekrišanu; client_credentials marķieris darbojas organizācijas vārdā, tāpat kā API atslēga. Tas ir derīgs 1 stundu.

Visus šos akreditācijas datus sūta vienādi. Pielāgotā avota atslēga nevar neko lasīt, meklēt vai mainīt ārpus sava avota; izmantojiet to tur, kur atslēgu glabā trešā puse, piemēram, integrāciju platforma.

Autentifikācijas kļūdas

Statuss un kodsKo tas nozīmēKas jādara
401 auth.not_authenticatedAtslēgas nav, tā ievadīta kļūdaini vai ir atsaukta.Pārbaudiet galveni un atslēgas vērtību.
401 api_keys.expiredAtslēgai beidzies derīguma termiņš.Izveidojiet jaunu atslēgu un aizstājiet veco.
401 sources.push_key_invalidPielāgotā avota atslēga ir nepareiza, atsaukta vai pieder citam avotam.Pārbaudiet atslēgu un avota ID ceļā.
401 oauth.token_expiredOAuth piekļuves marķierim beidzies derīguma termiņš.Saņemiet jaunu ar atsvaidzināšanas marķieri.
403 api_keys.scopeAtslēgai nav tvēruma šai operācijai.Pievienojiet tvērumu vai izmantojiet atslēgu, kurai tas ir.
403 api_keys.feature_disabledOrganizācijas plānā nav iekļautas API atslēgas.Sazinieties ar organizācijas administratoru.
403 api_keys.ip_not_allowedPieprasījums nāk no adreses, kas nav starp atslēgas atļautajām adresēm.Izsauciet API no atļauta tīkla vai mainiet atslēgas adreses.
403 api_keys.mcp_onlyPersonīgā MCP atslēga izmantota ārpus operācijas /mcp.API izsaukumiem izmantojiet organizācijas API atslēgu.
403 oauth.operation_not_allowedOperācija nav daļa no publiskā API, tāpēc OAuth marķieris to nevar izsaukt.Izmantojiet operāciju no API rokasgrāmatas.
403 org.suspendedOrganizācijas darbība ir apturēta. Tās dati tiek saglabāti.Sazinieties ar organizācijas administratoru.

403 nozīmē, ka pieprasījums ir autentificēts, bet nav atļauts. Pieprasījums pēc objekta, kuru atslēgai nav atļauts redzēt, saņem 404 tāpat kā pēc objekta, kas neeksistē, tāpēc atslēga nevar uzzināt, kas atrodas ārpus tās piekļuves.

Darbība datu profila vārdā

Atslēga ar lomu admin var pārbaudīt, ko redzētu cita cilvēku grupa: galvene X-View-As izpilda pieprasījumu datu profila un, ja vajag, arī lomas vārdā.

curl "https://api.sursa.com/v1/cards?limit=20" \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "X-View-As: employee:viewer"

Šajā režīmā pieprasījumi tikai lasa: jebkura izmaiņa atgriež 403 ar kodu view_as.read_only. OAuth marķieris vai atslēga bez lomas admin nevar izmantot X-View-As: tad atbilde ir 403 ar kodu view_as.admin_key_required. Galvene, kas nenorāda nevienu esošu profilu, saņem 400 ar kodu view_as.invalid_header.

Pārlūka lietotnes

API atļauj pieprasījumus no jebkuras tīmekļa izcelsmes (Access-Control-Allow-Origin: *) un nekad neizmanto sīkdatnes, tāpēc lapa to var izsaukt ar fetch. Tad atslēga atrodas lapā un ir redzama ikvienam, kas lapu izmanto. Izsauciet API no pārlūka tikai ar atslēgu, kuru esat gatavi rādīt šiem lietotājiem, piemēram, viewer atslēgu, kas ierobežota ar publiskām kolekcijām, vai novietojiet savu serveri starp pārlūku un Sursu.

Ko var tikai darbinieks

Organizācijas API atslēga darbojas organizācijas, nevis cilvēka vārdā. Divas API daļas pieder cilvēkiem, tāpēc tās darbojas tikai ar marķieri, kas darbojas darbinieka vārdā: ar sesiju Sursā vai ar OAuth piekļuves marķieri, kas izsniegts ar darbinieka piekrišanu.

Sarunas pieder cilvēkam. Organizācijas API atslēga sarakstā GET /v1/conversations redz tikai tās sarunas, kuras tā sākusi pati. Publiskajā API nav operācijas, kas sāk sarunu, tāpēc atslēgai saraksts parasti ir tukšs, un darbinieku sarunas tai nekad netiek rādītas. Jautājumi bez sarunas ar POST /v1/ask vai POST /v1/chat darbojas ar jebkuru atslēgu, kurai ir tvērums ask. Lai iegūtu darbinieka sarunu sarakstu un nolasītu vienas sarunas vēsturi ar GET /v1/conversations/{conv_id}, izsauciet API ar OAuth marķieri šī darbinieka vārdā. Marķieris redz tikai paša darbinieka sarunas; jebkura cita saruna atgriež 404 ar kodu conversations.not_found.

Kartīti pārbauda tikai darbinieks. Pārbaude apliecina, ka saturu ir pārbaudījis cilvēks, tāpēc operācijām POST /v1/cards/{card_id}/verification/verify un POST /v1/cards/{card_id}/verify ir vajadzīga sesija vai OAuth marķieris tā darbinieka vārdā, kurš drīkst pārbaudīt kartīti. Ar organizācijas API atslēgu vai client_credentials marķieri tās atgriež 400 ar kodu cards.verify_user_account_required. Vispirms notiek parastās pārbaudes: kartīte, ko atslēga nevar redzēt, atgriež 404, bet atslēga, kurai nav atļauts to pārbaudīt, saņem 403.