ASP.NET Web API 'SI (C#) Ile dış kimlik doğrulama hizmetleriExternal Authentication Services with ASP.NET Web API (C#)

Visual Studio 2017 ve ASP.NET 4.7.2, birden çok OAuth/OpenID ve sosyal medya kimlik doğrulama hizmeti içeren dış kimlik doğrulama hizmetleriyle tümleştirilecek tek sayfalı uygulamalar (Spa) ve Web API hizmetlerinin güvenlik seçeneklerini genişletin: Microsoft hesapları, Twitter, Facebook ve Google.Visual Studio 2017 and ASP.NET 4.7.2 expand the security options for Single Page Applications (SPA) and Web API services to integrate with external authentication services, which include several OAuth/OpenID and social media authentication services: Microsoft Accounts, Twitter, Facebook, and Google.

Bu Izlenecek yoldaIn this Walkthrough

ÖnkoşullarPrerequisites

Bu yönergedeki örnekleri izlemek için aşağıdakilere sahip olmanız gerekir:To follow the examples in this walkthrough, you need to have the following:

Dış kimlik doğrulama hizmetlerini kullanmaUsing External Authentication Services

Web geliştiricileri için şu anda kullanılabilir olan dış kimlik doğrulama hizmetlerinin her biri, yeni Web uygulamaları oluştururken geliştirme süresini azaltmaya yardımcı olur.The abundance of external authentication services that are currently available to web developers help to reduce development time when creating new web applications. Web kullanıcıları genellikle popüler Web Hizmetleri ve sosyal medya web siteleri için birkaç mevcut hesaba sahiptir, bu nedenle bir Web uygulaması kimlik doğrulama hizmetlerini bir dış Web hizmetinden veya sosyal medya web sitesinden uygularsa, , bir kimlik doğrulama uygulamasının oluşturulması için harcanacak.Web users typically have several existing accounts for popular web services and social media websites, therefore when a web application implements the authentication services from an external web service or social media website, it saves the development time that would have been spent creating an authentication implementation. Bir dış kimlik doğrulama hizmeti kullanmak, son kullanıcıların Web uygulamanız için başka bir hesap oluşturmak zorunda kalmadan ve ayrıca başka bir Kullanıcı adı ve parola hatırlamasını sağlar.Using an external authentication service saves end users from having to create another account for your web application, and also from having to remember another username and password.

Geçmişte, geliştiricilerin iki seçeneği vardı: kendi kimlik doğrulama uygulamasını oluşturun veya bir dış kimlik doğrulama hizmetini uygulamalarıyla tümleştirmeyi öğrenin.In the past, developers have had two choices: create their own authentication implementation, or learn how to integrate an external authentication service into their applications. En temel düzeyde aşağıdaki diyagramda, bir Kullanıcı Aracısı (Web tarayıcısı) için bir dış kimlik doğrulama hizmeti kullanmak üzere yapılandırılmış bir Web uygulamasından bilgi isteyen basit bir istek akışı gösterilmektedir:At the most basic level, the following diagram illustrates a simple request flow for a user agent (web browser) that is requesting information from a web application that is configured to use an external authentication service:

Önceki diyagramda, Kullanıcı Aracısı (veya bu örnekteki Web tarayıcısı), Web tarayıcısını bir dış kimlik doğrulama hizmetine yönlendiren bir Web uygulamasına istek yapar.In the preceding diagram, the user agent (or web browser in this example) makes a request to a web application, which redirects the web browser to an external authentication service. Kullanıcı Aracısı kimlik bilgilerini dış kimlik doğrulama hizmetine gönderir ve Kullanıcı aracısının kimliği başarıyla doğrulandıktan sonra, dış kimlik doğrulama hizmeti, Kullanıcı aracısını bir belirteç formuyla, Kullanıcı Aracısı Web uygulamasına gönderilir.The user agent sends its credentials to the external authentication service, and if the user agent has successfully authenticated, the external authentication service will redirect the user agent to the original web application with some form of token which the user agent will send to the web application. Web uygulaması, Kullanıcı aracısının dış kimlik doğrulama hizmeti tarafından başarıyla doğrulandığını doğrulamak için belirtecini kullanır ve Web uygulaması, Kullanıcı Aracısı hakkında daha fazla bilgi toplamak için belirteci kullanabilir.The web application will use the token to verify that the user agent has been successfully authenticated by the external authentication service, and the web application may use the token to gather more information about the user agent. Uygulama, Kullanıcı aracısının bilgilerini işlemeyi tamamladıktan sonra, Web uygulaması, yetkilendirme ayarlarına bağlı olarak kullanıcı aracısına uygun yanıtı döndürür.Once the application is done processing the user agent's information, the web application will return the appropriate response to the user agent based on its authorization settings.

