Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yayınlayanlar Valeriy Novytskyy ve Rick Anderson
Kod örnekleri içeren bu öğreticide, kullanıcılarınızın önceki sayfada oluşturulan bir örnek ASP.NET Core projesi kullanarak Facebook hesaplarıyla oturum açmasına nasıl izin verileceği gösterilmektedir. Resmi adımları izleyerek bir Facebook Uygulama Kimliği oluşturarak başlıyoruz.
Uygulamayı Facebook'ta oluşturma
Microsoft.AspNetCore.Authentication.Facebook NuGet paketini projeye ekleyin.
Facebook Geliştiricileri uygulaması sayfasına gidin ve oturum açın. Henüz bir Facebook hesabınız yoksa, bir facebook hesabı oluşturmak için oturum açma sayfasındaki Facebook'a kaydol bağlantısını kullanın. Bir Facebook hesabınız olduğunda, Facebook Geliştiricisi olarak kaydolmak için yönergeleri izleyin.
Uygulamalarım menüsünde Uygulama Oluştur'u seçin. Uygulama oluştur formu görüntülenir.
Projenize en uygun uygulama türünü seçin. Bu proje için Tüketici'yi ve ardından İleri'yi seçin. Yeni bir Uygulama Kimliği oluşturulur.
Formu doldurun ve Uygulama Oluştur düğmesine dokunun.
Uygulamanıza Ürün Ekle sayfasında Facebook Oturum Açma kartında Ayarla'yı seçin.
Hızlı Başlangıç sihirbazı ilk sayfa olarak Platform Seç seçeneğiyle başlatılır. Sol alttaki menüde FaceBook Oturum AçmaAyarları bağlantısına tıklayarak sihirbazı şimdilik atla:
İstemci OAuth Ayarları sayfası gösterilir:
Geçerli OAuth Yeniden Yönlendirme URI'leri alanına /signin-facebook eklenmiş geliştirme URI'nizi girin (örneğin:
https://localhost:44320/signin-facebook
). Bu öğreticinin ilerleyen bölümlerinde yapılandırılan Facebook kimlik doğrulaması, OAuth akışını uygulamak için /signin-facebook yolundaki istekleri otomatik olarak işler.
Uyarı
URI /signin-facebook , Facebook kimlik doğrulama sağlayıcısının varsayılan geri çağırması olarak ayarlanır. Facebook kimlik doğrulama ara yazılımını yapılandırma sırasında, FacebookOptions sınıfının devralınmış RemoteAuthenticationOptions.CallbackPath özelliği aracılığıyla varsayılan geri çağırma URI'sini değiştirebilirsiniz.
Değişiklikleri Kaydet'i seçin.
Sol gezinti bölmesinde Ayarlar>Temel bağlantısı'nı seçin.
App ID
veApp Secret
not edin. Sonraki bölümde her ikisini de ASP.NET Core uygulamanıza ekleyeceksiniz:Siteyi dağıtırken Facebook Oturum Açma kurulum sayfasını yeniden ziyaret etmeniz ve yeni bir genel URI kaydetmeniz gerekir.
Facebook uygulama kimliğini ve gizli anahtarı depola
Gizli Yöneticisi ile Facebook uygulama kimliği ve gizli değerler gibi hassas ayarları depolayın. Bu örnek için aşağıdaki adımları kullanın:
Gizli depolamayı etkinleştirmeyönergelerine göre projeyi gizli depolama için başlatın.
Gizli dizi anahtarları
Authentication:Facebook:AppId
veAuthentication:Facebook:AppSecret
ile hassas ayarları yerel gizli dizi deposunda depolayın:dotnet user-secrets set "Authentication:Facebook:AppId" "<app-id>" dotnet user-secrets set "Authentication:Facebook:AppSecret" "<app-secret>"
:
ayırıcısı tüm platformlarda ortam değişkeni hiyerarşik anahtarlarla çalışmaz. Örneğin, :
ayırıcısı Bashtarafından desteklenmez. Çift alt çizgi, __
, şudur:
- Tüm platformlar tarafından desteklenir.
-
:
, otomatik olarak iki nokta üst üste ile değiştirilir.
Facebook Kimlik Doğrulamayı Yapılandırma
Kimlik doğrulama hizmetini Startup.ConfigureServices
'a ekleyin:
services.AddAuthentication().AddFacebook(facebookOptions =>
{
facebookOptions.AppId = Configuration["Authentication:Facebook:AppId"];
facebookOptions.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
});
Kimlik doğrulama hizmetini Program
'a ekleyin:
var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;
var configuration = builder.Configuration;
services.AddAuthentication().AddFacebook(facebookOptions =>
{
facebookOptions.AppId = configuration["Authentication:Facebook:AppId"];
facebookOptions.AppSecret = configuration["Authentication:Facebook:AppSecret"];
});
AddAuthentication(IServiceCollection, String) aşırı yüklemesi DefaultScheme özelliğini ayarlar.
AddAuthentication(IServiceCollection, Action<AuthenticationOptions>) aşırı yüklemesi, farklı amaçlarla varsayılan kimlik doğrulama düzenlerini ayarlamak için kullanılabilen kimlik doğrulama seçeneklerini yapılandırmaya olanak tanır. Sonraki AddAuthentication
çağrıları, daha önce yapılandırılmış olan AuthenticationOptions özelliklerini geçersiz kılar.
AuthenticationBuilder kimlik doğrulama işleyicisini kaydeden uzantı yöntemleri, kimlik doğrulama düzeni başına yalnızca bir kez çağrılabilir. Şema özelliklerinin, şema adının ve görünen adın yapılandırılmasına olanak tanıyan aşırı yüklemeler vardır.
Facebook ile oturum açma
- Uygulamayı çalıştırın ve oturum aç'ı seçin.
- Oturum açmak için başka bir hizmet kullan'ın altında Facebook'a tıklayın.
- Kimlik doğrulaması için Facebook'a yönlendirilirsiniz.
- Facebook kimlik bilgilerinizi girin.
- E-postanızı ayarlayabileceğiniz sitenize geri yönlendirilirsiniz.
Artık Facebook kimlik bilgilerinizi kullanarak oturum açtınız:
Harici oturum açmayı iptal etmek için reaksiyon ver
AccessDeniedPath kullanıcı istenen yetkilendirme talebini onaylamadığında kullanıcı aracısına bir yeniden yönlendirme yolu sağlayabilir.
Aşağıdaki kod AccessDeniedPath
'yi "/AccessDeniedPathInfo"
olarak ayarlar:
services.AddAuthentication().AddFacebook(options =>
{
options.AppId = Configuration["Authentication:Facebook:AppId"];
options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
options.AccessDeniedPath = "/AccessDeniedPathInfo";
});
Sayfanın aşağıdaki bilgileri içermesini öneririz AccessDeniedPath
:
- Uzaktan kimlik doğrulaması iptal edildi.
- Bu uygulama kimlik doğrulaması gerektirir.
- Yeniden oturum açmayı denemek için Oturum aç bağlantısını seçin.
AccessDeniedPath'i Test Et
- facebook.com adresine git
- Oturum açtıysanız, oturumu kapatmanız gerekir.
- Uygulamayı çalıştırın ve Facebook ile oturum açmayı seçin.
-
Şimdi değil'i seçin. Belirtilen
AccessDeniedPath
sayfaya yönlendirilirsiniz.
İstek bilgilerini ara sunucu veya yük dengeleyici ile iletme
Uygulama bir ara sunucu veya yük dengeleyicinin arkasında dağıtılıyorsa, özgün istek bilgilerinin bazıları istek üst bilgilerinde uygulamaya iletilebilir. Bu bilgiler genellikle güvenli istek düzenini (https
), ana bilgisayar ve istemci IP adresini içerir. Uygulamalar, özgün istek bilgilerini bulmak ve kullanmak için bu istek üst bilgilerini otomatik olarak okumaz.
Şema, dış sağlayıcılarla kimlik doğrulama akışını etkileyen bağlantı oluşturmada kullanılır. Güvenli düzenin (https
) kaybedilmesi, uygulamanın yanlış güvenli olmayan yeniden yönlendirme URL'leri oluşturmasını sağlar.
özgün istek bilgilerini istek işleme için uygulamanın kullanımına açmak için İletilen Üst Bilgiler Ara Yazılımı'nı kullanın.
Daha fazla bilgi için bkz. ASP.NET Core'u ara sunucular ve yük dengeleyicilerle çalışacak şekilde yapılandırma.
Facebook kimlik doğrulaması tarafından desteklenen yapılandırma seçenekleri hakkında daha fazla bilgi için bkz FacebookOptions . API başvurusu. Yapılandırma seçenekleri şunları yapmak için kullanılabilir:
- Kullanıcı hakkında farklı bilgiler isteyin.
- Oturum açma deneyimini özelleştirmek için sorgu dizesi parametreleri ekleyin.
Sorun giderme
-
Yalnızca ASP.NET Core 2.x:
ConfigureServices
içindeservices.AddIdentity
çağrılarak yapılandırılmadığındaIdentity, kimlik doğrulama girişimi ArgumentException: 'SignInScheme' seçeneği sağlanmalıdır hatasıyla sonuçlanacaktır. Bu öğreticide kullanılan proje şablonu, bunun yapılmasını sağlar. - Site veritabanı ilk geçiş uygulanarak oluşturulmadıysa, İstek hatası işlenirken veritabanı işlemi başarısız oldu hatasını alırsınız. Veritabanını oluşturmak için Geçişleri Uygula dokunun ve hatadan sonra devam etmek için yenileyin.
Sonraki Adımlar
Bu makalede, Facebook'ta nasıl kimlik doğrulaması yapabileceğiniz gösterildi. önceki
sayfasında listelenen diğer sağlayıcılarla kimlik doğrulaması yapmak için benzer bir yaklaşım izleyebilirsiniz. Web sitenizi Azure web uygulamasına yayımladıktan sonra, Facebook geliştirici portalında
AppSecret
öğesini sıfırlamanız gerekir.Azure portalında
Authentication:Facebook:AppId
veAuthentication:Facebook:AppSecret
uygulama ayarları olarak ayarlayın. Yapılandırma sistemi, ortam değişkenlerinden anahtarları okuyacak şekilde ayarlanır.
Ek kaynaklar
ASP.NET Core