WEB-API - Authentifizierung mit Bearer-token

Habe ich eine MVC-Anwendung für die Zulassung der Externen Authentifizierung/Registrierung. Es hat erstellt alle notwendigen Komponenten (Owin, EF, Regiter, Login ,Logout) und ich bin in der Lage zu führen Sie alle grundlegenden Tätigkeiten in der Anwendung.

Nun, ich möchte, um die Integration der web application mit dem WEB-API, die verwendet wird, durch meine mobile app zu. Ich stecke die Authentifizierung in der web-api-Aufrufe (mit der bearer-token erhielt ich von der web-Applikation).

Sah ich Beispiele zum erstellen von WEB API-Projekte mit OWIN-middleware aktiviert. Aber ich weiß nicht, wie man das zentralisieren der externen Authentifizierung, und verwenden Sie die token für meine web-Anwendung und einer mobilen Applikation
Und ich will nicht gehen für die ECKIGE oder Single-page-Anwendung.
Kann mir jemand empfehlen mit den richtigen technischen Weg, um dieses Problem zu beheben.
Danke.

Schritt 1:

Erstellte ich ein MVC-Projekt in visual studio 2015 mit Individueller Anmeldung Aktiviert. Und konfiguriert die Tasten, dass ich alles konfiguriert in der google developer-Konsole. Meine Start.cs müssen Sie den folgenden code

 public void ConfigureAuth(IAppBuilder app)
    {
        //Configure the db context, user manager and signin manager to use a single instance per request
        app.CreatePerOwinContext(ApplicationDbContext.Create);
        app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
        app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

        //Enable the application to use a cookie to store information for the signed in user
        //and to use a cookie to temporarily store information about a user logging in with a third party login provider
        //Configure the sign in cookie
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider
            {
                //Enables the application to validate the security stamp when the user logs in.
                //This is a security feature which is used when you change a password or add an external login to your account.  
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
        });

Schritt 2:

Verändert die webconfig Datei auf meinen lokalen DB und die app starte, bin ich in der Lage, erfolgreich login über google mit meinem Google Mail-Konto und Benutzer-Informationen werden Hinzugefügt, um ASPUSerTables in die DB erfolgreich

Schritt 3:

Nun wollte ich zum erstellen eines WEB-API-Projekt, die Verbindung mit der DB und ermittelt werden einige Daten, um das MVC-web-Anwendung und Mobile Anwendung (ich bin stuck on authentication Teil hier). Ich muss die Verwendung von third-party-Authentifizierung, um meine Handy-app (Xamarin), und verwenden Sie Standard-API von meiner Mobil-app und MVC-website

Schritt 4
Also dachte ich, Statt der WEB-Anwendung (Schritt 1), sollte ich erstellt haben, WEB-API-Projekt, das wie folgt Aussehen zurückgeben, das auth-token in Start.cs und speichern, die Cookies in der website zu pass in die nachfolgenden Anforderungen.

app.UseCookieAuthentication(new CookieAuthenticationOptions());
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

        //Configure the application for OAuth based flow
        PublicClientId = "self";
        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId),
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            //In production mode set AllowInsecureHttp = false
            AllowInsecureHttp = true
        };

Ich nicht gehen wollen mit WINKEL-und ich brauche meine WebApplication(MVC) und WEB-API-Projekt Authentifiziert, ordnungsgemäß für alle Anforderungen. Bitte informieren Sie mich, die
richtigen Weg.
Dank

wo sind Sie stecken in der Authentifizierung mit bearer-token ?? was ist die Fehlermeldung, die Sie bekommen, dass wird hilfreich sein, um Ihnen zu Antworten Frage. Ich habe das getan-Projekten, bei denen mobile-und web verwenden die gleiche Api-ohne Frage.
Hi Jawand. Vielen Dank für Ihre sofortige Antwort. In meinem MVC-Projekt, ich bin in der Lage, um die Ansprüche von google in meinem AccountController und in der Lage, sich die details in ASPUsers Tabellen. Ich erstellte separate web-api-Projekt ohne owin-Komponenten (ist es richtig) und autorisieren müssen von der web-Anwendung. Ich bin mir nicht sicher, wie man das access token in die webapp cookies und genehmigen die REST-Aufrufe. Bitte führe mich die Schritte zum erstellen von einfachen MVC-client-Anwendung (nicht eckig) und web-api-Projekt zur Unterstützung externer Authentifizierung in web und mobile app.
Können Sie fügen Sie einige code, um die Frage?
Hi. Danke, ich habe aktualisiert es Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen
ich bin angenommen, Sie möchten, verwenden Sie ein standard-MVC-Controllers in Ihrem web-Anwendung, richtig ? und Sie wollen rufen Sie Ihre Web API MVC-controller ? bitte korrigieren Sie mich, wenn ich falsch bin. dies wird mir helfen, um Ihre Frage zu beantworten.

InformationsquelleAutor DevExpress | 2017-03-23

Schreibe einen Kommentar