Autor Thema: OKAPI: Level 3 Authentication  (Gelesen 4140 mal)

Offline 4_Vs

  • Vereinsmitglied
  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 3159
  • Freier Cacher
    • vaahsen.de
OKAPI: Level 3 Authentication
« am: 08. Oktober 2013, 12:18:35 »
Hebe die Haare,

ich spiele ja inzwischen schon seit einiger Zeit mit OKAPI rum und komme auch mit Level 0 und Level 1 Authentication zurecht ... jetzt kommt der nächste Schritt und ich stehe vor einem großen FRAGEZEICHEN :)

Es geht um die Level 3 Authentication

Bei OKAPI steht folgendes:

Level 3. OAuth Consumer+Token Signature. You must call this method with proper OAuth Consumer+Token signature (based on both Consumer Secret and Token Secret).

some_method
?arg=44
&oauth_consumer_key=a7Lkeqf8CjNQTL522dH8
&oauth_nonce=2993717
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1313882596
&oauth_token=AKQbwa28Afp1YvQAqSyK
&oauth_version=1.0
&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3d

Mmmh, okay, ich nehme an, die ganzen Variablen kommen an die URL dran, mit der ich den Aufruf starte, soweit klar - aber sprechen wir mal über die einzelnen Sachen:

?arg=44Was hat es damit auf sich? Kündigt das Argument 44 die Level 3 Authentication an?
&oauth_consumer_key=a7Lkeqf8CjNQTL522dH8OK, ist klar, habe ich ...
&oauth_nonce=2993717nonce? Was ist das bitte?
&oauth_signature_method=HMAC-SHA1Das wird wahrscheinlich so fix übernommen und muss nicht geändert werden, richtig?
&oauth_timestamp=1313882596OK,timestamp ist auch klar, aber wofür benötige ich den bzw. was wird damit gemacht?
&oauth_token=AKQbwa28Afp1YvQAqSyKWie komme ich an den Token?
&oauth_version=1.0Das ist fix?
&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3dUnd was ist das?

Sorry, aber ich bin halt ein Stück weit bleeeed :)

Danke für die Hilfe ...
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)

Offline bohrsty

  • Administrator
  • Normal
  • *****
  • Beiträge: 1355
  • Teamleiter Technik
Re: OKAPI: Level 3 Authentication
« Antwort #1 am: 08. Oktober 2013, 12:53:50 »
ich kenne mich damit auch nicht aus, aber evtl. helfen die erlaeuterungen und beispiele von php.net...

http://php.net/manual/en/book.oauth.php
http://www.php.net/manual/en/oauth.examples.fireeagle.php

ansonsten hilft dir bestimmt wrygiel gerne weiter ;) ::)
gruss Nils (bohrsty)


Offline 4_Vs

  • Vereinsmitglied
  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 3159
  • Freier Cacher
    • vaahsen.de
Re: OKAPI: Level 3 Authentication
« Antwort #2 am: 08. Oktober 2013, 13:03:42 »
ich kenne mich damit auch nicht aus, aber evtl. helfen die erlaeuterungen und beispiele von php.net...

http://php.net/manual/en/book.oauth.php
http://www.php.net/manual/en/oauth.examples.fireeagle.php

ansonsten hilft dir bestimmt wrygiel gerne weiter ;) ::)
Danke erstmal ... ich hoffe noch auf flopp oder OcRacher ... die müssten das doch auch nutzen :)
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)

Offline bohrsty

  • Administrator
  • Normal
  • *****
  • Beiträge: 1355
  • Teamleiter Technik
Re: OKAPI: Level 3 Authentication
« Antwort #3 am: 08. Oktober 2013, 13:19:59 »
Florian liest glaube ich auch nur aus, dafuer waere es nicht notwendig, aber arminus (mobile webapp) oder ra_sch (c:geo) muessten auch level 3 nutzen...
gruss Nils (bohrsty)


Offline 4_Vs

  • Vereinsmitglied
  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 3159
  • Freier Cacher
    • vaahsen.de