Bu ikinci örnekte, Kullanıcı Aracısı Web uygulaması ve dış yetkilendirme sunucusu ile anlaşır ve Web uygulaması, Kullanıcı hakkında ek bilgi almak için dış yetkilendirme sunucusuyla ek iletişim gerçekleştirir AracısıIn this second example, the user agent negotiates with the web application and external authorization server, and the web application performs additional communication with the external authorization server to retrieve additional information about the user agent:

Visual Studio 2017 ve ASP.NET 4.7.2, aşağıdaki kimlik doğrulama hizmetleri için yerleşik tümleştirme sağlayarak, dış kimlik doğrulama hizmetleriyle tümleştirmeyi daha kolay hale getirir:Visual Studio 2017 and ASP.NET 4.7.2 make integration with external authentication services easier for developers by providing built-in integration for the following authentication services:

  • FacebookFacebook
  • GoogleGoogle
  • Microsoft hesapları (Windows Live ID hesapları)Microsoft Accounts (Windows Live ID accounts)
  • TwitterTwitter

Bu yönergedeki örneklerde, Visual Studio 2017 ile birlikte gelen yeni ASP.NET Web uygulaması şablonunu kullanarak desteklenen dış kimlik doğrulama hizmetlerinin her birinin nasıl yapılandırılacağı gösterilir.The examples in this walkthrough will demonstrate how to configure each of the supported external authentication services by using the new ASP.NET Web Application template that ships with Visual Studio 2017.

Note

Gerekirse, FQDN 'nizi dış kimlik doğrulama hizmetinizin ayarlarına eklemeniz gerekebilir.If necessary, you may need to add your FQDN to the settings for your external authentication service. Bu gereksinim, uygulama ayarlarınızda FQDN 'nin istemcileriniz tarafından kullanılan FQDN ile eşleşmesini gerektiren bazı dış kimlik doğrulama hizmetleri için güvenlik kısıtlamalarını temel alır.This requirement is based on security constraints for some external authentication services which require the FQDN in your application settings to match the FQDN that is used by your clients. (Bunun adımları her dış kimlik doğrulama hizmeti için büyük ölçüde farklılık gösterir; bu gerekli olup olmadığını ve bu ayarların nasıl yapılandırılacağını öğrenmek için her bir dış kimlik doğrulama hizmetine yönelik belgelere başvurmanız gerekir.) Bu ortamın test edilmesi için bir FQDN kullanmak üzere IIS Express yapılandırmanız gerekiyorsa, bu kılavuzda daha sonra tam etki alanı adı kullanmak için IIS Express yapılandırma bölümüne bakın.(The steps for this will vary greatly for each external authentication service; you will need to consult the documentation for each external authentication service to see if this is required and how to configure these settings.) If you need to configure IIS Express to use an FQDN for testing this environment, see the Configuring IIS Express to use a Fully Qualified Domain Name section later in this walkthrough.

Örnek Web uygulaması oluşturmaCreate a Sample Web Application

Aşağıdaki adımlar, ASP.NET Web uygulaması şablonunu kullanarak örnek bir uygulama oluşturma konusunda size yol açacağından, bu kılavuzda daha sonra bu örnek uygulamayı dış kimlik doğrulama hizmetlerinin her biri için kullanacaksınız.The following steps will lead you through creating a sample application by using the ASP.NET Web Application template, and you will use this sample application for each of the external authentication services later in this walkthrough.

Visual Studio 2017 ' u başlatın ve başlangıç sayfasından Yeni proje ' yi seçin.Start Visual Studio 2017 and select New Project from the Start page. Ya da Dosya menüsünde Yeni ' yi ve ardından Proje' yi seçin.Or, from the File menu, select New and then Project.

Yeni proje iletişim kutusu görüntülendiğinde, yüklü ' ı seçin ve görsel C# ' i genişletin.When the New Project dialog box is displayed, select Installed and expand Visual C#. Görsel C# bölümünde Web' i seçin.Under Visual C#, select Web. Proje şablonları listesinde ASP.NET Web uygulaması (.NET Framework) öğesini seçin.In the list of project templates, select ASP.NET Web Application (.Net Framework). Projeniz için bir ad girin ve Tamam' a tıklayın.Enter a name for your project and click OK.

Yeni ASP.NET projesi görüntülendiğinde tek sayfalı uygulama şablonunu seçin ve proje oluştur' a tıklayın.When the New ASP.NET Project is displayed, select the Single Page Application template and click Create Project.

Visual Studio 2017, projenizi oluşturduğundan bekleyin.Wait as Visual Studio 2017 creates your project.

