API'nizin güvenliğini sağlama self servis kaydolma kullanıcı akışlarında Microsoft Entra Dış Kimlik API bağlayıcısı kullandı
Şunlar için geçerlidir: İş gücü kiracıları
Dış kiracılar (daha fazla bilgi edinin)
REST API'yi Microsoft Entra Dış Kimlik self servis kaydolma kullanıcı akışıyla tümleştirdiğinizde, REST API uç noktanızı kimlik doğrulaması ile korumanız gerekir. REST API kimlik doğrulaması yalnızca Microsoft Entra Id gibi doğru kimlik bilgilerine sahip hizmetlerin uç noktanıza çağrı yapabilmesini sağlar. Bu makalede REST API'nin güvenliğini sağlama işlemleri incelenir.
Önkoşullar
İzlenecek Yol: Kaydolma kullanıcı akışı kılavuzuna API bağlayıcısı ekleme başlığı altındaki adımları tamamlayın.
HTTP temel kimlik doğrulaması veya HTTPS istemci sertifikası kimlik doğrulaması kullanarak API uç noktanızı koruyabilirsiniz. Her iki durumda da, Microsoft Entra ID'nin API uç noktanızı çağırırken kullandığı kimlik bilgilerini sağlarsınız. Ardından API uç noktanız kimlik bilgilerini denetler ve yetkilendirme kararları alır.
HTTP temel kimlik doğrulaması
İpucu
Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.
HTTP temel kimlik doğrulaması RFC 2617'de tanımlanır. Temel kimlik doğrulaması şu şekilde çalışır: Microsoft Entra Id, üst bilgide Authorization
istemci kimlik bilgileri (username
ve password
) bulunan bir HTTP isteği gönderir. Kimlik bilgileri base64 ile kodlanmış dizesi username:password
olarak biçimlendirilir. Ardından API'niz, diğer yetkilendirme kararlarını gerçekleştirmek için bu değerleri denetlemekle sorumludur.
API Bağlan veya HTTP temel kimlik doğrulaması ile yapılandırmak için şu adımları izleyin:
- Microsoft Entra yönetim merkezinde en az Kullanıcı Yönetici istrator olarak oturum açın.
- Kimlik>Dış Kimliklerine>Genel Bakış'a göz atın.
- Tüm API bağlayıcıları'nı seçin ve ardından yapılandırmak istediğiniz API Bağlan seçin.
- Kimlik doğrulama türü için Temel'i seçin.
- REST API uç noktanızın Kullanıcı Adını ve Parolasını belirtin.
- Kaydet'i seçin.
HTTPS istemci sertifikası kimlik doğrulaması
İstemci sertifikası kimlik doğrulaması, istemci olan Microsoft Entra Id'nin kimliğini kanıtlamak için istemci sertifikasını sunucuya sağladığı karşılıklı sertifika tabanlı bir kimlik doğrulamasıdır. Bu, SSL el sıkışmasının bir parçası olarak gerçekleşir. API'niz, Sertifikaların Microsoft Entra Id gibi geçerli bir istemciye ait olduğunu doğrulamak ve yetkilendirme kararları almakla sorumludur. İstemci sertifikası bir X.509 dijital sertifikasıdır.
Önemli
Üretim ortamlarında sertifikanın bir sertifika yetkilisi tarafından imzalanması gerekir.
Sertifika oluşturma
1. Seçenek: Azure Key Vault kullanma (önerilir)
Sertifika oluşturmak için, otomatik olarak imzalanan sertifikalar ve imzalı sertifikalar için sertifika veren sağlayıcılarla tümleştirme seçenekleri içeren Azure Key Vault'u kullanabilirsiniz. Önerilen ayarlar şunlardır:
- Konu:
CN=<yourapiname>.<tenantname>.onmicrosoft.com
- İçerik Türü:
PKCS #12
- Yaşam Süresi Eylem Türü:
Email all contacts at a given percentage lifetime
veyaEmail all contacts a given number of days before expiry
- Anahtar Türü:
RSA
- Anahtar Boyutu:
2048
- Dışarı Aktarılabilir Özel Anahtar:
Yes
(dosyayı dışarı aktarabilmek.pfx
için)
Ardından sertifikayı dışarı aktarabilirsiniz.
2. Seçenek: PowerShell kullanarak otomatik olarak imzalanan bir sertifika hazırlama
Henüz bir sertifikanız yoksa, otomatik olarak imzalanan bir sertifika kullanabilirsiniz. Otomatik olarak imzalanan sertifika, sertifika yetkilisi (CA) tarafından imzalanmayan ve CA tarafından imzalanan bir sertifikanın güvenlik garantilerini sağlamayan bir güvenlik sertifikasıdır.
Windows'da, sertifika oluşturmak için PowerShell'de New-SelfSignedCertificate cmdlet'ini kullanın.
Otomatik olarak imzalanan bir sertifika oluşturmak için aşağıdaki PowerShell komutunu çalıştırın. bağımsız değişkenini
-Subject
uygulamanız ve Azure AD B2C kiracı adı gibi uygun şekildecontosowebapp.contoso.onmicrosoft.com
değiştirin. Ayrıca, sertifika için-NotAfter
farklı bir süre sonu belirtmek üzere tarihi ayarlayabilirsiniz.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
Windows bilgisayarda Kullanıcı sertifikalarını yönet'i arayın ve seçin
Sertifikalar - Geçerli Kullanıcı'nın altında Kişisel>Sertifikalar>yourappname.yourtenant.onmicrosoft.com'ni seçin.
Sertifikayı seçin ve ardından Tüm Görevleri>Dışarı Aktar eylemini>seçin.
İleri>Evet, özel anahtarı>dışarı aktar İleri'yi seçin.
Dosya Biçimini Dışarı Aktar varsayılanlarını kabul edin ve İleri'yi seçin.
Parolayı Etkinleştir seçeneğini belirleyin, sertifika için bir parola girin ve İleri'yi seçin.
Sertifikanızı kaydedeceğiniz konumu belirtmek için Gözat'ı seçin ve istediğiniz bir dizine gidin.
Farklı Kaydet penceresinde bir Dosya adı girin ve Kaydet'i seçin.
İleri>Son seçeneğini belirleyin.
Azure AD B2C'nin .pfx dosya parolasını kabul etmesi için, parolanın AES256-SHA256 yerine Windows Sertifika Deposu Dışarı Aktarma yardımcı programındaki TripleDES-SHA1 seçeneğiyle şifrelenmesi gerekir.
API Bağlan veya yapılandırma
API Bağlan veya istemci sertifikası kimlik doğrulamasıyla yapılandırmak için şu adımları izleyin:
- Microsoft Entra yönetim merkezinde en az Kullanıcı Yönetici istrator olarak oturum açın.
- Kimlik>Dış Kimliklerine>Genel Bakış'a göz atın.
- Tüm API bağlayıcıları'nı seçin ve ardından yapılandırmak istediğiniz API Bağlan seçin.
- Kimlik doğrulama türü için Sertifika'yı seçin.
- Sertifikayı karşıya yükle kutusunda, özel anahtarla sertifikanızın .pfx dosyasını seçin.
- Parola Girin kutusuna sertifikanın parolasını yazın.
- Kaydet'i seçin.
Yetkilendirme kararları gerçekleştirme
API'nizin, API uç noktalarını korumak için gönderilen istemci sertifikalarını temel alan yetkilendirmeyi uygulaması gerekir. Azure Uygulaması Hizmeti ve Azure İşlevleri için API kodunuzdan sertifikayı etkinleştirmeyi ve doğrulamayı öğrenmek için bkz. TLS karşılıklı kimlik doğrulamasını yapılandırma. alternatif olarak, istemci sertifikası özelliklerini istenen değerlerle denetlemek için azure API Management'ı herhangi bir API hizmetinin önünde katman olarak kullanabilirsiniz.
Sertifikaları yenileme
Sertifikanızın süresi dolduğunda anımsatıcı uyarıları ayarlamanız önerilir. Yeni bir sertifika oluşturmanız ve kullanılan sertifikaların süresi dolmak üzereyken yukarıdaki adımları yinelemeniz gerekir. Yeni bir sertifikanın kullanımını "almak" için API hizmetiniz, yeni sertifika dağıtılırken geçici bir süre için eski ve yeni sertifikaları kabul etmeye devam edebilir.
Var olan bir API bağlayıcısına yeni bir sertifika yüklemek için API bağlayıcıları'nın altındaki API bağlayıcısını seçin ve Yeni sertifikayı karşıya yükle'yi seçin. Süresi dolmamış ve başlangıç tarihi geçmiş olan en son karşıya yüklenen sertifika, Microsoft Entra Kimliği tarafından otomatik olarak kullanılır.
API anahtarı kimlik doğrulaması
Bazı hizmetler, çağıranın HTTP üst bilgisi veya HTTP sorgu parametresi olarak benzersiz bir anahtar eklemesini gerektirerek geliştirme sırasında HTTP uç noktalarınıza erişimi karartmak için bir "API anahtarı" mekanizması kullanır. Azure İşlevleri için api bağlayıcınızın Uç Nokta URL'sinesorgu parametresi olarak ekleyerek code
bunu gerçekleştirebilirsiniz. Örneğin, https://contoso.azurewebsites.net/api/endpoint
?code=0123456789
).
Bu, üretimde tek başına kullanılması gereken bir mekanizma değildir. Bu nedenle, temel veya sertifika kimlik doğrulaması için yapılandırma her zaman gereklidir. Geliştirme amacıyla herhangi bir kimlik doğrulama yöntemi uygulamak istemiyorsanız (önerilmez), API bağlayıcı yapılandırmasında 'temel' kimlik doğrulamasını seçebilir ve doğru yetkilendirmeyi uygularken API'nizin göz ardı edebileceği geçici değerler username
password
kullanabilirsiniz.
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin