Local(g)host town

Webservices en beveiliging, de server- en de clientside. De praktijk kan soms wat weerbarstiger zijn dan de theorie.

De website was standaard: toon de informatie van de site op de pagina. Daarna kwam de nieuwe wens: combineer de informatie van een andere website (B) met de informatie van deze website (A) en toon dat op de pagina.

20170701_112238.jpg

Dat doen we dus met een AJAX call van website A naar een webservice die op website B is ingebouwd. Maar die webservice wil je niet zomaar voor iedereen beschikbaar hebben. Dus hebben we die afgeschermd met username/ password. En we hebben https toegepast.

20170701_112355.jpg

En dat werkte overal, maar niet op de test server tussen A en B, of op acceptatie tussen A en B.

  • Een 500 error (pech, een fout in de connectiestring op acceptatie B)
  • Een 400 error (pech een typefout in de configuratie met de URL naar B)
  • een 401 error (…?)

Na wat uurtjes routineus zoet met oorzaak isoleren, oplossing bedenken, instructies formuleren voor de externe hostingpartij, in het ticket zetten, na bellen, wachten op groen licht en weer testen… was het een nasty dingetje dat je maar net moet weten. Want het werkte wel tussen website A op ontwikkel en webservice op van website B op de testomgeving? En tussen website A op test en webservice op van website B op de acceptatie?

Omdat A & B op dezelfde server draaien, gelden er kennelijk andere regels: dan mag je niet ‘buitenom’ communiceren. D.w.z. je krijgt contact, maar bij je username en password krijg je een dikke middelvinger terug.

20170701_112608.jpg

De oplossing was om website B met de webservice ook beschikbaar te stellen op localhost op een willekeurige poort. Dus in IIS de binding toevoegen en de hosts-file bijwerken.

En bij website A de url in de configuratie aanpassen in localhost:[port]/mijnwebservice/. Zonder https dus, maar ja, het is toch intern.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s