Apex-kutsed väljuvad Salesforce'ist, mitte sinu VPN-ist
Sülearvuti VPN annab sinu brauserile tee, mitte Apexile ega Marketing Cloudile. Sobita tegelik kutsuja avaliku lüüsiga või kvalifitseeritud privaatühendusega.
Privaatne API vastab sinu brauseris hetkel, mil sülearvuti VPN-iga liitub, seega peaks integratsioon töötama. See ei tööta, sest kood, mis kutse teeb, jookseb hoopis mujal. Apex jookseb Salesforce'i rakendusserverites ja Marketing Cloudi serveripoolne tegevus jookseb selle toote käituskeskkonnas. Kumbki neist ei päri sinu sülearvuti tunnelit. Tee seda lühikese protseduurina: tuvasta kutsuja, vali sissepääs, milleni see kutsuja ulatub, ühenda tee otsast otsani ja seejärel kontrolli käituskeskkonnast endast.
Kirjuta kutsuja kaart enne mis tahes võrgumuudatust
Täida viis välja ja keeldu neist ühtki oletamast. Käitusprodukt ja kontekst otsustavad kõik edasise, seega alusta sealt, mitte serveri tulemüürist.
| Field | What it must answer |
|---|---|
| Runtime | Which product and execution context issues the request? |
| Endpoint | Which hostname must that runtime resolve, and to what? |
| Path | Which supported public entry or private connection carries it? |
| Identity | Which credential and which operation is the API asked to authorize? |
| Failure | How do responses return, and what happens when the path is down? |
Brauseri vaheleht ja Apex-kutse on kaks erinevat klienti ning töötav brauser tõestab vaid, et sinu töölaualt on tee olemas. Kui käituskeskkonna väli ütleb Apex, on asjakohane küsimus, millistest aadressidest Salesforce väljub, mitte millised aadressid on sinu sülearvutil. Seepärast võib tunnel, mis paneb API brauseris laadima, jätta integratsiooni ebaõnnestuma sama ajalõpuga nagu varem. Kutsuja kaart on selleks, et peatada see viga enne, kui keegi tulemüüri muudab.
Vali sissepääs, mida kutsuja tegelikult kasutada saab
Mõlemad lahendused on õiguspärased ja lahendavad erinevaid probleeme. Esimene on teadlik avalik sissepääs: HTTPS API-lüüs või integratsiooniteenus, mis autendib kutsuja, rakendab kitsaid õigusi ja hoiab kaitstud ühendust privaatse backendiga. See ei ole sama, mis iga backend-teenuse paljastamine või haldusporti internetti suunamine.
Teine on kvalifitseeritud privaatühendus. Salesforce'i väljuvate ühenduste Private Connect dokumentatsioon kirjeldab toetatud kutsungite marsruutimist läbi Outbound Network Connectioni, mis on seotud nimetatud mandaadiga, üle määratletud AWS PrivateLinki lahenduse. Funktsioonil on väljaande-, litsentsi- ja tootepiirangud, seega kinnita, et organisatsioon vastab tingimustele, enne kui selle ümber projekteerid.
Kumbki lahendus ei ole Salesforce'i sisse paigaldatud OpenVPN klient, ja vanem väide, et iga integratsioon peab jõudma avaliku backendini, on liiga lai seal, kus sobib toetatud privaatühendus. Vali see, mida käituskeskkond toetab, ja lõpeta tee tegeliku API-ni: AWS-i lõpp-punkt ei tea sinu kohalikku ressurssi ega päri sinu sülearvuti marsruuti. DNS, backend-marsruutimine, juurdepääsupoliitika ja vastusliiklus peavad kõik järgima sinu valitud arhitektuuri. Poolik privaatne tee ebaõnnestub nii, et see näeb välja täpselt nagu autentimisprobleem.
Ühenda privaatne tee otsast otsani
Tööta API-st väljapoole ja peatu esimese lünga juures. Kinnita, et backend vastab kohapeal, siis et privaatne lõpp-punkt jõuab selleni, ja siis et nimetatud mandaat ja selle väljuv ühendus sihivad seda lõpp-punkti.
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' http://10.40.8.20:8080/health
dig +short api.partner.example
sf apex run --file scripts/apex/callout-check.apex --target-org integrationEsimene käsk tõestab, et backend on terve privaatvõrgu seest, teine näitab, milleks nimi laheneb, ja kolmas täidab kutse tegelikust Salesforce'i käituskeskkonnast. 200 esimesest ja ebaõnnestumine kolmandast isoleerivad lünga teele või mandaadile, mitte teenusele.
Hoia identiteedi ulatus täpne, kui ühendad. Nimetatud mandaat ei paranda üksi kättesaamatut lõpp-punkti, sest mandaat ja privaatühendus on seotud seaded eraldi töödega. IP-lubatud loend kitsendab võrgu vastuvõttu ja ei ole API mandaat, seega säilita tavaline TLS-i valideerimine ning teenuse enda autentimis- ja rotatsiooniprotsess. Kui test õnnestub alles pärast sertifikaadi kontrolli väljalülitamist, oled leidnud hostinime probleemi, mitte tee probleemi, ja sertifikaat peab ikkagi sobima.
Kontrolli käituskeskkonnast ja seejärel kirjuta tagasipööramine
Võta vastu kahjutu lubatud päring integratsiooni käituskeskkonnast, mitte oma masinast. Kirjuta üles vastuvõtva teenuse vaadeldud allikas, autenditud põhiisik, tulemus ja üks meelega keelatud päring, mis peab ebaõnnestuma.
curl -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://api.partner.example/v1/ping
curl -sS -o /dev/null -w '%{http_code}\n' -H 'Authorization: Bearer invalid' https://api.partner.example/v1/pingKäivita samad kaks kontrolli backendi enda võrgust, et vaadeldud allikat saaks võrrelda sellega, mida käituskeskkond tootis. Soovitud kuju on 200, millele järgneb 401 või 403; kaks 200 tähendavad, et keeldumise tee ei ole tegelikult jõustatud.
Kirjuta tagasipööramine enne, kui seda vajad: millist lubatud loendi kirjet, nimetatud mandaati või väljuvat ühendust muutsid, kellele see kuulub ja kuidas eelmine väärtus taastada. Seejärel sulge ring, nimetades piletil pilve kutsuja ja teenuse täieliku tee, et keegi ei avaks sama asja uuesti VPN-probleemina.