Visual Studio 2017, projenizi oluşturmayı tamamladığında, uygulama_başlangıç klasöründe bulunan Startup.auth.cs dosyasını açın.When Visual Studio 2017 has finished creating your project, open the Startup.Auth.cs file that is located in the App_Start folder.

Projeyi ilk oluşturduğunuzda, Startup.auth.cs dosyasında dış kimlik doğrulama hizmetlerinden hiçbiri etkinleştirilmemiştir; Aşağıda, kodunuzun neye benzebileceği, bir dış kimlik doğrulama hizmetini ve ASP.NET uygulamanızla Microsoft hesapları, Twitter, Facebook veya Google kimlik doğrulamasını kullanabilmeniz için gereken tüm ayarları vurgulayabileceğiniz bölümler verilmiştir:When you first create the project, none of the external authentication services are enabled in Startup.Auth.cs file; the following illustrates what your code might resemble, with the sections highlighted for where you would enable an external authentication service and any relevant settings in order to use Microsoft Accounts, Twitter, Facebook, or Google authentication with your ASP.NET application:

using System;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.DataProtection;
using Microsoft.Owin.Security.Google;
using Microsoft.Owin.Security.OAuth;
using Owin;
using WebApplication1.Models;
using WebApplication1.Providers;

namespace WebApplication1
{
    public partial class Startup
    {
        // Enable the application to use OAuthAuthorization. You can then secure your Web APIs
        static Startup()
        {
            PublicClientId = "web";

            OAuthOptions = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath = new PathString("/Token"),
                AuthorizeEndpointPath = new PathString("/Account/Authorize"),
                Provider = new ApplicationOAuthProvider(PublicClientId),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
                AllowInsecureHttp = true
            };
        }

        public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }

        public static string PublicClientId { get; private set; }

        // For more information on configuring authentication, please visit https://go.microsoft.com/fwlink/?LinkId=301864
        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
            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(20),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });
            // Use a cookie to temporarily store information about a user logging in with a third party login provider
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
            app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            // Enables the application to remember the second login verification factor such as phone or email.
            // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
            // This is similar to the RememberMe option when you log in.
            app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);

            // Enable the application to use bearer tokens to authenticate users
            app.UseOAuthBearerTokens(OAuthOptions);

            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //    consumerKey: "",
            //    consumerSecret: "");

            //app.UseFacebookAuthentication(
            //    appId: "",
            //    appSecret: "");

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }
    }
}

Web uygulamanızı derlemek ve hata ayıklamak için F5 tuşuna bastığınızda, hiçbir dış kimlik doğrulama hizmeti tanımlanmayacak olduğunu göreceğiniz bir oturum açma ekranı görüntülenir.When you press F5 to build and debug your web application, it will display a login screen where you will see that no external authentication services have been defined.

Aşağıdaki bölümlerde, Visual Studio 2017 ' de ASP.NET ile birlikte sunulan dış kimlik doğrulama hizmetlerinin her birini nasıl etkinleştireceğinizi öğreneceksiniz.In the following sections, you will learn how to enable each of the external authentication services that are provided with ASP.NET in Visual Studio 2017.

Facebook kimlik doğrulamasını etkinleştirmeEnabling Facebook authentication

Facebook kimlik doğrulamasının kullanılması için bir Facebook Geliştirici hesabı oluşturmanız gerekir ve projeniz, Facebook 'tan çalışması için bir uygulama KIMLIĞI ve gizli anahtar gerektirir.Using Facebook authentication requires you to create a Facebook developer account, and your project will require an application ID and secret key from Facebook in order to function. Facebook Geliştirici hesabı oluşturma ve uygulama KIMLIĞINIZI ve gizli anahtarınızı alma hakkında daha fazla bilgi için bkz. https://go.microsoft.com/fwlink/?LinkID=252166.For information about creating a Facebook developer account and obtaining your application ID and secret key, see https://go.microsoft.com/fwlink/?LinkID=252166.

