Sıfır Güven için kullanıcıların kimliğini doğrulama
Bu makale, bir geliştirici olarak uygulama geliştirme Sıfır Güven uygulama kullanıcılarınızın kimliğini doğrulamaya yönelik en iyi yöntemleri öğrenmenize yardımcı olur. Uygulama güvenliğinizi her zaman en az ayrıcalık Sıfır Güven ilkeleriyle geliştirin ve açıkça doğrulayın.
Kullanıcı kimlik doğrulamasında kimlik belirteçleri
Kullanıcı adı ve parola toplamak yerine bir kullanıcının uygulamanızda kimlik doğrulamasına ihtiyacınız olduğunda, uygulamanız bir kimlik (KIMLIK) belirteci isteyebilir. Microsoft kimlik platformu aracılığıyla kullanıcıların kimliğini doğrulamak, uygulamanız kullanıcı kimlik bilgilerini koruduğunda ortaya çıkan güvenlik risklerini önler. Kimlik belirteçleri istediğinizde, kötü bir aktör uygulamanızı ihlal ederse veya ihlal ederse, uygulamanızda kullanıcı adı ve buna karşılık gelen parolalar yoktur.
Microsoft kimlik platformu Kimlik belirteci, Kimlik belirteçlerini JSON Web Belirteçleri (JWT) olarak belirten OpenID Connect (OIDC) standardının bir parçasıdır. JWT uzun dizesi üç bileşenden oluşur:
- Üst bilgi talepleri. Kimlik belirteçlerinde bulunan üst bilgi talepleri şunlardır
typ
(tür talebi),alg
(belirteci imzalama algoritması) vekid
(belirtecin imzasını doğrulamak için ortak anahtar için parmak izi). - Yük talepleri. Yük veya gövde (JSON web belirtecinin orta kısmı) bir dizi ad öznitelik çifti içerir. Standart, belirteci verilen uygulamaya (, veya hedef kitle talebi) giden (
aud
veren adı) biriss
talep olmasını gerektirir. - İmza. Microsoft Entra Id, uygulamaların belirtecin değiştirilmediğini ve güvenebileceğinizi doğrulamak için kullanabileceği belirteç imzasını oluşturur.
Aşağıdaki kimlik belirteci örneği, kullanıcı hakkındaki bilgileri gösterir ve uygulamayı kullanmak için kimlik doğrulamasını onaylar.
{
"typ": "JWT",
"alg": "RS256",
"kid": "1LTMzakihiRla_8z2BEJVXeWMqo"
}.
{
"ver": "2.0",
"iss": "https://login.microsoftonline.com/3338040d-6c67-4c5b-b112-36a304b66dad/v2.0",
"aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
"exp": 1536361411,
"iat": 1536274711,
"nbf": 1536274711,
"sub": "AAAAAAAAAAAAAAAAAAAAAIkzqFVrSaSaFHy782bbtaQ",
"name": "Abe Lincoln",
"preferred_username": "AbeLi@microsoft.com",
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
}.
.[Signature]
Erişim yönetiminde kimlik belirteçleri
Uygulama (istemci) kimliğinizi almak için uygulamanızı Microsoft kimlik platformu kaydedin. Uygulamanızın istemci kimliğiyle eşleşen bir hedef kitle talebi (aud
) içeren bir belirteç aldığınızda, belirteçte tanımlanan kullanıcı uygulamanızda kimlik doğrulamasından geçirilir. BT yöneticileri kiracıdaki tüm kullanıcıların uygulamanızı kullanmasına izin verebilir. Kullanıcının üyesi olduğu bir grubun uygulamanızı kullanmasına izin verebilirler.
Hedef kitle talebi uygulamanızın istemci kimliğinden farklı olan bir belirteç alırsanız, belirteci hemen reddedin. Başka bir uygulamada oturum açtığından kullanıcının kimliği uygulamanızda doğrulanmamıştır. Her zaman kullanıcının uygulamanızı kullanma iznine sahip olduğundan emin olun.
Bu talep ayrıntıları kullanıcı kimlik doğrulamasında önemlidir:
- JSON web belirteci süresi dolana kadar geçerlidir.
exp
(süre sonu) talebi belirtecin süresinin ne zaman dolduğunda size bildirir. Geçerli saat talepteki süredenexp
önceyse belirteç geçerli olur. - Kullanıcıyı (zamandan önce değil) belirtilen süreden
nbf
önce kimliği doğrulanmış olarak kabul etmeyin.nbf
Belirtecin veexp
saatleri belirtecin geçerli ömrünü tanımlar. Süre sonu süresi dolduğunda yeni bir kimlik belirteci aldığınızdan emin olun. sub
(konu talebi), uygulama kullanıcısı için benzersiz bir tanımlayıcıdır. Aynı kullanıcının diğer uygulamalar için farklısub
bir talebi vardır. Bir kullanıcıyla yeniden ilişkilendirilecek verileri depolamak ve bir saldırganın bu ilişkilendirmeyi yapmasını engellemek istiyorsanız konu beyanını kullanın. Kullanıcının Microsoft Entra kimliğini kullanıma sunmadığından, verileri bir kullanıcıyla ilişkilendirmenin en özel yoludur. Talepsub
sabittir.- Birden çok uygulama arasında bilgi paylaşmak istiyorsanız, kullanıcıya özgü kiracı kimliği (
tid
) ve nesne kimliği (oid
) taleplerinin birleşimini kullanın. Birleştirilmiş kiracı kimliği ve nesne kimliği sabittir. - Bir kişinin kimliğine ne olursa olsun,
sub
,oid
vetid
talepleri sabit kalır. Kullanıcıyla ilgili her şey değişebilir ve yine de konu veya birleştirilmiştid
veoid
taleplere göre kullanıcıyı tanımlamak için verilerinizin anahtarını alabilirsiniz.
OIDC ile kimlik doğrulaması
Kullanıcı kimlik doğrulamasını göstermek için, bir kullanıcının kimliğini doğrulamak için OIDC kullanan uygulamalara göz atalım. Güvenlik Onaylama İşaretleme Dili (SAML) veya WS-Federation kullanan uygulamalar için de aynı ilkeler geçerlidir.
Uygulama, Microsoft kimlik platformu kimlik belirteci istediğinde kullanıcının kimliğini doğrular. İş yükleri (kullanıcıları olmayan ancak hizmetler, arka plan işlemleri, daemon'lar olarak çalışan uygulamalar) bu adımı atlar.
Önce sessizce bu belirteci istemeniz gerekir. Microsoft Kimlik Doğrulama Kitaplıkları'nda (MSAL) sessizce belirteç almak için uygulamanız yöntemiyle AcquireTokenSilent
başlayabilir. Uygulamanız kullanıcıyı rahatsız etmeden kimlik doğrulaması yapabilirse istenen kimlik belirtecini alır.
Microsoft kimlik platformu kullanıcıyla etkileşim kurmadan isteği tamamlayamazsa uygulamanızın MSAL AcquireTokenInteractive
yöntemine geri dönmesi gerekir. Etkileşimli olarak belirteç almak için, etki alanı altındaki bir adrese bir web yüzeyi açarak isteği gerçekleştirin https://login.microsoftonline.com
.
Bu web yüzeyinden kullanıcı, Microsoft kimlik platformu ile özel bir konuşma gerçekleştirmiştir. Uygulamanızın bu konuşmayla ilgili bir görünümü yoktur ve konuşmanın denetimi yoktur. Microsoft kimlik platformu bir kullanıcı kimliği ve parola, çok faktörlü kimlik doğrulaması (MFA), parolasız kimlik doğrulaması veya BT yöneticisinin veya kullanıcının yapılandırmış olduğu diğer kimlik doğrulama etkileşimini isteyebilir.
Kullanıcı gerekli kimlik doğrulama adımlarını gerçekleştirdikten sonra uygulamanız bir kimlik belirteci alır. Uygulamanız belirteci aldığında, Microsoft kimlik platformu kullanıcının kimliğini doğruladığından emin olabilirsiniz. Uygulamanız kimlik belirteci almazsa Microsoft kimlik platformu kullanıcının kimliğini doğrulamaz. Kimliği doğrulanmamış kullanıcıların uygulamanızın güvenli alanlarına devam etmelerine izin verme.
Uygulamaların, Microsoft Entra Id'den kimlik belirteci aldıktan sonra bir kullanıcı için oturum oluşturması en iyi yöntemdir. Bir uygulamanın aldığı kimlik belirtecinde Unix zaman damgasına sahip bir süre sonu (exp
) talebi. Bu zaman damgası, uygulamanın işlenmek üzere JWT'yi kabul etmemesi gereken son kullanma tarihini belirtir. Kullanıcı oturumlarınızın yaşam süresini yönlendirmek için bu belirtecin süre sonu süresini kullanın. Talep, exp
açıkça doğrulanmış bir kullanıcıyı uygulamanın önünde doğru ayrıcalıkla ve doğru süreyle tutmada önemli bir rol oynar.
Çoklu Oturum Açma desteği
Çoklu oturum açma (SSO) kimlik doğrulaması, kullanıcıların birden çok bağımsız yazılım sisteminde bir kimlik bilgileri kümesiyle oturum açmasına olanak tanır. SSO, uygulama geliştiricilerinin bir kullanıcının her uygulamada ayrı ve tekrar tekrar oturum açmasını gerektirmemesini sağlar. SSO'nun merkezinde geliştiriciler, kullanıcının cihazındaki tüm uygulamaların kullanıcının kimliğini doğrulayan web yüzeyini paylaşmasını sağlar. Başarılı kimlik doğrulama sürücüsü SSO'sunun ardından web yüzeyindeki yapıtlar (oturum durumu ve tanımlama bilgileri gibi).
Aşağıdaki diyagramda gösterildiği gibi, paylaşılan bir web yüzeyinin en basit kullanım örneği, web tarayıcısında (Microsoft Edge, Google Chrome, Firefox, Safari gibi) çalışan bir uygulamadır. Tarayıcı sekmeleri SSO durumunu paylaşır.
Microsoft kimlik platformu, kullanıcının aynı cihazda farklı tarayıcıları açık olmadığı sürece belirli bir tarayıcıda SSO durumunu yönetir. Windows 10 ve daha yeni sürümlerde, Microsoft kimlik platformu tarayıcı SSO Microsoft Edge'i yerel olarak destekler. Kullanıcı Windows'ta oturum açtığında, Google Chrome'da (Windows 10 hesapları uzantısı aracılığıyla) ve Mozilla Firefox v91+ 'daki konaklama birimleri (tarayıcı ayarı aracılığıyla) her tarayıcının Windows'un SSO durumunu paylaşmasına izin verir.
Aşağıdaki diyagramda gösterildiği gibi, yerel uygulama kullanım örneği daha karmaşıktır.
Kimlik doğrulama aracısı yaklaşımı
Her yerel uygulamanın SSO'ya katılmasını engelleyen kendi eklenmiş WebView'ları olması yaygın bir desendir. Bu senaryoyu ele almak için Microsoft Entra ID, aşağıdaki diyagramda gösterildiği gibi yerel uygulamalar için bir kimlik doğrulama aracısı (kimlik doğrulama aracısı) yaklaşımı kullanır.
Bir kimlik doğrulama aracısı mevcutken, uygulamalar doğrudan Microsoft kimlik platformu yerine aracıya kimlik doğrulama istekleri gönderir. Bu şekilde, aracı cihazdaki tüm kimlik doğrulaması için paylaşılan yüzey haline gelir.
Paylaşılan bir yüzey sağlamaya ek olarak, kimlik doğrulama aracısı başka avantajlar da sağlar. kuruluşlar, Sıfır Güven benimserken uygulamaların yalnızca kurumsal yönetilen cihazlardan çalıştırılmasını isteyebilir. Kurumsal cihaz yönetimine örnek olarak tam Mobil Cihaz Yönetimi (MDM) ve kullanıcıların Mobil Uygulama Yönetimi'ne (MAM) katılan kendi cihazlarını getirdiği senaryolar verilebilir.
Tasarım gereği, temel işletim sistemleri (OS) tarayıcıları yalıtıyor. Geliştiricilerin cihaz ayrıntılarına tam erişim elde etmek için işletim sistemiyle daha yakın bir bağlantıya sahip olması gerekir. Windows'da kimlik doğrulama aracısı, Windows Web Hesabı Yöneticisi 'dir (WAM). Diğer cihazlarda kimlik doğrulama aracısı Microsoft Authenticator uygulaması (iOS veya Android çalıştıran cihazlar için) veya Şirket Portalı Uygulamasıdır (Android çalıştıran cihazlar için). Uygulamalar, MSAL ile kimlik doğrulama aracıya erişer. Windows'da bir uygulama MSAL olmadan WAM'ye erişebilir. Ancak MSAL, uygulamaların kimlik doğrulama aracısına (özellikle Evrensel Windows Platformu uygulamaları olmayan uygulamalar) erişmesinin en kolay yoludur.
Kimlik doğrulama aracıları, kullanıcıların birden çok kez kimlik doğrulamasına ihtiyacı azaltan Birincil Yenileme Belirteçlerini (PRT) kullanmak için Microsoft Entra ID ile birlikte çalışır. PRT'ler kullanıcının yönetilen bir cihazda olup olmadığını belirleyebilir. Microsoft Entra Id, bugün yaygın olarak bulunan taşıyıcı belirteçler üzerinde daha güvenli bir seçenek olan Sahiplik Kanıtı belirteçlerini tanıtması için kimlik doğrulama aracıları gerektirir.
Sonraki adımlar
- Microsoft Entra erişim belirteçleriyle ilgili sorunları giderme: Erişim belirtecini doğrulama, Microsoft Entra erişim belirtecini kullandığınızda belirli alanların kayıtla eşleştiğinden nasıl emin olduğunuzu açıklar.
- Microsoft kimlik platformu ve Microsoft Entra Kimliğini kullanan uygulamalar için seri adresler geliştirdiğiniz kimlik doğrulaması ve yetkilendirme uygulamalarının dayanıklılığını artırın. Bunlar, kendi adına çalışan oturum açmış bir kullanıcı ve daemon uygulamaları adına çalışan istemci ve hizmet uygulamaları için rehberlik içerir. Belirteçleri kullanmak ve kaynakları çağırmak için en iyi yöntemleri içerir.
- Belirteçleri özelleştirme, Microsoft Entra belirteçlerinde alabileceğiniz bilgileri ve belirteçleri nasıl özelleştirebileceğinizi açıklar.
- Belirteçlerde grup taleplerini ve uygulama rollerini yapılandırma, uygulama rol tanımlarıyla uygulamalarınızı yapılandırmayı ve uygulama rollerine güvenlik grupları atamayı gösterir.
- İzinler ve onaylar aracılığıyla kimliğin güvenliğini sağlayan uygulamalar derlemek, izinlere ve erişime yönelik en iyi yöntemlere genel bir bakış sağlar.