Re: OKAPI: Level 3 Authentication
« Antwort #4 am: 08. Oktober 2013, 13:27:53 »
Florian liest glaube ich auch nur aus, dafuer waere es nicht notwendig, aber arminus (mobile webapp) oder ra_sch (c:geo) muessten auch level 3 nutzen...
Aaah, ra_sch und nicht OcRacer ;o) ...
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: OKAPI: Level 3 Authentication
« Antwort #5 am: 08. Oktober 2013, 18:20:39 »
Ich habe testweise auch mal die Level-3-Authorisierung in PHP implementiert...

Offline 4_Vs

  • Vereinsmitglied
  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 3159
  • Freier Cacher
    • vaahsen.de
Re: OKAPI: Level 3 Authentication
« Antwort #6 am: 08. Oktober 2013, 19:03:55 »
Ich habe testweise auch mal die Level-3-Authorisierung in PHP implementiert...
Prima, und kannst Du mir helfen?
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: OKAPI: Level 3 Authentication
« Antwort #7 am: 08. Oktober 2013, 20:22:34 »
Ich habe testweise auch mal die Level-3-Authorisierung in PHP implementiert...
Prima, und kannst Du mir helfen?

Ich verwende eine abgewandelte Version von twitteroauth.

Guck mal, ob das funktioniert: LINK. Da gibt's auch den zugehörigen Quellcode.

Edit: ich habe den Link wieder entfernt, da mein Code eine Exception im OKAPI-Code auslöst, wie Peter mir eben mitgeteilt hat :(
Es gibt schon einen Fix, aber der muss erst in den OKAPI-Code eingespielt werden...
« Letzte Änderung: 08. Oktober 2013, 21:22:07 von flopp »

Offline ra_sch

  • Micro
  • ***
  • Beiträge: 273
Re: OKAPI: Level 3 Authentication
« Antwort #8 am: 08. Oktober 2013, 22:39:54 »
Mmmh, okay, ich nehme an, die ganzen Variablen kommen an die URL dran, mit der ich den Aufruf starte, soweit klar - aber sprechen wir mal über die einzelnen Sachen:

?arg=44Was hat es damit auf sich? Kündigt das Argument 44 die Level 3 Authentication an?
ist nur ein Stellvertreterbeispiel: some_method?arg=44 kann sein ocapi/services/cache/geocache?cache_code=OC1234
Zitat
&oauth_consumer_key=a7Lkeqf8CjNQTL522dH8OK, ist klar, habe ich ...
&oauth_nonce=2993717nonce? Was ist das bitte?
Einmalig verwendeter Zufallsschlüssel. Damit werden Replay-Attacken verhindert (siehe OAuth-spec)
Zitat
&oauth_signature_method=HMAC-SHA1Das wird wahrscheinlich so fix übernommen und muss nicht geändert werden, richtig?
Richtig
Zitat
&oauth_timestamp=1313882596OK,timestamp ist auch klar, aber wofür benötige ich den bzw. was wird damit gemacht?
Die Timestamp wird für gültigkeitsprüfungen verwendet. Zu alte Requests werden verworfen
Zitat
&oauth_token=AKQbwa28Afp1YvQAqSyKWie komme ich an den Token?
Das erhältst du, wenn deine Seite/Anwendung 'autorisiert' wird (das ist nochmal ein eigenes Kapitel)
Zitat
&oauth_version=1.0Das ist fix?
Ja
Zitat
&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3dUnd was ist das?
Das ist das Kernstück. Diese Signatur wird aus den 'sichtbaren' Teilen deiner Anfrage (url, parameter, oauth-parameter) zusammen mit deinem Conusmer-Secret (hast du bei der OKAPI-Anmeldung bekommen) und deinem Token-Secret (hast du bei der Autorisierung bekommen) mittels des gewählten Algorithmus (hier HMAC-SHA1) berechnet. Das ist das Kernstück, das OAuth zur Authentifizierung macht. Entweder du verwendest hier eine Bibliothek, und begnügst dich mit der 'blue-pill', oder greifst zur 'red-pill' und setzt dich mit der OAuth-spec auseinander (http://tools.ietf.org/html/rfc5849). Dann kannst du natürlich immer noch eine Bibliothek einsetzen, aber dann weißt du auch, was sie tut :)
Zitat
Sorry, aber ich bin halt ein Stück weit bleeeed :)

Danke für die Hilfe ...
Ich hoffe, es war eine Hilfe

ra_sch

Offline 4_Vs

  • Vereinsmitglied
  • Vereinsmitglied
  • Large
  • *
  • Beiträge: 3159
  • Freier Cacher
    • vaahsen.de
Re: OKAPI: Level 3 Authentication
« Antwort #9 am: 09. Oktober 2013, 08:21:46 »
Ich hoffe, es war eine Hilfe

ra_sch
Auf jeden Fall ... super, klasse ... aber jetzt habe ich natürlich weitere Fragen :)

