2016-04-08 6 views
0

Ich bin ein azurblauer Benutzer und verwende den MobileService-Client, um azurblaue Token von oAuth-Provider-Token zu generieren.Azure-Authentifizierung mit oAuth und Tokens

Ich möchte Benutzer sicher lesen/schreiben zu MY API, und es scheint, dass der einzige eindeutige Bezeichner, den es mir gibt, eine Ganzzahl userID ist. Das Token, ein schwieriger zu erratender String, scheint sich jedes Mal zu ändern, wenn ich einen nicht authentifizierten Client erzeuge.

Was ist die beste Vorgehensweise dafür? Könnte jemand einfach einen Client mit meinem Appkey öffnen, die 25-stellige Benutzer-ID erraten und dann meine API anrufen?

Wie kann ich mit dem Token sichere Lese-/Schreibzugriffe auf meine API bereitstellen? Oder ist die Verwendung der Benutzer-ID, https, Verschleierung usw. meine beste Wette? Vielleicht könnte ich ein Tutorial verwenden, wie Tokens funktionieren.

Antwort

0

Hier sind zwei oder drei Stücke.

1) Der OAuth-Anbieter (Facebook, Google, etc.) bietet Ihnen wahrscheinlich eine kryptographisch signiert JSON Web Token (JWT) - sichere und vertrauenswürdige 2) Der ZUMO Token ist ebenfalls ein JWT - kryptografisch signiert und sein Vertrauenswürdige. 3) Sie können die JWT den Ansprüchen konvertieren, die die JWT durch genannt getIdentity sicher() (node.js Server SDK) oder GetIdentityAsync <> (ASP.NET Server SDK)

Sie einige Informationen finden auf meiner blog: https://shellmonger.com/2016/04/08/30-days-of-zumo-v2-azure-mobile-apps-day-5-custom-authentication/ - Ich bin gerade mitten in der Diskussion über die Authentifizierung für Azure Mobile Apps.

+0

Vielen Dank. Ihr Blog ist gut geschrieben und es wird sehr nett sein, als eine Ressource zu verwenden. Wenn Sie Zeit haben zu antworten, möchte ich Ihnen eine oder zwei Fragen stellen, um mir Kopfschmerzen zu ersparen ... –

+0

Grundlegende Frage von mir, aber was meinen Sie mit "Behauptungen, die die JWT unterstützen"? Bedeutet das einfach, dass ich den von getIdentity() auf meinem Server zurückgegebenen Wert verwenden sollte, um das eindeutige Token zu erhalten, das ich möchte? –

+0

Wenn ein Identity Provider das Token zurückgibt, wird es im Allgemeinen als JWT - Json Web Token formatiert (siehe jwt.io) - in diesem sind bestimmte Ansprüche - Dinge wie "diese Benutzer Email Adresse ist X" - definiert als JSON Blob. Sie können sehen, was der Dienst beim Aufruf von GetIdentityAsync <>() zurückgibt, indem Sie die Informationen in /.auth/me nach der Authentifizierung überprüfen (die URL ist relativ zu Ihrem azure-Service). –