Uygulama KIMLIĞI ve gizli anahtarı aldıktan sonra, Web uygulamanız için Facebook kimlik doğrulamasını etkinleştirmek üzere aşağıdaki adımları kullanın:Once you have obtained your application ID and secret key, use the following steps to enable Facebook authentication for your web application:

  1. Projeniz Visual Studio 2017 ' de açıldığında, Startup.auth.cs dosyasını açın.When your project is open in Visual Studio 2017, open the Startup.Auth.cs file.

  2. Kodun Facebook kimlik doğrulaması bölümünü bulun:Locate the Facebook authentication section of code:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    //app.UseTwitterAuthentication(
    //    consumerKey: "",
    //    consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //    appId: "",
    //    appSecret: "");
    
    //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    //{
    //    ClientId = "",
    //    ClientSecret = ""
    //});
    
  3. Vurgulanan kod satırlarının açıklamalarını kaldırmak için "//" karakterleri kaldırın ve ardından uygulama KIMLIĞINIZI ve gizli anahtarınızı ekleyin.Remove the "//" characters to uncomment the highlighted lines of code, and then add your application ID and secret key. Bu parametreleri ekledikten sonra projenizi yeniden derleyebilirsiniz:Once you have added those parameters, you can recompile your project:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    //app.UseTwitterAuthentication(
    //   consumerKey: "",
    //   consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //   appId: "426f62526f636b73",
    //   appSecret: "");
    
    //app.UseGoogleAuthentication();
    
  4. Web uygulamanızı Web tarayıcınızda açmak için F5 tuşuna bastığınızda Facebook 'un bir dış kimlik doğrulama hizmeti olarak tanımlandığını görürsünüz:When you press F5 to open your web application in your web browser, you will see that Facebook has been defined as an external authentication service:

  5. Facebook düğmesine tıkladığınızda, tarayıcınız Facebook oturum açma sayfasına yönlendirilir:When you click the Facebook button, your browser will be redirected to the Facebook login page:

  6. Facebook kimlik bilgilerinizi girdikten ve oturum aç' a tıkladıktan sonra, Web tarayıcınız Web uygulamanıza geri yönlendirilir ve bu, Facebook hesabınızla Ilişkilendirmek istediğiniz Kullanıcı adını ister:After you enter your Facebook credentials and click Log in, your web browser will be redirected back to your web application, which will prompt you for the User name that you want to associate with your Facebook account:

  7. Kullanıcı adınızı girdikten ve Kaydol düğmesine tıkladıktan sonra, Web uygulamanız Facebook hesabınız için varsayılan giriş sayfasını görüntüleyecektir:After you have entered your user name and clicked the Sign up button, your web application will display the default home page for your Facebook account:

Google kimlik doğrulamasını etkinleştirmeEnabling Google Authentication

Google kimlik doğrulamasının kullanılması için bir Google Geliştirici hesabı oluşturmanız gerekir ve projenizin çalışması için Google 'dan bir uygulama KIMLIĞI ve gizli anahtar gerekir.Using Google authentication requires you to create a Google developer account, and your project will require an application ID and secret key from Google in order to function. Google Geliştirici hesabı oluşturma ve uygulama KIMLIĞINIZI ve gizli anahtarınızı alma hakkında bilgi için bkz. https://developers.google.com.For information about creating a Google developer account and obtaining your application ID and secret key, see https://developers.google.com.

Web uygulamanızda Google kimlik doğrulamasını etkinleştirmek için aşağıdaki adımları kullanın:To enable Google authentication for your web application, use the following steps:

  1. Projeniz Visual Studio 2017 ' de açıldığında, Startup.auth.cs dosyasını açın.When your project is open in Visual Studio 2017, open the Startup.Auth.cs file.

  2. Kodun Google Authentication bölümünü bulun:Locate the Google authentication section of code:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    //app.UseTwitterAuthentication(
    //    consumerKey: "",
    //    consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //    appId: "",
    //    appSecret: "");
    
    //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    //{
    //    ClientId = "",
    //    ClientSecret = ""
    //});
    
  3. Vurgulanan kod satırlarının açıklamalarını kaldırmak için "//" karakterleri kaldırın ve ardından uygulama KIMLIĞINIZI ve gizli anahtarınızı ekleyin.Remove the "//" characters to uncomment the highlighted lines of code, and then add your application ID and secret key. Bu parametreleri ekledikten sonra projenizi yeniden derleyebilirsiniz:Once you have added those parameters, you can recompile your project:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    //app.UseTwitterAuthentication(
    //   consumerKey: "",
    //   consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //   appId: "",
    //   appSecret: "");
    
    app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    {
        ClientId = "477522346600.apps.googleusercontent.com",
        ClientSecret = "gobkdpbocikdfbnfahjladnetpdkvmic"
    });
    
  4. Web uygulamanızı Web tarayıcınızda açmak için F5 tuşuna bastığınızda, Google 'ın dış kimlik doğrulama hizmeti olarak tanımlandığını görürsünüz:When you press F5 to open your web application in your web browser, you will see that Google has been defined as an external authentication service:

  5. Google düğmesine tıkladığınızda, tarayıcınız Google oturum açma sayfasına yönlendirilir:When you click the Google button, your browser will be redirected to the Google login page:

  6. Google kimlik bilgilerinizi girdikten ve oturum aç' a tıkladıktan sonra Google, Web uygulamanızın Google hesabınıza erişmek için gereken izinlere sahip olduğunu doğrulamanızı ister:After you enter your Google credentials and click Sign in, Google will prompt you to verify that your web application has permissions to access your Google account:

  7. Kabul et' e tıkladığınızda, Web tarayıcınız Web uygulamanıza geri yönlendirilir ve bu, Google hesabınızla Ilişkilendirmek istediğiniz Kullanıcı adını ister:When you click Accept, your web browser will be redirected back to your web application, which will prompt you for the User name that you want to associate with your Google account:

  8. Kullanıcı adınızı girdikten ve Kaydol düğmesine tıkladıktan sonra, Web uygulamanız Google hesabınız için varsayılan giriş sayfasını görüntüleyecektir:After you have entered your user name and clicked the Sign up button, your web application will display the default home page for your Google account:

