Napake pri prijavi v Salesforce CLI so prijavljene kot ena težava in so običajno tri. Proces CLI teče nekje, brskalnik, ki dokonča spletni tok, teče nekje, in poznejši klic API teče nekje, in ta tri mesta si ne delijo nujno poti, razreševalnika ali seznama dovoljenih. Primerjava med njimi je najhitrejši način, da ugotovite, katerega tunel dejansko blokira. Nič v izpisu prijave ne pove, katera od treh je spodletela.

Trije gostitelji, ena zgodba o prijavi

Spletni tok prijave korak identitete preda brskalniku, in ta brskalnik je pogosto na prenosniku, medtem ko CLI sedi na oddaljenem razvojnem gostitelju ali v vsebniku. Prenosnik ima odjemalca VPN, oddaljeni gostitelj ima tisto, kar mu je dal ekipa za platformo, in nobena od obeh ureditev samodejno ne pokrije druge. Ikona VPN v vrstici stanja ne pove ničesar o gostitelju, ki odjemalca ni nikoli zagnal.

Po prijavi CLI pošilja svoje zahteve API od tam, kjer živi proces. Te zahteve potrebujejo DNS, usmerjanje, zaupanje TLS in odobritev odjemalca na strani org, kar so štiri ločene preveritve in vsaka lahko spodleti sama. Brskalnik, ki se je lepo prijavil, vam ne pove nič o nobeni od njih.

Obe polovici držite na eni časovnici, a ju ocenjujte ločeno. Potem lahko ena zahteva pove, katera polovica se je zlomila, ne da bi se to spremenilo v prepir o lastništvu.

Vnos org vzemite pri orgu, ne iz spomina

Spletni tok vzame URL instance in shrani rezultat pod vzdevek, in obe vrednosti bi morali priti od lastnika org, ne iz zgodovine terminala sodelavca. Gostitelj sandboxa, kopiran iz stare zahteve, je pogost vzrok prijave, ki se overi pri napačnem orgu in nato spodleti pri vsaki poizvedbi.

Uporabite obliko, ki jo dokumentira nameščen vtičnik, z lastnim odobrenim gostiteljem in vzdevkom. Ta dokumentacija je referenca za zastavice, ki so se med sfdx in trenutnim CLI spremenile.

sf org login web --instance-url https://acme--uat.sandbox.my.salesforce.com --alias uat
sf org display --target-org uat

Ime gostitelja in vzdevek zgoraj sta primera, ne privzete vrednosti, ki bi jih morali kopirati. Opravite običajne korake identitete brskalnika in MFA, namesto da bi jih obšli s skriptom, in nikoli ne postavljajte gesla, identifikatorja seje ali semena avtentikatorja v lupinsko ukaz, da bi preskočili poziv.

Kaj dokazuje predpomnjena odobritev

Vzdevek, ki se pojavi na lokalnem seznamu odobritev, dokazuje, da je prijava nekoč uspela na tem računalniku. Seznam se bere iz lokalne shrambe in ne stopi v stik z org, da bi potrdil, da žeton še deluje, zato sta lahko zdravo videč vnos in zavrnjen klic API resnična hkrati. Predpomnilnik obravnavajte kot zapis preteklosti, ne kot preizkus žive povezljivosti. Preveritev predpomnilnika odgovori na vprašanje podpore, a preiskave povezljivosti nikoli ne zaključi.

Enaka razlika velja za sejo brskalnika. Zavihek, ki še vedno prikazuje org, ne pomeni, da shranjeni žeton CLI ustreza trenutni politiki, ker se življenjska doba žetona, omejitve IP in pravila odjemalske aplikacije uveljavljajo na meji API.

Preberite lokalni zapis, preden ga izbrišete, saj sta vzdevek in gostitelj org tisti dve dejstvi, ki ju bo podpora zahtevala. Odstranitev vzdevka je povratna, a odstranitev napačnega sredi incidenta doda le drugo težavo.

Kje se zahteva API dejansko zavrne

Sledite eni zahtevi od začetka do konca in zabeležite, katera komponenta odgovori. Napaka TLS poimenuje drugačno težavo kot 403, ki poimenuje drugačno težavo kot časovna omejitev, in časovna omejitev je edina od treh, ki kaže na tunel kot prvega osumljenca. Branje razreda napake pred sporočilom prihrani veliko ugibanja. Zapišite razred, preden kar koli znova zaženete.

Omejitve izvornega naslova so primer, ki da prijavo, ki deluje, in poizvedbo, ki ne deluje, ker lahko spletni tok in klic API odideta skozi različne naslove. Popravljanje tega s širšim seznamom dovoljenih je odločitev lastnika org, ne udobnost, in moral bi biti najmanjši obseg, ki pokrije gostitelja.

Zabeležite ukaz, ki spodleti, vzdevek, gostitelja izvajanja in časovni žig, žeton pa pustite zunaj vsega, kar prilepite v zahtevo. Ta štirivrstični povzetek je tisto, kar lastnik org potrebuje za preverjanje svoje strani.

Preverite tok z gostitelja, ki ga bo uporabljal

Preizkusite s stroja, ki bo izvajal delovno obremenitev. Prijava, preverjena na prenosniku, ne pove ničesar o gradbenem agentu v drugi omrežni coni, in razlika je natanko tisto, kar poskušate najti.

Za preveritev uporabite neškodljivo odobreno branje, in če spodleti, obdržite prvo napako.

sf org list auth
sf org display --target-org uat
sf data query --target-org uat --query "select Id, Name from Organization"

Ko prijava uspe, poizvedba pa spodleti, so preostali kandidati DNS, usmerjanje, prestrezanje TLS in odjemalska politika na strani org, in vsak ima svojega lastnika. Ko spodleti sama prijava, brskalnik in CLI verjetno nista na istem gostitelju, in popravek spada k ureditvi med njima, ne k tunelu. Avtomatizacija dobi še eno pravilo: nenadzorovana naloga potrebuje odobreno prijavo na podlagi potrdila, ker predpomnjena interaktivna seja, kopirana na delavca, ni zasnova identitete.

Sorodni članki