&oauth_nonce=2993717nonce? Was ist das bitte?
Einmalig verwendeter Zufallsschlüssel. Damit werden Replay-Attacken verhindert (siehe OAuth-spec)
Okay, kann ich den so erzeugen?
<?
$oauth_nonce = microtime(true);
?>

&oauth_token=AKQbwa28Afp1YvQAqSyKWie komme ich an den Token?
Das erhältst du, wenn deine Seite/Anwendung 'autorisiert' wird (das ist nochmal ein eigenes Kapitel)
Okay, da komme ich dann vllt. noch mal auf Dich zu :)

&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3dUnd was ist das?
Das ist das Kernstück. Diese Signatur wird aus den 'sichtbaren' Teilen deiner Anfrage (url, parameter, oauth-parameter) zusammen mit deinem Conusmer-Secret (hast du bei der OKAPI-Anmeldung bekommen) und deinem Token-Secret (hast du bei der Autorisierung bekommen) mittels des gewählten Algorithmus (hier HMAC-SHA1) berechnet. Das ist das Kernstück, das OAuth zur Authentifizierung macht. Entweder du verwendest hier eine Bibliothek, und begnügst dich mit der 'blue-pill', oder greifst zur 'red-pill' und setzt dich mit der OAuth-spec auseinander (http://tools.ietf.org/html/rfc5849). Dann kannst du natürlich immer noch eine Bibliothek einsetzen, aber dann weißt du auch, was sie tut :)
Mmmh, okay - ich oute mich und nehme lieber die 'blue-pill' ... jetzt muss mir nur noch einer sagen, wie die Bibliothek heisst :)

Danke, danke, danke
Micha
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)

Offline ra_sch

  • Micro
  • ***
  • Beiträge: 273
Re: OKAPI: Level 3 Authentication
« Antwort #10 am: 09. Oktober 2013, 08:29:53 »

&oauth_nonce=2993717nonce? Was ist das bitte?
Einmalig verwendeter Zufallsschlüssel. Damit werden Replay-Attacken verhindert (siehe OAuth-spec)
Okay, kann ich den so erzeugen?
<?
$oauth_nonce = microtime(true);
?>
PHP (das ist doch PHP?) ist nicht so mein Thema, aber wenn die Funktion das tut, was der Name suggeriert, funktioniert das.
&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3dUnd was ist das?
Das ist das Kernstück. Diese Signatur wird aus den 'sichtbaren' Teilen deiner Anfrage (url, parameter, oauth-parameter) zusammen mit deinem Conusmer-Secret (hast du bei der OKAPI-Anmeldung bekommen) und deinem Token-Secret (hast du bei der Autorisierung bekommen) mittels des gewählten Algorithmus (hier HMAC-SHA1) berechnet. Das ist das Kernstück, das OAuth zur Authentifizierung macht. Entweder du verwendest hier eine Bibliothek, und begnügst dich mit der 'blue-pill', oder greifst zur 'red-pill' und setzt dich mit der OAuth-spec auseinander (http://tools.ietf.org/html/rfc5849). Dann kannst du natürlich immer noch eine Bibliothek einsetzen, aber dann weißt du auch, was sie tut :)
Mmmh, okay - ich oute mich und nehme lieber die 'blue-pill' ... jetzt muss mir nur noch einer sagen, wie die Bibliothek heisst :)

Danke, danke, danke
Micha
Hier ist wahrscheinlich die von flopp erwähnte Abwandlung von twitteroauth das Richtige (wie gesagt, PHP ist nicht mein Thema). Dann musst du dich wahrscheinlich auch um die Details wie 'nonce' nicht mehr kümmern und Funktionen für das autorisieren sollte es auch geben.

