Wie die Authentifizierung eines Access-Tokens durch Owin OAuthBearerAuthentication?
, Was ich will:
- Einen token-generator verwenden OAuthAuthorizationServer und token Verbraucher OAuthBearerAuthentication (Authentifizierung der access-token).
- Verwenden OWIN-pipeline zu verwalten, das sind alles Sachen, token Zeug und web-api-Zeug.
Was ist mit dem code:
public void Configuration(IAppBuilder app)
{
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
{
AuthorizeEndpointPath = "/Authorize",
AllowInsecureHttp = true,
Provider = new OAuthAuthorizationServerProvider
{
OnGrantCustomExtension = GrantCustomExtension,
OnValidateClientRedirectUri = ValidateClientRedirectUri,
OnValidateClientAuthentication = ValidateClientAuthentication,
}
});
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
Provider = new OAuthBearerAuthenticationProvider
{
//Handles applying the authentication challenge to the response message.
ApplyChallenge=MyApplyChallenge,
//Handles processing OAuth bearer token.
RequestToken=MyRequestToken,
//Handles validating the identity produced from an OAuth bearer token.
ValidateIdentity = MyValidateIdentity,
}
});
app.UseWebApi(new WebApplication3.Config.MyWebApiConfiguration());
}
Was ist die Frage:
- Den 3 Eigenschaften
OAuthBearerAuthenticationProvider
,
ApplyChallenge
,RequestToken
undValidateIdentity
. Wie
die Verwirklichung des 3-Methode? - In der token-authetication Prozess, Was ich dachte, ist zum entschlüsseln der token für den Zugriff, überprüfen Sie die token vom client, und wenn der token überprüft wird, setzen Sie die Identitäten der token zu den
HttpContext.Current.User
.Den
OAuthBearerAuthenticationProvider
's Verantwortung zur Erfüllung der
vorherigen Schritte. Bin ich im Recht?
Nutzen Sie die walkthrough auf der ASP website?
Absolut, aber Sie nicht erwähnt, dass die 3 Methoden in OAuthBearerAuthenticationProvider
Darf ich Fragen, warum Sie wollen, um Sie umzusetzen? Ich meine, versteh mich nicht falsch, es ist gut, immer zu wissen, alle Ihre Möglichkeiten. Ich bin nur neugierig, warum Sie wollen, um das Standardverhalten außer Kraft setzen, in Ihrem Fall, was nicht Klang, wie Sie brauchen, nichts außergewöhnliches.
Die Dokumente, die von offiziellen owin-middleware ist schlecht. 🙁 Meinst du, dass die middleware hat bereits die Entschlüsselung, Validierung und setzen AUFTRAGGEBER für mich @_@ ?
Wenn Sie Folgen, dass die exemplarischen Vorgehensweise werden Sie wind-up mit einer funktionierenden Umsetzung. Also ja. Möchten Sie vielleicht tun andere Sachen nach, aber ich würde beginnen gerade erst, was der walkthrough sagt zunächst. Aber ja, ich Stimme sicherlich zu, dass die Dokumentation lässt zu wünschen übrig.
Absolut, aber Sie nicht erwähnt, dass die 3 Methoden in OAuthBearerAuthenticationProvider
Darf ich Fragen, warum Sie wollen, um Sie umzusetzen? Ich meine, versteh mich nicht falsch, es ist gut, immer zu wissen, alle Ihre Möglichkeiten. Ich bin nur neugierig, warum Sie wollen, um das Standardverhalten außer Kraft setzen, in Ihrem Fall, was nicht Klang, wie Sie brauchen, nichts außergewöhnliches.
Die Dokumente, die von offiziellen owin-middleware ist schlecht. 🙁 Meinst du, dass die middleware hat bereits die Entschlüsselung, Validierung und setzen AUFTRAGGEBER für mich @_@ ?
Wenn Sie Folgen, dass die exemplarischen Vorgehensweise werden Sie wind-up mit einer funktionierenden Umsetzung. Also ja. Möchten Sie vielleicht tun andere Sachen nach, aber ich würde beginnen gerade erst, was der walkthrough sagt zunächst. Aber ja, ich Stimme sicherlich zu, dass die Dokumentation lässt zu wünschen übrig.
InformationsquelleAutor Albert Gao | 2014-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Sie wissen, UseOAuthAuthorizationServer hat die Aufgabe, die Authentifizierung des Benutzers. Dann, UseOAuthBearerAuthentication hat die Aufgabe, sicherzustellen, dass nur authentifizierte Benutzer auf Ihre Anwendung zugreifen. Oft werden diese beiden jobs zugeordnet sind, verschiedene web-Anwendung. Es sieht aus wie Ihre Anwendung wird dabei sowohl.
Gibt es sicherlich einige Fälle waren, die Sie brauchen, um die Standardeinstellung zu überschreiben OAuthBearerAuthenticationProvider. Vielleicht haben Sie, oder haben Sie vielleicht nicht In meinem Fall, ApplicationCookie nicht ganz passend das Szenario. Also, ich bin die Speicherung eines 3rd-party-JWT token in einem cookie, sondern als der header, und verwenden es, um anzuzeigen, dass der Benutzer authentifiziert ist, um eine web-Anwendung. Ich musste auch zur Weiterleitung auf meine eigene login-Seite, sondern als ein 401.
Hier ist eine Implementierung, die beides macht:
Brauchte ich nicht zu tun, nichts besonderes in ValidateIdentity, aber ich brauchte, um zu erfüllen das interface.
Draht dazu sagen, Ihre app zu verwenden JwtBearerAuthentication mit Ihrem provider:
Morris, wie würden Sie das überschreiben der token-Validierung mit
OAuthBearerAuthenticationProvider
? Ist es Weg, dies zu tun?Ich vermute, dass
Provider = new CookieOAuthBearerProvider()
sollteProvider = new CustomOAuthBearerProvider()
?Wie kann ich dies in ASP.NET Core 2? Ich habe eine Frage: stackoverflow.com/questions/52184431/...
InformationsquelleAutor AJ Morris