2016-01-12 3 views
5

Wir versuchen, OAuth 2 Server und API-Server zu implementieren (beide sind verschiedene Server). (Unter Verwendung von NodeJS für alle)Implementierung eigenen OAuth2 Server und API-Server

enter image description here

wir verwenden https://github.com/FrankHassanabad/Oauth2orizeRecipes Autorisierungscode fließen

brauchen wir neue validateToken Funktion in oauth Server zu schreiben und traf es nur von api Seite, um diesen Benutzer zu authentifizieren nur.

Wir denken daran, Benutzer und Rollen auf der oAtH-Seite zu halten, aber wir müssen sie auf der Api-Seite überprüfen, bevor wir eine API-Anrufantwort geben.

wir versuchen, es für die Authentifizierung sowie für cms und mobile app zu verwenden. sind wir auf dem richtigen Weg oder verpassen etwas.

Antwort

0

(I konfrontiert ähnliche Situation in .Net, so in Zusammenhang mit, dass)

Nein, wenn Sie oauth verwenden Sie keine neuen Validate Token Methode zu schreiben. Wie OAuthBearerAuthenticationProvider tun dies hinter den Kulissen

app.UseJwtBearerAuthentication(
      new JwtBearerAuthenticationOptions 
      { 
       AuthenticationMode = AuthenticationMode.Active, 
       AllowedAudiences = new[] { audience }, 
       IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[] 
       { 
        new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret) 
       }, 
       Provider = new OAuthBearerAuthenticationProvider 
        { 
         OnValidateIdentity = context => 
         { 
          context.Ticket.Identity.AddClaim(new System.Security.Claims.Claim("newCustomClaim", "newValue")); 
          return Task.FromResult<object>(null); 
         } 
        } 

      }); 

(nach meiner Erfahrung). Aber wenn Sie möchten, gibt es Option Provider konfigurieren in Ihrem „startup“ file:

app.UseJwtBearerAuthentication(
      new JwtBearerAuthenticationOptions 
      { 
       AuthenticationMode = AuthenticationMode.Active, 
       AllowedAudiences = new[] { audience }, 
       IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[] 
       { 
        new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret) 
       }, 
       Provider = new CustomOAuthBearerProvider()       

      }); 

„CustomOAuthBearerProvider“ erbt „IOAuthBearerAuthenticationProvider“ Schnittstelle, die Signatur für RequestToken vorgegeben hat() -Methode, und diese Methode wird aufgerufen, bevor jede Validierung für Token. Ich denke, Sie können es für Ihre benutzerdefinierten Validierungsvorgänge in Token verwenden und dann das Token für die OAuth-Validierung senden.

Verwandte Themen