Falls noch Fragen sind, bemühe ich mich gerne um eine Klärung, soweit ich dazu beitragen kann :)

Gruß
ra_sch

Offline erdbot

  • Small
  • ****
  • Beiträge: 620
Re: OKAPI: Level 3 Authentication
« Antwort #11 am: 09. Oktober 2013, 22:49:09 »
Hebe die Haare,

ich spiele ja inzwischen schon seit einiger Zeit mit OKAPI rum und komme auch mit Level 0 und Level 1 Authentication zurecht ... jetzt kommt der nächste Schritt und ich stehe vor einem großen FRAGEZEICHEN :)

Es geht um die Level 3 Authentication

Bei OKAPI steht folgendes:

Level 3. OAuth Consumer+Token Signature. You must call this method with proper OAuth Consumer+Token signature (based on both Consumer Secret and Token Secret).

some_method
?arg=44
&oauth_consumer_key=a7Lkeqf8CjNQTL522dH8
&oauth_nonce=2993717
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1313882596
&oauth_token=AKQbwa28Afp1YvQAqSyK
&oauth_version=1.0
&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3d

Mmmh, okay, ich nehme an, die ganzen Variablen kommen an die URL dran, mit der ich den Aufruf starte, soweit klar - aber sprechen wir mal über die einzelnen Sachen:

?arg=44Was hat es damit auf sich? Kündigt das Argument 44 die Level 3 Authentication an?
&oauth_consumer_key=a7Lkeqf8CjNQTL522dH8OK, ist klar, habe ich ...
&oauth_nonce=2993717nonce? Was ist das bitte?
&oauth_signature_method=HMAC-SHA1Das wird wahrscheinlich so fix übernommen und muss nicht geändert werden, richtig?
&oauth_timestamp=1313882596OK,timestamp ist auch klar, aber wofür benötige ich den bzw. was wird damit gemacht?
&oauth_token=AKQbwa28Afp1YvQAqSyKWie komme ich an den Token?
&oauth_version=1.0Das ist fix?
&oauth_signature=qbNiWkUS93fz6ADoNcjuJ7psB%2bQ%3dUnd was ist das?

Sorry, aber ich bin halt ein Stück weit bleeeed :)

Danke für die Hilfe ...

OMG... ich kann Dir das alles sagen, müsste mir Oauth in einer ruhigen Minute mal anschauen, auf den ersten Blick kann ich mir denken anhand der von Dir geposteten Auszüge wie der Ablauf ist... das ist mein täglich Brot, da ich mich mit den ganzen Tag mit PKI-Management, Redesign von Enterprise-Pki´s, Federation-Services, Encryption und Authentifizierungsverfahren beschäftige  ;)
Ich gugg ma das ich mir das zeitnah anseh... müsste aber recht einfach sein  :)
« Letzte Änderung: 09. Oktober 2013, 22:51:15 von erdbot »

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: OKAPI: Level 3 Authentication
« Antwort #12 am: 09. Oktober 2013, 23:59:36 »
Genau. Mit twitteroauth muss man sich im Prinzip gar nicht mehr um die Details kümmern - das läuft alles automatisch.

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: OKAPI: Level 3 Authentication
« Antwort #13 am: 20. Oktober 2013, 14:05:37 »
So, da der OKAPI-Bug inzwischen korrigiert wurde, gibt es jetzt meinen Test-Client mit OAuth-Level 3: http://www.flopp.net/oauth/index.php
Der Quellcode ist dort auch verlinkt.

Testweise werden mal alle eigenen Funde in einer Liste angezeigt (das benötigt OAuth-Level 3).
« Letzte Änderung: 20. Oktober 2013, 14:08:46 von flopp »

Offline dl6hbo

  • Normal
  • *****
  • Beiträge: 1682
  • - verstorben -
Re: OKAPI: Level 3 Authentication
« Antwort #14 am: 20. Oktober 2013, 15:08:41 »
Das funktioniert hervorragend !  Danke sehr !

Gruß, Rainer ( dl6hbo )
Everything should be made as simple as possible, but not simpler.
Albert Einstein