Aracılığıyla paylaş


ASP.NET Core'da Google dış oturum açma kurulumu

Valeriy Novytskyy, Rick Anderson ve Sharaf Abacery tarafından

Bu öğretici, ASP.NET Core'da Google hesaplarıyla kullanıcı oturum açmayı etkinleştirmek için, Identitydış oturum açma sağlayıcılarıyla çalışma bölümünde oluşturulan örnek bir ASP.NET Core projesinin nasıl kullanılacağını göstermektedir. Google API istemci kimliği oluşturmak için Web için Google ile oturum açma: Kurulum bölümünde Google'ın resmi yönergelerini izleyin.

Uygulamayı Google'da oluşturma

  • Google Cloud platformunun Google API & Services sayfasına gidin.
  • Proje yoksa Proje Oluştur düğmesini seçerek yeni bir proje oluşturun . Yüklenen mevcut projeden farklı bir proje seçmek için, kullanıcı arabiriminin sol üst köşesindeki yüklenen projenin düğmesini ve ardından projeyi seçin. Yeni proje eklemek için, kullanıcı arabiriminin sol üst köşesindeki yüklenen projenin düğmesini ve ardından Yeni proje düğmesini seçin.
  • Yeni proje oluştururken:
    • Bir Proje adı girin.
    • İsteğe bağlı olarak, proje için bir Kuruluş seçin.
    • Oluştur düğmesini seçin.

Projeyi oluşturduktan sonra projenin Pano sayfası yüklenir ve burada proje yapılandırılabilir.

OAuth istemcisini oluşturmak için Kimlik Bilgileri sekmesini açın.

Kimlik bilgilerini oluşturmanın önkoşulu, OAuth onay ekranını yapılandırmaktır. Onay yapılandırılmamışsa, onay ekranını yapılandırmanız istenir.

  • Onay ekranını yapılandır'ı seçin veya kenar çubuğunda OAuth onayı ekranı'nı seçin.
  • OAuth onayı ekranındaBaşlayın seçin.
  • Uygulama adı ve Kullanıcı desteği e-postasını ayarlayın.
  • İzleyici türünü Dış olarak ayarlayın.
  • İletişim bilgilerini eklemek için bir iletişim e-posta adresi girin.
  • Koşulları kabul edin.
  • Oluştur'i seçin.

İstemciler kenar çubuğu menü öğesini açarak uygulama için istemci kimlik bilgilerini oluşturun:

  • İstemci oluştur düğmesini seçin.
  • Uygulama türü olarak Web uygulaması'nı seçin.
  • İstemci için bir Ad girin.
  • Yetkili yeniden yönlendirme URI'si ekleyin. Yerel test için https://localhost:{PORT}/signin-google adresini kullanın, burada {PORT} yer tutucu uygulamanın bağlantı noktasıdır.
  • İstemciyi oluşturmak için Oluştur düğmesini seçin.
  • İstemci Kimliği ve İstemci gizli anahtarını, daha sonra ASP.NET uygulaması yapılandırmasında kullanılacak şekilde kaydedin.

Uyarı

URI segmenti /signin-google, Google kimlik doğrulama sağlayıcısının varsayılan geri çağırması olarak ayarlanır. Google kimlik doğrulama ara yazılımını yapılandırırken, varsayılan geri çağırma URI'sini RemoteAuthenticationOptions.CallbackPath, sınıfın devralınan GoogleOptions özelliği aracılığıyla değiştirmek mümkündür.

Uygulamayı dağıtırken aşağıdakilerden birini yapabilirsiniz:

  • Uygulamanın yeniden yönlendirme URI'sini, Google Konsolu içindeki dağıtılmış yeniden yönlendirme URI'sine güncelleyin.
  • Üretim uygulaması için, tam üretim yönlendirme URI'sine sahip yeni bir Google API kaydı oluşturmak amacıyla Google Console'da işlem yapın.

Google istemci kimliğini ve gizli anahtarı depolayın

Gizli Dizi Yöneticisi ile Google istemci kimliği ve gizli dizi değerleri gibi hassas ayarları depolayın. Bu örnek için şu adımları izleyin:

  1. ASP.NET Core'da geliştirme aşamasındaki uygulama gizli dizilerinin güvenli depolaması başlığındaki yönergelere göre gizli dizi depolama için projeyi başlatın.

  2. Yerel gizli mağazada Authentication:Google:ClientId (değer: {CLIENT ID} yer tutucu) ve Authentication:Google:ClientSecret (değer: {CLIENT SECRET} yer tutucu) gizli anahtarlarıyla hassas ayarları depolayın.

    dotnet user-secrets set "Authentication:Google:ClientId" "{CLIENT ID}"
    dotnet user-secrets set "Authentication:Google:ClientSecret" "{CLIENT SECRET}"
    

: ayırıcısı tüm platformlarda ortam değişkeni hiyerarşik anahtarlarla çalışmaz. Örneğin, : ayırıcı Bash tarafından desteklenmez. çift alt çizgi, __ tüm platformlar tarafından desteklenir ve otomatik olarak iki nokta ile : değiştirilir.

API Konsolu'nda API kimlik bilgilerini ve kullanımını yönetin.

Google kimlik doğrulamayı yapılandırma

Microsoft.AspNetCore.Authentication.Google nuget paketini ekleyin:

dotnet add package Microsoft.AspNetCore.Authentication.Google

Dosyaya kimlik doğrulama hizmetini Program ekleyin:

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});

Startup.ConfigureServices'ye kimlik doğrulama hizmetini ekleyin.

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});

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. AddAuthentication sonraki çağrıları, daha önce yapılandırılmış 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.

Google 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 Google'ı seçin.
  • Tarayıcı, kimlik doğrulaması için Google'a yönlendirilir.
  • Oturum açmak için Google hesabını seçin veya Google kimlik bilgilerini girin.
  • İlk kez oturum açıyorsanız, uygulamanın Google hesabı bilgilerine erişmesine izin verme istemi vardır.
  • Tarayıcı, e-postayı ayarlamanın mümkün olduğu uygulamaya geri yönlendirilir.

Kullanıcı artık Google kimlik bilgilerini kullanarak oturum açtı.

Sorun giderme

Sonraki adımlar

  • Bu makalede Google ile kimlik doğrulaması gösterilmektedir. Diğer dış sağlayıcılarla kimlik doğrulaması hakkında bilgi için bkz. ASP.NET Core'da ile Identity dış oturum açma sağlayıcıları kullanma.
  • Uygulama Azure'a dağıtıldıktan sonra Google API konsolunda ClientSecret öğesini sıfırlayın.
  • Azure portalında Authentication:Google:ClientId ve Authentication:Google:ClientSecret'yi uygulama ayarları olarak ayarlayın. Yapılandırma sistemi, ortam değişkenlerinden anahtarları okuyacak şekilde ayarlanır.

Ek kaynaklar

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