Web-API-2-OAuth-Bearer-Token mit Benutzerdefinierten Authentifizierung
Habe ich folgende Anforderungen an mein C# - Web-API-2-Service:
Den service authentifiziert Benutzer durch die Kombination von E-Mail und einen temporären Passcode, die versandt wird, um Ihren Posteingang, wie ein Faktor-Authentifizierung.
Ich brauche die Mischung in dieser Authentifizierungsmechanismus mit der Herstellung von OAuth-bearer-Token, sichere der service und die Nutzung der standard ASP.NET Genehmigung Mechanismus, um zu überprüfen jede Anfrage an das token über eine Art von [Genehmigen] - Attribut.
Habe ich erfolgreich implementiert diese Schritte
- Benutzeranforderungen Passcode
- System generiert und E-Mails Passcode, um Benutzer mit den 30 Tagen Ablauf
- Benutzer authentifiziert sich mit E-Mail + Passcode
- System prüft die Gültigkeit der Passcode
Aber ich bin nicht sicher, wie Sie Sie zu Beginn der Umsetzung der verbleibenden Schritte
- Wenn Passcode gültige system generiert OAuth bearer token
- OAuth bearer token dauert so lange, als Passcode Ablauf Datum
- Verwenden ASP.NET Identität Autorisierungs-Attribute, um die Authentifizierung und Autorisierung überprüft
- Verwenden OWIN Sicherheits-und OAuth-Middleware für die Erstellung token
- Verwenden die anspruchsbasierte Autorisierung und serialise Ansprüche in token
Den genannten Prozess beschreibt nur die Verwendung ASP.NET Identität Einzelner Benutzer-accounts als Mittel zur Authentifizierung, die nicht wie ich will, sich zu authentifizieren.
http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api
Ich tatsächlich benötigen, um Authentifizierung durch die überprüfung von E-Mail und Passwort ein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Arbeitete ich in einem ähnlichen Szenario und umgesetzt haben, hat ein Authentifizierungs-filter (
IAuthenticationFilter
) und eine benutzerdefinierte Klasse geerbt vonOAuthAuthorizationServerProvider
. In meinem Fall brauchte ich für die Authentifizierung der Anfrage mit OAuth und legacy-token. Ich glaube, dass in Ihrem Fall müssen Sie anpassen, dieAuthenticationFilter
. Siehe unten ein Beispiel für dieAuthenticationFilter
:In
WebApiConfig.cs
, müssen Sie das hinzufügen der Authentifizierung-filter wie dieser:Empfehle ich die Lektüre der offiziellen WEB-API-poster:
https://www.asp.net/media/4071077/aspnet-web-api-poster.pdf
Finden Sie in diesem post für eine detaillierte Erklärung, wie zu setup-Authentifizierung in asp.net Web-API. Dies sollte Ihnen eine gute Idee, wie man die Authentifizierung mit Ihren Anforderungen erreicht werden können, die in Web-API. Bitte lassen Sie mich wissen, wenn Sie irgendwelche Fragen oder Probleme.
Danke,
Soma.