Microsoft kimlik doğrulamasını etkinleştirmeEnabling Microsoft Authentication

Microsoft kimlik doğrulaması, bir geliştirici hesabı oluşturmanızı gerektirir ve çalışması için istemci KIMLIĞI ve istemci gizli anahtarı gerektirir.Microsoft authentication requires you to create a developer account, and it requires a client ID and client secret in order to function. Bir Microsoft Geliştirici hesabı oluşturma ve istemci KIMLIĞINIZI ve istemci gizli anahtarını alma hakkında bilgi için bkz. https://go.microsoft.com/fwlink/?LinkID=144070.For information about creating a Microsoft developer account and obtaining your client ID and client secret, see https://go.microsoft.com/fwlink/?LinkID=144070.

Tüketici anahtarınızı ve tüketici gizli anahtarını aldıktan sonra, Web uygulamanız için Microsoft kimlik doğrulamasını etkinleştirmek üzere aşağıdaki adımları kullanın:Once you have obtained your consumer key and consumer secret, use the following steps to enable Microsoft authentication for your web application:

  1. Projeniz Visual Studio 2017 ' de açıldığında, Startup.auth.cs dosyasını açın.When your project is open in Visual Studio 2017, open the Startup.Auth.cs file.

  2. Kodun Microsoft kimlik doğrulama bölümünü bulun:Locate the Microsoft authentication section of code:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    //app.UseTwitterAuthentication(
    //   consumerKey: "",
    //   consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //   appId: "",
    //   appSecret: "");
    
    //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    //{
    //    ClientId = "",
    //    ClientSecret = ""
    //});
    
  3. Vurgulanan kod satırlarının açıklamalarını kaldırmak için "//" karakterleri kaldırın ve ardından istemci KIMLIĞINIZI ve istemci gizli anahtarını ekleyin.Remove the "//" characters to uncomment the highlighted lines of code, and then add your client ID and client secret. Bu parametreleri ekledikten sonra projenizi yeniden derleyebilirsiniz:Once you have added those parameters, you can recompile your project:

    // Uncomment the following lines to enable logging in with third party login providers
    app.UseMicrosoftAccountAuthentication(
        clientId: "426f62526f636b73",
        clientSecret: "57686f6120447564652c2049495320526f636b73");
    
    //app.UseTwitterAuthentication(
    //   consumerKey: "",
    //   consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //   appId: "",
    //   appSecret: "");
    
    //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    //{
    //    ClientId = "",
    //    ClientSecret = ""
    //});
    
  4. Web uygulamanızı Web tarayıcınızda açmak için F5 tuşuna bastığınızda, Microsoft 'un bir dış kimlik doğrulama hizmeti olarak tanımlandığını görürsünüz:When you press F5 to open your web application in your web browser, you will see that Microsoft has been defined as an external authentication service:

  5. Microsoft düğmesine tıkladığınızda, tarayıcınız Microsoft oturum açma sayfasına yönlendirilir:When you click the Microsoft button, your browser will be redirected to the Microsoft login page:

  6. Microsoft kimlik bilgilerinizi girdikten ve oturum aç' a tıkladıktan sonra, web uygulamanızın Microsoft hesabı erişim izinleri olduğunu doğrulamanız istenir:After you enter your Microsoft credentials and click Sign in, you will be prompted to verify that your web application has permissions to access your Microsoft account:

  7. Evet' e tıkladığınızda, Web tarayıcınız Web uygulamanıza geri yönlendirilir ve bu, Microsoft hesabı Ilişkilendirmek istediğiniz Kullanıcı adını ister:When you click Yes, your web browser will be redirected back to your web application, which will prompt you for the User name that you want to associate with your Microsoft account:

  8. Kullanıcı adınızı girdikten ve Kaydol düğmesine tıkladıktan sonra, web uygulamanız Microsoft hesabı varsayılan giriş sayfasını görüntüleyecektir:After you have entered your user name and clicked the Sign up button, your web application will display the default home page for your Microsoft account:

Twitter kimlik doğrulamasını etkinleştirmeEnabling Twitter Authentication

