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.
Önemli
1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.
Bu makalede, web uygulamalarınıza Azure Active Directory B2C (Azure AD B2C) kimlik doğrulaması eklemeyi göstermek için bir web API'sini çağıran örnek bir ASP.NET web uygulaması kullanılmaktadır.
Önemli
Bu makalede başvuruda bulunan örnek ASP.NET web uygulaması taşıyıcı belirteci olan bir web API'sini çağırmak için kullanılır. Web API'sini çağırmayan bir web uygulaması için bkz. Azure AD B2C kullanarak örnek bir web uygulamasında kimlik doğrulamasını yapılandırma.
Genel Bakış
OpenID Connect (OIDC), OAuth 2.0 üzerinde oluşturulmuş bir kimlik doğrulama protokolüdür. Bir uygulamada güvenli bir şekilde oturum açmak için OIDC kullanabilirsiniz. Bu web uygulaması örneği Microsoft Identity Web kullanır. Microsoft Identity Web, güvenli bir web API'sini çağırabilen web uygulamalarına kimlik doğrulaması ve yetkilendirme desteği eklemeyi basitleştiren bir ASP.NET Core kitaplıkları kümesidir.
Oturum açma akışı aşağıdaki adımları içerir:
Kullanıcılar web uygulamasına gider ve Oturum aç'ı seçer.
Uygulama bir kimlik doğrulama isteği başlatır ve kullanıcıları Azure AD B2C'ye yönlendirir.
Kullanıcılar kaydolun veya oturum açın ve parolayı sıfırlayın. Alternatif olarak, bir sosyal hesapla oturum açabilirler.
Kullanıcılar oturum açıldıktan sonra Azure AD B2C uygulamaya bir yetkilendirme kodu döndürür.
Uygulama daha sonra aşağıdakileri yapar:
a. Yetkilendirme kodunu bir kimlik belirteci, erişim belirteci ve yenileme belirteciyle değiştirir.
b. Kimlik belirteci taleplerini okur ve bir uygulama yetkilendirme tanımlama bilgisini kalıcı hale döndürür.
ç. Yenileme belirtecini daha sonra kullanmak üzere bellek içi önbellekte depolar.
Uygulama kaydına genel bakış
Uygulamanızın Azure AD B2C ile oturum açmasını ve bir web API'sini çağırmasını sağlamak için Azure AD B2C dizinine iki uygulama kaydedersiniz.
Web uygulaması kaydı, uygulamanızın Azure AD B2C ile oturum açmasını sağlar. Kayıt sırasında yeniden yönlendirme URI'sini belirtirsiniz. Yeniden yönlendirme URI'si, Azure AD B2C ile kimlik doğrulaması tamamlandıktan sonra kullanıcıların Azure AD B2C tarafından yönlendirildiği uç noktadır. Uygulama kayıt işlemi, uygulamanızı benzersiz olarak tanımlayan istemci kimliği olarak da bilinen bir uygulama kimliği oluşturur. Ayrıca, uygulamanızın belirteçleri güvenli bir şekilde almak için kullandığı bir istemci gizli dizisi de oluşturursunuz.
Web API kaydı, uygulamanızın güvenli bir web API'sini çağırmasını sağlar. Kayıt, web API kapsamlarını içerir. Kapsamlar, web API'niz gibi korumalı kaynaklara yönelik izinleri yönetmek için bir yol sağlar. Web uygulamasına web API kapsamları için izinler verirsiniz. Erişim belirteci istendiğinde, uygulamanız isteğin kapsam parametresinde istenen izinleri belirtir.
Uygulama mimarisi ve kayıtları aşağıdaki diyagramda gösterilmiştir:
Web API'sine çağrı
Kimlik doğrulaması tamamlandıktan sonra, kullanıcılar korumalı bir web API'sini çağıran uygulamayla etkileşim kurar. Web API'sinde taşıyıcı belirteç kimlik doğrulaması kullanılır. Taşıyıcı belirteci, uygulamanın Azure AD B2C'den aldığı erişim belirtecidir. Uygulama, belirteci HTTPS isteğinin yetkilendirme üst bilgisine geçirir.
Authorization: Bearer <access token>
Erişim belirtecinin kapsamı web API'sinin kapsamlarıyla eşleşmiyorsa, kimlik doğrulama kitaplığı doğru kapsamlara sahip yeni bir erişim belirteci alır.
Oturumu kapatma
Oturum kapatma akışı aşağıdaki adımları içerir:
- Uygulamadan kullanıcılar oturum açmayı kapatıyor.
- Uygulama oturum nesnelerini temizler ve kimlik doğrulama kitaplığı da belirteç önbelleğini temizler.
- Uygulama, Azure AD B2C oturumunu sonlandırmak için kullanıcıları Azure AD B2C oturumu kapatma uç noktasına götürür.
- Kullanıcılar uygulamaya geri yönlendirilir.
Önkoşullar
Aşağıdakilerden birini çalıştıran bir bilgisayar:
- ASP.NET ve web geliştirme iş yüküyle Visual Studio 2022 17.0 veya üzeri
- .NET 6.0 SDK
1. Adım: Kullanıcı akışınızı yapılandırma
Kullanıcılar uygulamanızda oturum açmaya çalıştığında, uygulama bir kullanıcı akışı aracılığıyla yetkilendirme uç noktasına bir kimlik doğrulama isteği başlatır. Kullanıcı akışı, kullanıcı deneyimini tanımlar ve denetler. Kullanıcılar kullanıcı akışını tamamladıktan sonra Azure AD B2C bir belirteç oluşturur ve ardından kullanıcıları uygulamanıza geri yönlendirir.
Henüz yapmadıysanız, bir kullanıcı akışı veya özel ilke oluşturun. Üç ayrı kullanıcı akışı oluşturmak için aşağıdaki adımları yineleyin:
- Birleştirilmiş Oturum açma ve kaydolma kullanıcı akışı, örneğin
susi. Bu kullanıcı akışı, Parolanızı unuttunuz deneyimini de destekler. - Bir profil düzenleme kullanıcı akışı, örneğin
edit_profile. - Gibi bir
reset_passwordkullanıcı akışı.
Azure AD B2C, kullanıcı akışı adının önüne B2C_1_ ekler. Örneğin susi, B2C_1_susi olur.
2. Adım: Web uygulamalarını kaydetme
Bu adımda, web uygulamasını ve web API'sinin uygulama kaydını oluşturur ve web API'nizin kapsamlarını belirtirsiniz.
2.1. Adım: Web API'sini kaydetme
Web API'si uygulama kaydını (Uygulama Kimliği: 2) oluşturmak için şu adımları izleyin:
Azure portalınaoturum açın.
Azure AD B2C kiracınızı içeren dizini kullandığınızdan emin olun. Portal araç çubuğunda Dizinler + abonelikler simgesini seçin.
Portal ayarlarında | Dizinler + abonelikler sayfası, Dizin adı listesinde Azure AD B2C dizininizi bulun ve ardından Değiştir'i seçin.
Azure portalında Azure AD B2C'yi arayın ve seçin.
Uygulama kayıtlarıöğesini seçin, ve ardından Yeni kayıtöğesini seçin.
Ad alanına uygulama için bir ad girin (örneğin, my-api1). Yeniden Yönlendirme URI'sinin ve Desteklenen hesap türlerinin varsayılan değerlerini değiştirmeyin.
Kaydıseçin.
Uygulama kaydı tamamlandıktan sonra Genel Bakış'ı seçin.
Web uygulamasını yapılandırırken daha sonra kullanmak üzere Uygulama (istemci) Kimliği değerini kaydedin.
2.2. Adım: Web API'si uygulama kapsamlarını yapılandırma
Oluşturduğunuz my-api1 uygulamasını (Uygulama Kimliği: 2) seçerek Genel Bakış sayfasını açın.
Yönetaltında, Bir API'yi Kullanıma Sunmaseçin.
Uygulama Kimliği URI'si'nin yanındaki Ayarla bağlantısını seçin. Varsayılan değeri (GUID) benzersiz bir adla (örneğin, tasks-api) değiştirin ve kaydet'i seçin.
Web uygulamanız web API'si için bir erişim belirteci istediğinde, API için tanımladığınız her kapsamın ön eki olarak bu URI'yi eklemelidir.
Bu API tarafından tanımlananKapsamlar altında Kapsam ekleöğesini seçin.
API'ye okuma erişimini tanımlayan bir kapsam oluşturmak için:
- Kapsam adı olaraktasks.read girin.
- Yönetici onayı görünen adı için Görevlere okuma erişimi API'sini girin.
- Yönetici onayı açıklaması için Görevler API'sine okuma erişimi sağlar yazın.
Kapsam ekle'yi seçin.
Kapsam ekle'yi seçin ve ardından API'ye yazma erişimini tanımlayan bir kapsam ekleyin:
- Kapsam adı olaraktasks.write yazın.
- Yönetici onayı görünen adı içinGörevlere yazma erişimi API'sini girin.
- Yönetici onayı açıklaması için Görevler API'sine yazma erişimine izin verir yazın.
Kapsam ekle'yi seçin.
2.3. Adım: Web uygulamasını kaydetme
Web uygulaması kaydını oluşturmak için aşağıdakileri yapın:
Uygulama kayıtlarıöğesini seçin, ve ardından Yeni kayıtöğesini seçin.
Ad altında, uygulama için bir ad girin (örneğin, webapp1).
Desteklenen Hesap Türlerialtında, Kullanıcı akışlarıyla kullanıcıları kimlik doğrulama için herhangi bir kimlik sağlayıcısında veya kuruluş dizininde Hesaplar'ı seçin.
Yeniden Yönlendirme URI'si altında Web'i seçin ve ardından URL kutusuna
https://localhost:5000/signin-oidcgirin."İzinler altında, Openid ve çevrimdışı erişim izinlerine yönetici onayı ver onay kutusunu seçin."
Kaydıseçin.
Uygulama kaydı tamamlandıktan sonra Genel Bakış'ı seçin.
Web uygulamasını yapılandırırken daha sonra kullanmak üzere Uygulama (istemci) kimliğini kaydedin.
2.4. Adım: Web uygulaması istemci gizli dizisi oluşturma
Kayıtlı web uygulaması için bir istemci gizli anahtarı oluşturun. Web uygulaması, token talep ettiğinde kimliğini kanıtlamak için istemci gizli anahtarını kullanır.
- Yönet altında Sertifikalar ve gizli anahtarlar'ı seçin.
- Yeni istemci gizli anahtarını seçin.
- Açıklama kutusuna istemci gizli anahtarı için bir açıklama girin (örneğin, clientsecret1).
- Süre Sonu altında, gizli anahtarın geçerli olacağı süreyi seçin ve ardından Ekle'yi seçin.
- Sırrın Değerini kaydedin. Bu değeri sonraki bir adımda yapılandırma için kullanacaksınız.
2.5. Adım: Web API'sine web uygulaması izinleri verme
Uygulamanıza (Uygulama Kimliği: 1) izinleri vermek için şu adımları izleyin:
Uygulama kayıtlarını seçin ve ardından da oluşturduğunuz uygulamayı seçin (Uygulama Kimliği: 1).
Yönet altında API izinleri'ni seçin.
Yapılandırılan izinler'in altında İzin ekle'yi seçin.
API'lerim sekmesini seçin.
Web uygulamasına erişim verilmesi gereken API'yi (Uygulama Kimliği: 2) seçin. Örneğin , my-api1 girin.
İzin'in altında görevleri genişletin ve daha önce tanımladığınız kapsamları seçin (örneğin, tasks.read ve tasks.write).
İzinler ekle'yi seçin.
<Kiracı adınız için yönetici onayı ver seçeneğini seçin>.
Evet'i seçin.
Yenile'yi seçin ve her iki kapsam için durum altında ... için verildi ifadesinin göründüğünü doğrulayın.
Yapılandırılan izinler listesinden kapsamınızı seçin ve kapsamın tam adını kopyalayın.
3. Adım: Web uygulaması örneğini alma
GitHub'dan örnek web uygulamasını kopyalamak için zip dosyasını indirin veya aşağıdaki Bash komutunu çalıştırın.
git clone https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2
Örnek dosyayı, yolun toplam uzunluğunun 260 veya daha az karakter olduğu bir klasöre ayıklayın.
4. Adım: Örnek web API'sini yapılandırma
Örnek klasörde, 4-WebApp-your-API/4-2-B2C/TodoListService klasöründe, Visual Studio veya Visual Studio Code ile TodoListService.csproj projesini açın.
Proje kök klasörünün altında appsettings.json dosyasını açın. Bu dosya, Azure AD B2C kimlik sağlayıcınız hakkında bilgi içerir. Web API uygulaması, web uygulamasının taşıyıcı belirteç olarak geçirdiği erişim belirtecini doğrulamak için bu bilgileri kullanır. Uygulama ayarlarının aşağıdaki özelliklerini güncelleştirin:
| Bölüm | Anahtar | Değer |
|---|---|---|
| AzureAdB2C | Örnek | Azure AD B2C kiracı adınızın ilk bölümü. Örneğin, https://contoso.b2clogin.com. |
| AzureAdB2C | Alan adı | Azure AD B2C kiracınızın tam kiracı adı. Örneğin, contoso.onmicrosoft.com. |
| AzureAdB2C | İstemci Kimliği | 2.1. adımdaki web API'si uygulama kimliği. |
| AzureAdB2C | KayıtOturumAçmaPolitikasıKimliği | Kullanıcı akışları veya 1. adımda oluşturduğunuz özel ilke. |
Son yapılandırma dosyanız aşağıdaki JSON dosyası gibi görünmelidir:
{
"AzureAdB2C": {
"Instance": "https://contoso.b2clogin.com",
"Domain": "contoso.onmicrosoft.com",
"ClientId": "<web-api-app-application-id>",
"SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
"SignUpSignInPolicyId": "<your-sign-up-in-policy>"
},
// More settings here
}
4.1. Adım: İzin ilkesini ayarlama
Web API'si, kullanıcının taşıyıcı belirteci ile kimlik doğrulamasından geçirildiğini ve taşıyıcı belirtecin yapılandırılmış kabul edilen kapsamlara sahip olduğunu doğrular. Taşıyıcı belirteci bu kabul edilen kapsamlardan herhangi birine sahip değilse, web API'si HTTP durum kodu 403 (Yasak) döndürür ve yanıt gövdesine belirteçte hangi kapsamların beklendiğini belirten bir ileti yazar.
Kabul edilen kapsamları yapılandırmak için sınıfını Controller/TodoListController.cs açın ve kapsam adını tam URI olmadan ayarlayın.
[RequiredScope("tasks.read")]
4.2. Adım: Örnek web API'sini çalıştırma
Web uygulamasının web API örneğini çağırmasına izin vermek için aşağıdakileri yaparak web API'sini çalıştırın:
- Bunu yapmanız istenirse bağımlılıkları geri yükleyin.
- Projeyi derleyin ve çalıştırın.
- Proje oluşturulduktan sonra, Visual Studio veya Visual Studio Code web API'sini tarayıcılarda aşağıdaki adresle başlatır: https://localhost:44332.
5. Adım: Örnek web uygulamasını yapılandırma
Örnek klasörde, klasörün altında 4-WebApp-your-API/4-2-B2C/Client , Visual Studio veya Visual Studio Code ile TodoListClient.csproj projesini açın.
Proje kök klasörünün altında dosyayı açın appsettings.json . Bu dosya, Azure AD B2C kimlik sağlayıcınız hakkında bilgi içerir. Web uygulaması, Azure AD B2C ile güven ilişkisi kurmak, kullanıcıların oturumunu açıp kapatmak, belirteçleri almak ve bunları doğrulamak için bu bilgileri kullanır. Uygulama ayarlarının aşağıdaki özelliklerini güncelleştirin:
| Bölüm | Anahtar | Değer |
|---|---|---|
| AzureAdB2C | Örnek | Azure AD B2C kiracı adınızın ilk bölümü (örneğin, https://contoso.b2clogin.com). |
| AzureAdB2C | Alan adı | Azure AD B2C kiracınızın tam kiracı adı (örneğin, contoso.onmicrosoft.com). |
| AzureAdB2C | İstemci Kimliği | 2.3. adımdaki web uygulaması kimliği. |
| AzureAdB2C | İstemci Gizli Anahtarı | 2.4. adımdaki web uygulaması gizli dizisi. |
| AzureAdB2C | KayıtOturumAçmaPolitikasıKimliği | Kullanıcı akışları veya 1. adımda oluşturduğunuz özel ilke. |
| Yapılacaklar Listesi | TodoListScope | 2.5. adımda oluşturduğunuz web API kapsamları. |
| Yapılacaklar Listesi | TodoListBaseAddress | Web API'nizin temel URI'si (örneğin https://localhost:44332). |
Son yapılandırma dosyanız aşağıdaki JSON gibi görünmelidir:
{
"AzureAdB2C": {
"Instance": "https://contoso.b2clogin.com",
"Domain": "contoso.onmicrosoft.com",
"ClientId": "<web-app-application-id>",
"ClientSecret": "<web-app-application-secret>",
"SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
"SignUpSignInPolicyId": "<your-sign-up-in-policy>"
},
"TodoList": {
"TodoListScope": "https://contoso.onmicrosoft.com/api/demo.read",
"TodoListBaseAddress": "https://localhost:44332"
}
}
6. Adım: Örnek web uygulamasını çalıştırma
- Projeyi derleyin ve çalıştırın.
-
https://localhost:5000adresine göz atın. - Kaydolma veya oturum açma işlemini tamamlayın.
Kimlik doğrulaması başarılı olduktan sonra görünen adınızı gezinti çubuğunda görürsünüz. Azure AD B2C belirtecinin uygulamanıza döndürdüğü talepleri görüntülemek için TodoList'i seçin.
Uygulamanızı dağıtın
Üretim uygulamasında, uygulama kaydı yeniden yönlendirme URI'si genellikle uygulamanızın çalıştığı genel olarak erişilebilir bir uç noktadır, örneğin https://contoso.com/signin-oidc.
Kayıtlı uygulamalarınıza istediğiniz zaman yeniden yönlendirme URI'leri ekleyebilir ve değiştirebilirsiniz. Yeniden yönlendirme URI'leri için aşağıdaki kısıtlamalar geçerlidir:
- Yanıt URL'si düzeni "
https" ile başlamalıdır. - Yanıt URL'si büyük/küçük harfe duyarlıdır. Büyük/küçük harf, çalışan uygulamanızın URL yolunun durumuyla eşleşmelidir.
Web uygulaması için belirteç önbelleği
Web uygulaması örneği bellek içi belirteç önbelleği serileştirmesini kullanır. Bu uygulama örneklerde harikadır. Ayrıca, web uygulaması yeniden başlatıldığında belirteç önbelleğinin kaybolmasına aldırmıyorsanız üretim uygulamalarında da iyidir.
Üretim ortamı için dağıtılmış bir bellek önbelleği kullanmanızı öneririz. Örneğin, Redis önbelleği, NCache veya SQL Server önbelleği. Dağıtılmış bellek önbelleği uygulamaları hakkında ayrıntılı bilgi için bkz . Belirteç önbelleği serileştirme.
Sonraki Adımlar
- Kod örneği hakkında daha fazla bilgi edinin.
- Azure AD B2C kullanarak kendi web uygulamanızda kimlik doğrulamasını etkinleştirmeyi öğrenin.
- Kendi web API'nizde kimlik doğrulamasını etkinleştirmeyi öğrenin.