Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[CGi-Perl]Aansluiting webdienst&DigiD

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goedemiddag heren,

Momenteel ben ik bezig op mijn eindstage met DigiD, waar ik moedeloos van word.
DigiD communiceert dmv redirects+parameters in de url mee te geven, voornamelijk.
De authenticatieslag(van onze webdienst) is gewoon een link naar DigiD toe vanaf de server, deze link mag niet zichtbaar zijn voor de browser van de bezoeker.

https://was-demo.digid.nl...elect-server=digidasdemo1

Met een directe link(vanzelfsprekend met de echte gegevens) krijg ik het volgende antwoord terug:


as_url=https://as-demo.digid.nl/aselectserver/server?request=login1&rid=12084228231413D9BBD7128836B97&result_code=0000&a-select-server=digidasdemo1
waarbij de RID verschilt per aanvraag

Het probleem hiervan is dat ik deze gewoon als tekst krijg in mijn browser(niet bijv parameters in de URL)zover ik heb begrepen wordt dit normaal aangevraagd dmv een CGI script.
In mijn gedachtegang wordt er zodra op onze webdienst op de juiste link wordt geklikt een CGI script aangeroepen die ten eerste de gebruiker doorlinkt naar de authenticatie van de webdienst.
code:
1
2
#!/usr/bin/perl
print "Location : authenticatielinkvanDigiD\n\n ";

Van deze link komt de output terug die opgevangen dient te worden in hetzeldfe( ?)CGI-script zodat deze met de variabelen weer de browser terug redirect naar het inlogscherm voor de gebruiker
Aangezien voor mijn gevoel CGI-Perl deels hetzelfde bevat als PHP zal zoiets als volgt dit wel kunnen opvatten(mits ik het antwoord van DigiD als input ontvang)
code:
1
2
3
4
5
6
7
8
9
10
$rid=$_GET['rid'];
$as_url=$_GET['as_url'];
$a-select-server=$_GET['a-select-server'];
$result_code=$_GET['result_code'];
$newurl=$as_url . “&rid=” . $rid . “&a-select-server” . $a-select-server

if ($result_code=="0000")
  <redirect naar $newurl>
else
  echo de bijhorende foutmelding

Ja dit is nog niet uitgewerkt, hier wil ik mee beginnen zodra ik de andere regel als input ontvang, anders heeft dit nog geen nut.

Mijn belangrijkste vraag is dus hoe ik die regel als input ontvang&hoe ik die redirect goed werkend krijg dmv iets(de CGI dat ik postte voldoet bijv?)
Als stagiair beschik ik niet over al te veel kennis(zal jullie allicht niet ontgaan zijn)maar hier fatsoenlijk informatie over vinden blijkt voor mij persoonlijk onmogelijk.

Hopelijk kunnen jullie mij(deels) uit de brand helpen, andere op- en aanmerkingen zijn ook meer dan welkom.

Verwijderd

denk aan bijv curl.

  • silentsnake
  • Registratie: September 2003
  • Laatst online: 17-11 14:15
Lijkt mij een klus voor LWP. Die kan HTTP requests sturen en results ervan terug halen, en da's een nettere methode dan rare redirect scripts. Op die manier kan je dus indirect naar de digi-id pagina gaan met de credentials van je user zonder dat je redirects of wat dan ook moet maken.

http://search.cpan.org/~gaas/libwww-perl-5.812/lib/LWP.pm
http://search.cpan.org/~g....812/lib/LWP/UserAgent.pm
http://search.cpan.org/dist/libwww-perl/lwpcook.pod

  • Johnny
  • Registratie: December 2001
  • Laatst online: 11:54

Johnny

ondergewaardeerde internetguru

Je kan CURL gebruiken in PHP, dat is een bibliotheek die meestal wel geinstalleerd is. Iets langzamer en beperkter is de functie file_get_contents() die ongeveer hetzelfde werkt waar je een URL als parameter kan geven en de inhoud van het bestand, of in dit geval het antwoord in een variable kan zetten. Met de functie parse_str kun je een string uitlezen op dezelfde manier als je doet met $_GET.

In je vraagstelling noem je allerlei technieken waarmee je iedereen hier behoorlijk verwart maar zoals ik je begrijp heb je helemaal geen Perl of CGI nodig.

[ Voor 16% gewijzigd door Johnny op 17-04-2008 20:30 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Sv3n
  • Registratie: Mei 2002
  • Laatst online: 18-11 16:02
Is de SOAP koppeling gebruiken niet makkelijker ? Ik heb ook een keer een DigiD koppeling gebouwd en dat heeft me nog geen uur gekost om te implementeren. Het is 1 request versturen en 1 request goed opvangen als ik het me nog goed herriner. Er is vast wel een SOAP library beschikbaar voor de taal die je gebruikt, daarmee is dit heel makkelijk op te lossen.

Last.fm
Films!