Twitter kimlik doğrulaması bir geliştirici hesabı oluşturmanızı gerektirir ve çalışması için bir tüketici anahtarı ve tüketici parolası gerektirir.Twitter authentication requires you to create a developer account, and it requires a consumer key and consumer secret in order to function. Twitter geliştirici hesabı oluşturma ve tüketici anahtarınızı ve tüketici gizli anahtarını alma hakkında daha fazla bilgi için bkz. https://go.microsoft.com/fwlink/?LinkID=252166.For information about creating a Twitter developer account and obtaining your consumer key and consumer secret, see https://go.microsoft.com/fwlink/?LinkID=252166.

Tüketici anahtarınızı ve tüketici gizli anahtarını aldıktan sonra, Web uygulamanız için Twitter kimlik doğrulamasını etkinleştirmek üzere aşağıdaki adımları kullanın:Once you have obtained your consumer key and consumer secret, use the following steps to enable Twitter authentication for your web application:

  1. Projeniz Visual Studio 2017 ' de açıldığında, Startup.auth.cs dosyasını açın.When your project is open in Visual Studio 2017, open the Startup.Auth.cs file.

  2. Kodun Twitter kimlik doğrulaması bölümünü bulun:Locate the Twitter authentication section of code:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    //app.UseTwitterAuthentication(
    //   consumerKey: "",
    //   consumerSecret: "");
    
    //app.UseFacebookAuthentication(
    //   appId: "",
    //   appSecret: "");
    
    //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    //{
    //    ClientId = "",
    //    ClientSecret = ""
    //});
    
  3. Vurgulanan kod satırlarının açıklamalarını kaldırmak için "//" karakterleri kaldırın ve ardından tüketici anahtarınızı ve tüketici gizli anahtarını ekleyin.Remove the "//" characters to uncomment the highlighted lines of code, and then add your consumer key and consumer secret. Bu parametreleri ekledikten sonra projenizi yeniden derleyebilirsiniz:Once you have added those parameters, you can recompile your project:

    // Uncomment the following lines to enable logging in with third party login providers
    //app.UseMicrosoftAccountAuthentication(
    //    clientId: "",
    //    clientSecret: "");
    
    app.UseTwitterAuthentication(
       consumerKey: "426f62526f636b73",
       consumerSecret: "57686f6120447564652c2049495320526f636b73");
    
    //app.UseFacebookAuthentication(
    //   appId: "",
    //   appSecret: "");
    
    //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    //{
    //    ClientId = "",
    //    ClientSecret = ""
    //});
    
  4. Web uygulamanızı Web tarayıcınızda açmak için F5 tuşuna bastığınızda, Twitter 'nın bir dış kimlik doğrulama hizmeti olarak tanımlandığını görürsünüz:When you press F5 to open your web application in your web browser, you will see that Twitter has been defined as an external authentication service:

  5. Twitter düğmesine tıkladığınızda, tarayıcınız Twitter oturum açma sayfasına yönlendirilir:When you click the Twitter button, your browser will be redirected to the Twitter login page:

  6. Twitter kimlik bilgilerinizi girdikten ve uygulamayı Yetkilendir' e tıkladıktan sonra, Web tarayıcınız Web uygulamanıza yeniden yönlendirilir ve bu, Twitter hesabınızla Ilişkilendirmek istediğiniz Kullanıcı adını ister:After you enter your Twitter credentials and click Authorize app, your web browser will be redirected back to your web application, which will prompt you for the User name that you want to associate with your Twitter account:

  7. Kullanıcı adınızı girdikten ve Kaydol düğmesine tıkladıktan sonra, Web uygulamanız Twitter hesabınız için varsayılan giriş sayfasını görüntüleyecektir:After you have entered your user name and clicked the Sign up button, your web application will display the default home page for your Twitter account:

Ek BilgilerAdditional Information

OAuth ve OpenID kullanan uygulamalar oluşturma hakkında daha fazla bilgi için aşağıdaki URL 'Lere bakın:For additional information about creating applications that use OAuth and OpenID, see the following URLs:

Dış kimlik doğrulama hizmetlerini birleştirmeCombining External Authentication Services

Daha fazla esneklik için, aynı anda birden çok dış kimlik doğrulama hizmeti tanımlayabilirsiniz. Bu, Web uygulamanızın kullanıcılarının etkinleştirilmiş dış kimlik doğrulama hizmetlerinden herhangi birinden bir hesap kullanmasına izin verir:For greater flexibility, you can define multiple external authentication services at the same time - this allows your web application's users to use an account from any of the enabled external authentication services:

Tam etki alanı adını kullanmak için IIS Express yapılandırmaConfigure IIS Express to use a fully qualified domain name

