Sıfır Güven için belirteçleri yönetme
uygulama geliştirme Sıfır Güven, uygulamanızın amacını ve kaynak erişim gereksinimlerini özellikle tanımlamak önemlidir. Uygulamanız yalnızca istenen şekilde çalışması için gereken erişimi istemelidir. Bu makale, bir geliştirici olarak uygulamanızın Microsoft kimlik platformu alabileceği kimlik belirteçleri, erişim belirteçleri ve güvenlik belirteçleriyle uygulamalarınızda güvenlik oluşturmanıza yardımcı olur.
Uygulamanızın Sıfır Güven en az ayrıcalık ilkesine uyduğunu ve amacınızı tehlikeye atacak şekilde kullanımı önlediğinden emin olun. Tam Zamanında ve Yeterli Erişim (JIT/JEA), risk tabanlı uyarlamalı ilkeler ve veri koruması ile kullanıcı erişimini sınırlayın. Uygulamanızın hassas ve güçlü bölümlerini ayırarak bu alanlara yalnızca yetkili kullanıcı erişimi sağlayın. Uygulamanızı kullanabilen kullanıcıları ve uygulamanızda sahip oldukları özellikleri sınırlayın.
Uygulamanızın Microsoft kimlik platformu aldığı kimlik belirteçlerini yönetme şekline ilişkin en az ayrıcalık oluşturun. Kimlik Belirteçlerindeki bilgiler, bir kullanıcının iddia ettikleri kişi olduğunu doğrulamanıza olanak tanır. Kullanıcı veya kuruluşu MFA sağlama, yönetilen cihaz kullanma ve doğru konumda olma gibi kimlik doğrulama koşullarını belirtebilir.
Müşterilerinizin uygulamanıza yönelik yetkilendirmeleri yönetmesini kolaylaştırma. Kullanıcı sağlama ek yükünü ve el ile işlemlere olan ihtiyacı azaltın. Otomatik kullanıcı sağlama, BT yöneticilerinin hedef kimlik depolarında kullanıcı kimliği oluşturma, bakım ve kaldırmayı otomatikleştirmesine olanak tanır. Müşterileriniz, Microsoft Entra Id'de uygulama sağlama veya İk temelli sağlama ile kullanıcılar ve gruplarda yapılan değişikliklere göre otomasyonları temel alabilir.
Uygulamalarınızda belirteç taleplerini kullanma
Uygulamanızın içindeki UX için kimlik belirteçlerinde talepleri bir veritabanında anahtar olarak kullanın ve istemci uygulamasına erişim sağlayın. Kimlik belirteci, OpenID Bağlan(OIDC) tarafından OAuth 2.0'a yapılan temel uzantıdır. Uygulamanız, erişim belirteçlerinin yanında veya yerine kimlik belirteçleri alabilir.
Güvenlik belirteci yetkilendirmesi için standart düzende verilen kimlik belirteci, uygulamanın kullanıcı hakkında bilgi almasına olanak tanır. Kimlik belirtecini kaynaklara erişmek için yetkilendirme işlemi olarak kullanmayın. Yetkilendirme sunucusu, aşağıdakileri içeren kullanıcı bilgileriyle talepler içeren kimlik belirteçleri verir.
- hedef kitle (
aud
) talebi, uygulamanızın istemci kimliğidir. Yalnızca API istemci kimliğiniz için belirteçleri kabul edin. - Talep
tid
, belirteci veren kiracının kimliğidir. Talepoid
, kullanıcıyı benzersiz olarak tanımlayan sabit bir değerdir. Verileri kullanıcıyla ilişkilendirmeniz gerektiğinde anahtar olarak veoid
taleplerinin benzersiz birleşiminitid
kullanın. Verilerinizi Microsoft Entra Id'de kullanıcının kimliğine geri bağlamak için bu talep değerlerini kullanabilirsiniz. - Talep
sub
, kullanıcıyı benzersiz bir şekilde tanımlayan sabit bir değerdir. Konu talebi, uygulamanız için de benzersizdir. Verileri kullanıcıyla ilişkilendirmek için bu talebi kullanırsanızsub
verilerinizden çıkıp Microsoft Entra Id'deki bir kullanıcıya bağlamak mümkün değildir.
Uygulamalarınız kapsamı kullanarak openid
Microsoft kimlik platformu kimlik belirteci isteyebilir. OIDC standardı, kimlik belirtecinin openid
biçimi ve içeriğiyle birlikte kapsamı yönetir. OIDC şu kapsamları belirtir:
openid
Kullanıcıda oturum açmak ve kimlik belirtecine birsub
talep eklemek için kapsamı kullanın. Bu kapsamlar, uygulamaya ve kullanıcıya özgü bir kullanıcı kimliği sağlar ve UserInfo uç noktasını çağırır.- Kapsam,
email
kimlik belirtecine kullanıcının e-posta adresini içeren biremail
talep ekler. - Kapsam,
profile
kimlik belirtecine kullanıcının temel profil özniteliklerine (ad, kullanıcı adı) sahip talepleri ekler. - Kapsam,
offline_access
kullanıcının mevcut olmadığı durumlarda bile uygulamanın kullanıcı verilerine erişmesine olanak tanır.
Microsoft Kimlik Doğrulama Kitaplığı (MSAL), her belirteç isteğine her zaman openid, e-posta ve profile
kapsamları ekler. Sonuç olarak, MSAL her zaman veya AcquireTokenInteractive çağrısında AcquireTokenSilent
bir kimlik belirteci ve erişim belirteci döndürür. MSAL her zaman kapsamı istemektedir offline_access
. İstekte bulunan uygulama kapsamı belirtmediğinde offline_access
bile Microsoft kimlik platformu her zaman kapsamı döndürüroffline_access
.
Microsoft, erişim belirteçleri vermek için OAuth2 standardını kullanır. OAuth2 standardı bir belirteç aldığınızı söyler, ancak belirteç biçimini veya belirteçte olması gerekenleri belirtmez. Uygulamanızın Microsoft Entra Id'nin koruduğu bir kaynağa erişmesi gerektiğinde, kaynağın tanımladığı bir kapsam kullanmalıdır.
Örneğin, Microsoft Graph uygulamaya geçerli kullanıcının tam kullanıcı profiline ve kiracının adına erişme yetkisi veren kapsamı tanımlar User.Read
. Microsoft Graph, bu API'de kullanılabilen tüm işlevler genelinde izinleri tanımlar.
Yetkilendirmenin ardından Microsoft kimlik platformu uygulamanıza bir erişim belirteci döndürür. Kaynağı çağırdığınızda, uygulamanız API'ye HTTP isteğinin yetkilendirme üst bilgisinin bir parçası olarak bu belirteci sağlar.
Belirteç yaşamlarını yönetme
Uygulamalar, kimlik doğrulaması Microsoft Entra ID ile başarıyla tamamlandıktan sonra bir kullanıcı için oturum oluşturabilir. Kullanıcı oturumu yönetimi, bir kullanıcının yeniden kimlik doğrulamasına ne sıklıkta ihtiyaç duyduğunu belirler. Açıkça doğrulanmış bir kullanıcıyı uygulamanın önünde doğru ayrıcalıkla ve doğru süreyle tutma rolü çok önemlidir. Oturum ömrü, kimlik belirtecindeki exp
talebi temel almalıdır. Talep exp
, kimlik belirtecinin süresinin dolmak üzere olduğu zamandır ve bundan sonra kullanıcının kimliğini doğrulamak için belirteci artık kullanamayacaksınız.
Erişim belirteçleri için exp
belirteç yanıtında veya kimlik belirtecindeki talepte sağlanan belirteç ömrünü her zaman dikkate alır. Belirteç ömrünü yöneten koşullar, bir kuruluş için oturum açma sıklığını içerebilir. Uygulamanız belirteç ömrünü yapılandıramıyor. Belirteç ömrü isteyemezsiniz.
Genel olarak belirteçlerin geçerli ve açıklanmamış olması gerekir. hedef kitle talebi (aud) istemci kimliğiniz ile eşleşmelidir. Belirtecin güvenilir bir verenden geldiğine emin olun. Çok kiracılı bir API'niz varsa, yalnızca belirli kiracıların API'nizi çağırabilmesi için filtrelemeyi seçebilirsiniz. Belirtecin ömrünü zorladığınızdan emin olun. Geçerli saatin bu iki talebin nbf
exp
değerleri içinde olduğundan emin olmak için (önce değil) ve (süre sonu) taleplerini denetleyin.
Son derece uzun veya kısa oturum ömürlerini hedeflemeyin. Verilen kimlik belirtecinin yaşam süresi bu kararı yönlendirsin. Uygulamanızın oturumlarını belirteç geçerliliğinin ötesinde etkin tutmak, BT yöneticisinin yetkisiz erişimi önlemek için belirteç geçerlilik süresi ayarlamasına neden olan kuralları, ilkeleri ve endişeleri ihlal eder. Kısa oturumlar kullanıcı deneyimini düşürür ve güvenlik duruşunu artırmaz. ASP.NET gibi popüler çerçeveler, Microsoft Entra Id kimlik belirtecinin süre sonu süresinden oturum ve tanımlama bilgisi zaman aşımları ayarlamanıza olanak sağlar. Kimlik sağlayıcısının belirteç süre sonu süresine uyulması, kullanıcı oturumlarınızın hiçbir zaman kimlik sağlayıcısının dikte edilen ilkelerden uzun olmamasını sağlar.
Belirteçleri önbelleğe alma ve yenileme
Belirteçleri uygun şekilde önbelleğe alın. MSAL belirteçleri otomatik olarak önbelleğe alır, ancak belirteçlerin kullanım ömrü vardır. Belirteçleri yaşam sürelerinin tamamı boyunca kullanın ve uygun şekilde önbelleğe alın. Aynı belirteci tekrar tekrar sorarsanız, azaltma uygulamanızın daha az yanıt vermesine neden olur. Uygulamanız belirteç verme işlemini kötüye kullandıysa, uygulamanıza yeni belirteçler vermek için gereken süre uzlaşır.
MSAL kitaplıkları, belirteçleri yenileme mekanizması da dahil olmak üzere OAuth2 protokolünün ayrıntılarını yönetir. MSAL kullanmıyorsanız, seçtiğiniz kitaplığın yenileme belirteçlerini etkili bir şekilde kullandığından emin olun.
İstemciniz korumalı bir kaynağa erişmek için bir erişim belirteci aldığında bir yenileme belirteci alır. Geçerli erişim belirtecinin süresi dolduktan sonra yeni erişim/yenileme belirteci çiftlerini almak için yenileme belirtecini kullanın. Diğer kaynaklar için ek erişim belirteçleri almak için yenileme belirteçlerini kullanın. Yenileme belirteçleri kullanıcı ve istemci birleşimine bağlıdır (bir kaynağa veya kiracıya değil). Uygulamanızın izinlere sahip olduğu herhangi bir kaynak ve kiracı birleşiminde erişim belirteçleri almak için yenileme belirteci kullanabilirsiniz.
Belirteç hatalarını ve hatalarını yönetme
Uygulamanız hiçbir zaman erişim belirtecinin içeriğini doğrulamaya, çözmeye, incelemeye, yorumlamaya veya incelemeye çalışmamalıdır. Bu işlemler kesinlikle kaynak API'sinin sorumluluğundadır. Uygulamanız bir erişim belirtecinin içeriğini incelemeye çalışırsa, Microsoft kimlik platformu şifrelenmiş belirteçler Microsoft kimlik platformu uygulamanızın bozulması olasılığı yüksektir.
Nadiren, bir belirteci alma çağrısı ağ, altyapı veya kimlik doğrulama hizmeti hatası veya kesintisi gibi sorunlara bağlı olarak başarısız olabilir. Aşağıdaki en iyi yöntemleri izleyerek belirteç alma hatası oluşursa uygulamanızda kimlik doğrulama deneyiminin dayanıklılığını artırın:
- Şifreleme ile belirteçleri yerel olarak önbelleğe alın ve güvenli bir şekilde koruyun.
- Güvenli olmayan kanallarda belirteçler gibi güvenlik yapıtlarını geçirmeyin.
- Kimlik sağlayıcısından gelen özel durumları ve hizmet yanıtlarını anlayın ve üzerinde işlem yapma.
Geliştiriciler genellikle kaynağın çağrılmasından 401 hatası alma gibi sorunlarda hata ayıklamak için belirteçlerin içine bakma konusunda soruları olur. Daha şifrelenmiş belirteçler erişim belirtecinin içine bakmanızı engelledikçe, erişim belirteçlerinin içine bakmanın alternatiflerini bulmanız gerekir. Hata ayıklama için, erişim belirtecini içeren belirteç yanıtı ihtiyacınız olan bilgileri sağlar.
Kodunuzda, tek tek hata durumları yerine hata sınıflarını denetleyin. Örneğin, sistem izin vermediğinde tek tek hatalar yerine gerekli kullanıcı etkileşimini işleyin. Bu tek tek durumları gözden kaçırabileceğinizden, tek tek hata kodlarını incelemek yerine kullanıcı etkileşimi gibi bir sınıflandırıcıyı denetlemek daha iyidir.
Çağrısına geri AcquireTokenInteractive
dönmeniz ve çağrının AcquireTokenSilent
gerektirdiği talep sınamalarını sağlamanız gerekebilir. Bunun yapılması, etkileşimli isteğin etkili bir şekilde yönetilmesini sağlar.
Sonraki adımlar
- Belirteçleri özelleştirme, en az ayrıcalıkla uygulama sıfır güven güvenliğini artırırken esnekliği ve denetimi geliştirmek için belirteçleri özelleştirmeyi anlamanıza yardımcı olur.
- Sıfır Güven için kullanıcıların kimliğini doğrulama, geliştiricilerin uygulama geliştirme Sıfır Güven uygulama kullanıcılarının kimliğini doğrulamaya yönelik en iyi yöntemleri öğrenmesine yardımcı olur. Uygulama güvenliğini en az ayrıcalıklı Sıfır Güven ilkeleriyle geliştirmeyi ve açıkça doğrulamayı açıklar.
- Kaynaklara erişmek için yetkilendirme alma, uygulamanız için kaynak erişim izinleri alırken Sıfır Güven en iyi şekilde nasıl sağlayacağınızı anlamanıza yardımcı olur.
- Kullanıcıların uygulamalara onay verme şeklini yapılandırma
- Hizmetlerde (kullanıcı olmayan uygulamalar) en iyi Azure kaynakları için Yönetilen Kimlikler'i açıklayan bir kullanıcı olmadığında uygulama kimliği kimlik bilgilerini sağlayın.
- Microsoft Entra erişim belirteçleriyle ilgili sorunları giderme: Erişim belirtecini doğrulama