Wie lege ich die oAuth-Authentifizierung für eine WCF REST C # Site fest

8

Ich erstelle eine Site aus der WCF-REST-Servicevorlage 40 (CS) aus den VS 2010-Online-Vorlagen. Es funktioniert großartig, aber ich muss es sichern.

Ich muss Windows-, Linux- und iPhone-Apps unterstützen, daher scheint REST + oAuth eine gute Lösung zu sein, aber ich weiß nicht, wo ich anfangen soll.

Grundsätzlich muss ich Benutzernamen / Passwörter (natürlich zu Hash) in meine Datenbank auflösen wie traditionelle Formulare auth.

    
user574992 13.01.2011, 23:20
quelle

1 Antwort

9

OAuth übermittelt keinen Benutzernamen / Passwort. OAuth sendet einen OAuth-Header innerhalb des HTTP-Auth-Headers. Ihr Dienst muss dies herausziehen und dann testen, um sicherzustellen, dass es gültig ist.

Der OAuth-Header enthält eine Reihe von unverschlüsselten Werten (timestamp, consumer_key, nonce). Sie können diese unverschlüsselten Werte verwenden und den unverschlüsselten Schlüssel verwenden, um den geheimen Schlüssel nachzuschlagen, mit dem Ihr Dienst dieselben Werte verschlüsselt, und sicherstellen, dass er der Signatur entspricht, die auch im OAuth-Header enthalten ist. Wenn Ihre generierte Signatur mit der im OAuth-Header enthaltenen Signatur übereinstimmt, wissen Sie, dass die HTTP-Anforderung gut ist. Dann können Sie den Consumer-Key aus der Kopfzeile nehmen und ihn verwenden, um den Benutzernamen zu sehen, wenn Sie müssen.

Siehe meine Post hier . Denken Sie daran, dass es mehrere gute Bibliotheken gibt, um all das zu erleichtern, wie DotNetOpenAuth .

    
Stever B 03.02.2011 14:04
quelle

Tags und Links