ASP.NET Core ile Microsoft Hesabı dış oturum ASP.NET Core

Valeriy Novytskyy ve Rick Anderson tarafından

Bu örnek, kullanıcıların önceki sayfasında oluşturulan ASP.NET Core 3.0 projesini kullanarak iş, okul veya kişisel Microsoft hesabı oturum açmalarına nasıl olanak sağlar?

Microsoft Geliştirici Portal'da uygulama oluşturma

Henüz bir dosya Microsoft hesabı oluştur'a seçin. Oturum açmanın ardından, Uygulama kayıtları yönlendirildisiniz:

  • Yeni kayıt'ı seçin
  • Bir Ad girin.
  • Desteklenen hesap türleri için bir seçenek belirleyin.
    • Paket, varsayılan olarak "Herhangi bir kuruluş dizininde hesaplar" veya "Herhangi bir kuruluş dizininde ve Microsoft hesaplarında hesaplar" seçenekleri kullanılarak oluşturulan MicrosoftAccount Uygulama Kayıtlarını destekler.
    • Diğer seçenekleri kullanmak için, Microsoft Hesabı kimlik doğrulamasını başlatmak için kullanılan üyelerini, Oluşturulduktan sonra Uygulama Kaydı'nın Uç Noktalar sayfasında görüntülenen URL'lere ayarlayın (Genel Bakış sayfasında Uç AuthorizationEndpoint TokenEndpoint Noktalar'a MicrosoftAccountOptions tıklayarak kullanılabilir).
  • Yeniden Yönlendirme URI'si altında, geliştirme URL'nizi /signin-microsoft sonuna ekleyin. Örneğin, https://localhost:5001/signin-microsoft. Bu örnekte daha sonra yapılandırılan Microsoft kimlik doğrulama düzeni, OAuth akışını uygulamak için yolda /signin-microsoft istekleri otomatik olarak işletir.
  • Kaydol'a tıklayın

İstemci gizlisi oluşturma

  • Sol bölmede Sertifikalar ve gizli diziler'& seçin.

  • İstemci gizli dizileri altında Yeni istemci gizli dizi'yi seçin

    • İstemci gizli için bir açıklama ekleyin.
    • Ekle düğmesini seçin.
  • İstemci gizli dizileri altında, istemci gizli dizi değerini kopyalayın.

URI /signin-microsoft segmenti, Microsoft kimlik doğrulama sağlayıcısının varsayılan geri çağırma değeri olarak ayarlanır. MicrosoftAccountOptions sınıfının devralınan RemoteAuthenticationOptions.CallbackPath özelliği aracılığıyla Microsoft kimlik doğrulama ara yazılımını yapılandırırken varsayılan geri çağırma URI'sini değiştirebilirsiniz.

Microsoft istemci kimliğini ve gizli kimliğini depolama

Gizli Dizi Yöneticisi ile Sertifikalar ve Gizli Diziler sayfasında oluşturduğunuz Uygulama Kaydı ve İstemci Gizli Dizileri'nin Genel Bakış sayfasında bulunan Microsoft Uygulama (istemci) kimliği & hassas ayarları depolar. Bu örnek için aşağıdaki adımları kullanın:

  1. Gizli depolamayı etkinleştirme yönergelerine göre gizli depolama için projeyi başlatma.

  2. Gizli anahtarları ve ile yerel gizli anahtar deposuna hassas ayarları Authentication:Microsoft:ClientId Authentication:Microsoft:ClientSecret depolar:

    dotnet user-secrets set "Authentication:Microsoft:ClientId" "<client-id>"
    dotnet user-secrets set "Authentication:Microsoft:ClientSecret" "<client-secret>"
    

Ayırıcı, : tüm platformlarda ortam değişkeni hiyerarşik anahtarlarla birlikte çalışmaz. __çift alt çizgi şöyledir:

  • Tüm platformlar tarafından de destekler. Örneğin, : ayıracı Bash tarafından desteklanmaz,ancak __ bu şekildedir.
  • Otomatik olarak bir ile değiştirilir :

Microsoft Hesabı Kimlik Doğrulamasını Yapılandırma

Microsoft Hesabı hizmetini 'ye Startup.ConfigureServices ekleyin:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection")));
    services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddEntityFrameworkStores<ApplicationDbContext>();
    services.AddRazorPages();

    services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
    {
        microsoftOptions.ClientId = Configuration["Authentication:Microsoft:ClientId"];
        microsoftOptions.ClientSecret = Configuration["Authentication:Microsoft:ClientSecret"];
    });
}

Addaduthentication (dize) aşırı yüklemesi defaultscheme özelliğini ayarlar. Addaduthentication (eylem < authenticationoptions > ) aşırı yüklemesi, farklı amaçlarla varsayılan kimlik doğrulama düzenlerini ayarlamak için kullanılabilen kimlik doğrulama seçeneklerinin yapılandırılmasını sağlar. AddAuthenticationDaha önce yapılandırılmış authenticationoptions özelliklerini geçersiz kılmak için sonraki çağrılar.

