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 uygulamanızda bir kullanıcının 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, gizli diziler ve sertifikalar yoktur.

Microsoft kimlik platformu Kimlik belirteci, Kimlik belirteçlerini JSON Web Belirteçleri (JWT) olarak belirten OpenID Bağlan (OIDC) standardının bir parçasıdır. JWT uzun dizesi üç bileşenden oluşur:

  1. Üst bilgi talepleri. Kimlik belirteçlerinde bulunan üst bilgi talepleri şunlardır typ (tür talebi), alg (belirteci imzalama algoritması) ve kid (belirtecin imzasını doğrulamak için ortak anahtar için parmak izi).
  2. Yük talepleri. Yük veya gövde (JSON web belirtecinin orta kısmı) bir dizi ad öznitelik çifti içerir. Standart, talebi veren uygulamaya (veya hedef kitle talebi) giden (audveren adı) bir iss talep olmasını gerektirir.
  3. İ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": "6cb04018-a3f5-46a7-b995-940c78f5aef3",
  "exp": 1536361411,
  "iat": 1536274711,
  "nbf": 1536274711,
  "sub": "AAAAAAAAAAAAAAAAAAAAAIkzqFVrSaSaFHy782bbtaQ",
  "name": "Abe Lincoln",
  "preferred_username": "AbeLi@microsoft.com",
  "oid": "00000000-0000-0000-66f3-3332eca7ea81",
  "tid": "3338040d-6c67-4c5b-b112-36a304b66dad",
}.
.[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ı yapmış olur. 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 verebilir.

Hedef kitle talebi uygulamanızın istemci kimliğinden farklı olan bir belirteç alırsanız, belirteci hemen reddedin. Kullanıcı, uygulamanızda oturum açarak kimlik doğrulaması yapmadı. Başka bir uygulamada oturum açtılar. 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üreden exp ö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 ve exp 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. Talep sub 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, oidve tid talepleri sabit kalır. Kullanıcıyla ilgili her şey değişebilir ve yine de konu veya birleştirilmiş tid ve oid 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. Aynı ilkeler SAML veya WS-Federation kullanan uygulamalar için de 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 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ırdığı 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ğrulamamış olur. 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.

Diyagramda, bir uygulamanın tarayıcıda çalıştığı paylaşılan web yüzeyi senaryosu gösterilmektedir.

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 Internet Explorer ve Microsoft Edge'de tarayıcı SSO'yu 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 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.

Diyagram, SSO olmadan eklenmiş tarayıcıların karmaşık yerel uygulama kullanım örneğini gösterir.

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.

Diyagramda yerel uygulamalar için kimlik doğrulama aracılarının kullanımı gösterilmektedir.

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.
  • Geliştirdiğiniz kimlik doğrulaması ve yetkilendirme uygulamalarının dayanıklılığını artırma makale serisi, Microsoft kimlik platformu ve Microsoft Entra Kimliğini kullanan uygulamaları ele alır. 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 oluşturmak, izinlere ve erişime yönelik en iyi yöntemlere genel bir bakış sağlar.