D’Klinik A an d’Klinik B deelen eng Codebase, zwou Subdomains an eng Mëschung vu Visiteuren aus dem Büro an iwwer VPN. Netzwierkteams hunn d’Tendenz, déi zwou Entréen getrennt ze konfiguréieren, an dat ass egal, soulaang d’Applikatioun et net mécht. Déi Kontrollen hei drënner gehéieren an d’Applikatioun a solle sech identesch behuelen, egal duerch wéi eng Dier d’Ufro komm ass.

Éischtens: den Hostnumm nennt just e Locataire

Léist den ugefrote Hostnumm géint eng Kartéierung op, déi den Administrateur ënnerhält, a verwierf alles Onbekanntes. Benotz de validéierte Hostwäert vum Framework amplaz vum rohe Header, sou datt en ënnergeschobenen Host kee Sichschlëssel ka sprëtzen. Eng erfollegräich Korrespondenz seet dem Code, wéi eng Locataire-Konfiguratioun a wéi eng Branding geluede soll ginn. Si seet näischt driwwer, ob den Uruffer d’Date vun deem Locataire ka gesinn. Halt déi zweet Fro an enger separater Funktioun mat engem separaten Input.

Eng gedeelte Hëllefsfunktioun, déi aus engem eenzegen Hostnumm-Sichbëss souwuel de Kontext wéi och d’Erlabnes zréckgëtt, ass den Ufank vum Feeler.

Zweetens: d’Memberschaft kënnt aus der Sessioun

Sich déi aktiv Memberschafte vum authentifizéierte Benotzer a vergläich se mat deem Locataire aus der éischter Kontroll. E Benotzer, deen zu béide Klinike gehéiert, däerf wiesselen, awer de Wiessel soll eng explizit Aktioun sinn, déi am Ufrokontext festgehale gëtt, an net eng Ofleedung aus der URL. E Benotzer, deen zu enger Klinik gehéiert an déi aner ufrot, gëtt ofgeleent, och fir Downloads an API-Aufruffer.

Testt de negative Fall, andeems Dir eng Fichidentitéit an e Locataire-Parameter ännert. Wann eng vun deenen zwou Ännerungen Daten zréckgëtt, gëtt de Geltungsberäich aus der Ufro geliest an net aus der verifizéierter Memberschaft.

De Cookie-Geltungsberäich an de Single Sign-on entscheeden, wou en Konto ka presentéiert ginn. Si entscheeden net, wat deen Konto ka liesen.

Drëttens: d’Netzwierk beweist näischt iwwer d’Persoun

Eng VPN-Paart authentifizéiert en Tunnel, an eng ëffentlech Erlabneslëscht authentifizéiert en Adressberäich. Keng vun deenen zwee identifizéiert eng Persoun. NAT sammelt vill Benotzer an enger eenzeger Quelladress, an en Büroberäich mécht dat selwecht fir jiddereen am Gebai. Behandelt béid als Transportfakten a halt d’Autorisatioun an der Applikatioun, oder an enger Integratioun, déi d’Identitéit explizit behaapt a sou iwwerpréift gëtt.

DNS ass en drëtten Transportfakt. Eng privat Äntwert brauch eng privat Route, an en ëffentleche Frontend brauch en ënnerstëtzten Origin-Wee. Keng vun hinnen dréit eng Erlabnes.

Een Saz fir un d’Mauer ze hänken: d’Netzwierk entscheet, wéi eng Ufro ukënnt, an d’Applikatioun entscheet, wat se ka liesen.

Véiertens: fuert d’Matrix op béiden Entréen

Benotzt kontrolléiert Konten, fir A bei A, B bei B, A bei B, en onbekannten Hostnumm an en authentifizéierte Konto ouni Memberschafte ze testen. Déi véiert an déi fënneft solle zoue feelen an ni op e Standard-Locataire zréckfalen. Fuert déiselwecht Matrix och duerch d’VPN-Entrée, mat engem Sessiounskrouch pro Konto:

curl -s -o /dev/null -w '%{http_code}' -b jar.txt https://clinic-b.example.com/records/42
curl -s -o /dev/null -w '%{http_code}' -b jar.txt https://clinic-a.example.com/records/42

Ännert duerno en Aschreiwung an der Erlabneslëscht a fuert nach eng Kéier. En Resultat, dat sech réckelt, heescht, datt eng Netzwierkkontroll eng Autorisatiounsentscheedung mécht.

Widderhëllt d’Matrix no all Ännerung um Frontend, well en zweeten Codewee, deen d’Kontroll iwwerspréngt, ass dee heefegsten Wee, wéi dës Grenz erodéiert. Den erwaarte Resultat ass langweileg: all Entrée liwwert déiselwecht Äntwerten.

Ähnlech Artikelen