Kimlik doğrulama işleyicisi kaydeden Authenticationbuilder genişletme metotları, kimlik doğrulama düzeni başına yalnızca bir kez çağrılabilir. Düzen özellikleri, Düzen adı ve görünen ad yapılandırmasına izin veren aşırı yüklemeler var.

Microsoft Hesabı kimlik doğrulaması tarafından desteklenen yapılandırma seçenekleri hakkında daha fazla bilgi için bkz. MicrosoftAccountOptions API başvurusu. Bu, kullanıcı hakkında farklı bilgiler talep etmek için kullanılabilir.

Microsoft hesabıyla oturum açın Hesabı

Uygulamayı çalıştırın ve Oturum aç'a tıklayın. Microsoft ile oturum açma seçeneği görüntülenir. Microsoft'a tıklarsanız, kimlik doğrulaması için Microsoft'a yeniden yönlendirildisiniz. Microsoft Hesabınızla oturum açtıktan sonra, uygulamanın bilgilerinize erişmesine izin vermeniz istenir:

Evet'e dokunarak e-postanızı ayaryabilirsiniz.

Artık Microsoft kimlik bilgilerinizi kullanarak oturum açtınız:

Birden çok kimlik doğrulama sağlayıcısı

Uygulama birden çok sağlayıcı gerektirdiğinde, sağlayıcı uzantısı yöntemlerini Addaduthenticationarkasında zincirle:

services.AddAuthentication()
    .AddMicrosoftAccount(microsoftOptions => { ... })
    .AddGoogle(googleOptions => { ... })
    .AddTwitter(twitterOptions => { ... })
    .AddFacebook(facebookOptions => { ... });

İstek bilgilerini bir ara sunucu veya yük dengeleyici ile ilet

Uygulama bir ara sunucu veya yük dengeleyici arkasında dağıtılırsa, bazı özgün istek bilgileri, istek üst bilgilerinde uygulamaya iletilebilir. Bu bilgiler genellikle güvenli istek düzeni ( https ), ana bilgisayar ve ISTEMCI IP adresini içerir. Uygulamalar, özgün istek bilgilerini bulacak ve kullanacak şekilde bu istek üst bilgilerini otomatik olarak okumayın.

Düzen, dış sağlayıcılarla kimlik doğrulama akışını etkileyen bağlantı oluşturma sırasında kullanılır. Güvenli düzen () kaybı, https uygulamanın hatalı güvenli olmayan yeniden yönlendirme URL 'leri üretmesine neden olur.

İstek işleme için özgün istek bilgilerini uygulama için kullanılabilir hale getirmek üzere Iletilen üstbilgiler ara yazılımını kullanın.

Daha fazla bilgi için bkz. Yapılandırma ASP.NET Core sunucuları ve yük dengeciler ile çalışacak şekilde yapılandırma.

Sorun giderme

  • Microsoft Hesabı sağlayıcısı sizi bir oturum açma hatası sayfasına yönlendirse, Uri'nin (diyez etiketi) hemen ardından hata başlığı ve açıklama sorgu dizesi parametrelerini # not edin.

    Hata iletisi Microsoft kimlik doğrulamasıyla ilgili bir sorun olduğunu gösteriyor gibi görünüyor olsa da, en yaygın neden uygulama Uri'nizin Web platformu için belirtilen Yeniden Yönlendirme URI'lerinden hiçbiri ile eşleşmeme olmasıdır.

  • içinde çağrısıyla yapılandırılmamışsa, kimlik doğrulaması yapmaya çalışıldığında Identity services.AddIdentity ConfigureServices ArgumentException: 'SignInScheme' seçeneği sağlanmalıdır. Bu örnekte kullanılan proje şablonu, bunun yapılmasına sağlar.

  • İlk geçişi uygulayarak site veritabanı oluşturulmadı ise, istek hatası işleniyorken bir veritabanı işlemi başarısız olur. Veritabanını oluşturmak için Geçişleri Uygula'ya dokunun ve hatayı geçe devam etmek için yenileyin.

Sonraki adımlar

  • Bu makalede Microsoft ile nasıl kimlik doğrulamasına sahip olduğunuz gösterildi. Önceki sayfada listelenen diğer sağlayıcılarla kimlik doğrulaması yapmak için benzer bir yaklaşımı takip edebilirsiniz.

  • Web sitenizi Azure web uygulamasında yayımlayın, portalda yeni bir istemci gizli Microsoft Geliştirici oluşturun.

  • uygulama ayarlarında Authentication:Microsoft:ClientId Authentication:Microsoft:ClientSecret ve uygulama ayarlarını Azure portal. Yapılandırma sistemi, ortam değişkenlerinden anahtarları okumak için ayarlanır.