Bazı dış kimlik doğrulama sağlayıcıları, http://localhost:port/gibi bir HTTP adresi kullanarak uygulamanızı test etmeyi desteklemez.Some external authentication providers do not support testing your application by using an HTTP address like http://localhost:port/. Bu sorunu geçici olarak çözmek için, ana bilgisayar dosyanıza statik bir tam etki alanı adı (FQDN) eşlemesi ekleyebilir ve Visual Studio 2017 ' de proje seçeneklerinizi, test/hata ayıklama için FQDN kullanacak şekilde yapılandırabilirsiniz.To work around this issue, you can add a static Fully Qualified Domain Name (FQDN) mapping to your HOSTS file and configure your project options in Visual Studio 2017 to use the FQDN for testing/debugging. Bunu yapmak için aşağıdaki adımları kullanın:To do so, use the following steps:

  • Ana bilgisayar dosyanıza eşlenen statik bir FQDN ekleyin:Add a static FQDN mapping your HOSTS file:

    1. Windows 'da yükseltilmiş bir komut istemi açın.Open an elevated command prompt in Windows.

    2. Şu komutu yazın:Type the following command:

      Not defteri%WinDir%\system32\drivers\etc\hostsnotepad %WinDir%\system32\drivers\etc\hosts

    3. HOSTS dosyasına aşağıdakine benzer bir giriş ekleyin:Add an entry like the following to the HOSTS file:

      127.0.0.1 www.wingtiptoys.com127.0.0.1 www.wingtiptoys.com

    4. HOSTS dosyanızı kaydedin ve kapatın.Save and close your HOSTS file.

  • Visual Studio projenizi FQDN kullanacak şekilde yapılandırın:Configure your Visual Studio project to use the FQDN:

    1. Projeniz Visual Studio 2017 ' de açıldığında, Proje menüsüne tıklayın ve ardından projenizin özelliklerini seçin.When your project is open in Visual Studio 2017, click the Project menu, and then select your project's properties. Örneğin, WebApplication1 özellikleriniseçebilirsiniz.For example, you might select WebApplication1 Properties.
    2. Web sekmesini seçin.Select the Web tab.
    3. Proje URL 'siiçin FQDN 'nizi girin.Enter your FQDN for the Project Url. Örneğin, ana bilgisayar dosyanıza eklediğiniz FQDN eşlemesiyle http://www.wingtiptoys.com girersiniz.For example, you would enter http://www.wingtiptoys.com if that was the FQDN mapping that you added to your HOSTS file.
  • Uygulamanız için FQDN kullanmak üzere IIS Express yapılandırın:Configure IIS Express to use the FQDN for your application:

    1. Windows 'da yükseltilmiş bir komut istemi açın.Open an elevated command prompt in Windows.

    2. IIS Express klasörünüze geçmek için aşağıdaki komutu yazın:Type the following command to change to your IIS Express folder:

      CD/d "%ProgramFiles%\IIS Express"cd /d "%ProgramFiles%\IIS Express"

    3. FQDN 'yi uygulamanıza eklemek için aşağıdaki komutu yazın:Type the following command to add the FQDN to your application:

      Appcmd. exe set config-Section: System. applicationHost/Sites/+"[ad = ' WebApplication1 ']. Bindings. [Protocol = ' http ', bindingInformation = ' *: 80: www. wingtiptoys. com ']"/Commit: apphostappcmd.exe set config -section:system.applicationHost/sites /+"[name='WebApplication1'].bindings.[protocol='http',bindingInformation='*:80:www.wingtiptoys.com']" /commit:apphost

    Burada WebApplication1 , projenizin adı ve bindingInformation , testiniz için kullanmak istediğiniz bağlantı noktası numarasını ve FQDN 'yi içerir.Where WebApplication1 is the name of your project and bindingInformation contains the port number and FQDN that you want to use for your testing.

Microsoft kimlik doğrulaması için uygulama ayarlarınızı edinmeHow to Obtain your Application Settings for Microsoft Authentication

Microsoft kimlik doğrulaması için bir uygulamayı Windows Live 'a bağlama basit bir işlemdir.Linking an application to Windows Live for Microsoft Authentication is a simple process. Bir uygulamayı Windows Live 'a henüz bağladıysanız, aşağıdaki adımları kullanabilirsiniz:If you have not already linked an application to Windows Live, you can use the following steps:

  1. https://go.microsoft.com/fwlink/?LinkID=144070 gidin ve istendiğinde Microsoft hesabı adınızı ve parolanızı girip oturum aç' a tıklayın:Browse to https://go.microsoft.com/fwlink/?LinkID=144070 and enter your Microsoft account name and password when prompted, then click Sign in:

  2. Uygulama Ekle ' yi seçin ve sorulduğunda uygulamanızın adını girin ve ardından Oluştur' a tıklayın:Select Add an app and enter the name of your application when prompted, and then click Create:

  3. Ad ' ın altında uygulamanızı seçin ve uygulamanın Özellikler sayfası görüntülenir.Select your app under Name and its application properties page appears.

  4. Uygulamanız için yeniden yönlendirme etki alanını girin.Enter the redirect domain for your application. Uygulama kimliği ' ni kopyalayın ve Uygulama parolaları' nın altında parola oluştur' u seçin.Copy the Application ID and, under Application Secrets, select Generate Password. Görüntülenen parolayı kopyalayın.Copy the password that appears. Uygulama KIMLIĞI ve parolası, istemci KIMLIĞINIZ ve istemci gizli anahtarı.The application ID and password are your client ID and client secret. Tamam ' ı ve ardından Kaydet' i seçin.Select Ok and then Save.

İsteğe bağlı: yerel kaydı devre dışı bırakOptional: Disable Local Registration

Geçerli ASP.NET yerel kayıt işlevselliği otomatik programların (botların) üye hesaplarını oluşturmasını engellemez; Örneğin, CAPTCHAgibi bir bot önleme ve doğrulama teknolojisi kullanarak.The current ASP.NET local registration functionality does not prevent automated programs (bots) from creating member accounts; for example, by using a bot-prevention and validation technology like CAPTCHA. Bu nedenle, oturum açma sayfasındaki yerel oturum açma formunu ve kayıt bağlantısını kaldırmanız gerekir.Because of this, you should remove the local login form and registration link on the login page. Bunu yapmak için, projenizdeki login. cshtml sayfasını_ açın ve ardından yerel oturum açma paneli ve kayıt bağlantısı için satırları açıklama olarak inceleyin.To do so, open the _Login.cshtml page in your project, and then comment out the lines for the local login panel and the registration link. Sonuç sayfası aşağıdaki kod örneği gibi görünmelidir:The resulting page should look like the following code sample:

<!-- ko with: login -->
<hgroup class="title">
    <h1>Log in</h1>
</hgroup>
<div class="row-fluid">
    @*<section class="span7">
        <form>
            <fieldset class="form-horizontal">
                <legend>Use a local account to log in.</legend>
                <ul class="text-error" data-bind="foreach: errors">
                    <li data-bind="text: $data"></li>
                </ul>
                <div class="control-group">
                    <label for="UserName" class="control-label">User name</label>
                    <div class="controls">
                        <input type="text" name="UserName" data-bind="value: userName, hasFocus: true" />
                        <span class="text-error" data-bind="visible: userName.hasError, text: userName.errorMessage"></span>
                    </div>
                </div>
                <div class="control-group">
                    <label for="Password" class="control-label">Password</label>
                    <div class="controls">
                        <input type="password" name="Password" data-bind="value: password" />
                        <span class="text-error" data-bind="visible: password.hasError, text: password.errorMessage"></span>
                    </div>
                </div>
                <div class="control-group">
                    <div class="controls">
                        <label class="checkbox">
                            <input type="checkbox" name="RememberMe" data-bind="checked: rememberMe" />
                            <label for="RememberMe">Remember me?</label>
                        </label>
                    </div>
                </div>
                <div class="form-actions no-color">
                    <button type="submit" class="btn" data-bind="click: login, disable: loggingIn">Log in</button>
                </div>
                <p><a href="#" data-bind="click: register">Register</a> if you don't have a local account.</p>
            </fieldset>
        </form>
    </section>*@
    <section class="span5">
        <h2>Log in using another service</h2>
        <div data-bind="visible: loadingExternalLogin">Loading...</div>
        <div data-bind="visible: !loadingExternalLogin()">
            <div class="message-info" data-bind="visible: !hasExternalLogin()">
                <p>
                    There are no external authentication services configured. See <a href="https://go.microsoft.com/fwlink/?LinkId=252166">this article</a>
                    for details on setting up this ASP.NET application to support logging in via external services.
                </p>
            </div>
            <form data-bind="visible: hasExternalLogin">
                <fieldset class="form-horizontal">
                    <legend>Use another service to log in.</legend>
                    <p data-bind="foreach: externalLoginProviders">
                        <button type="submit" class="btn" data-bind="text: name, attr: { title: 'Log in using your ' + name() + ' account' }, click: login"></button>
                    </p>
                </fieldset>
            </form>
        </div>
    </section>
</div>
<!-- /ko -->

Yerel oturum açma paneli ve kayıt bağlantısı devre dışı bırakıldıktan sonra, oturum açma sayfanız yalnızca etkinleştirdiğiniz dış kimlik doğrulama sağlayıcılarını görüntüler:Once the local login panel and the registration link have been disabled, your login page will only display the external authentication providers that you have enabled: