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.
Birçok kuruluşa Hizmet Olarak Yazılım (SaaS) uygulaması sunuyorsanız, uygulamanızı çok kiracılıya dönüştürerek herhangi bir Microsoft Entra kiracısından oturum açmaları kabul etmek üzere yapılandırabilirsiniz. Herhangi bir Microsoft Entra kiracısında yer alan kullanıcılar, kendi hesabını uygulamanızla kullanmaya onay verdikten sonra uygulamanızda oturum açabilecektir.
Kendi hesap sistemine (veya diğer bulut sağlayıcılarından gelen diğer oturum açma işlemlerine) sahip mevcut uygulamalar için OAuth2, OpenID Connect veya Güvenlik Onay İşaretleme Dili (SAML) aracılığıyla oturum açma kodu eklemeli ve uygulamanıza " Microsoft ile oturum aç" düğmesi yerleştirmelisiniz.
Bu nasıl yapılır kılavuzunda, tek bir kiracı uygulamasını Microsoft Entra çok kiracılı uygulamasına dönüştürmek için gereken dört adımı üstlenirsiniz:
- Uygulama kaydınızı çok kiracılı olacak şekilde güncelleştirme
-
Kodunuzu uç noktaya istek gönderecek şekilde
/commongüncelleştirme - Kodunuzu birden çok yayımlayıcı değerini işlemek üzere güncelleyin
- Kullanıcı ve yönetici onaylarını anlama ve uygun kod değişiklikleri yapma
Örneklerimizden birini kullanmayı denemek istiyorsanız Microsoft Entra ID ve OpenID Connect kullanarak Microsoft Graph'i çağıran çok kiracılı bir SaaS web uygulaması oluşturma bölümüne bakın
Önkoşullar
- Microsoft Entra kiracısı. Bir kiracınız yoksa Hızlı Başlangıç: Microsoft Entra Id'de yeni kiracı oluşturma bölümünden bir kiracı oluşturabilirsiniz
- Microsoft kimlik platformuna kayıtlı bir uygulama. Eğer bir uygulamanız yoksa, Microsoft kimlik platformunda bir uygulama kaydetme hızlı başlangıç kılavuzunda bir tane oluşturabilirsiniz.
- Microsoft Entra ID'de Kiracılıkla ilgili bilgi sahibi olma.
- Uygulama kodunuzu düzenlemenizi sağlayan tümleşik bir geliştirme ortamı (IDE).
Kaydı çok kiracılı olacak şekilde güncelleştirme
Varsayılan olarak, Microsoft Entra Id'deki web uygulaması/API kayıtları oluşturma işleminden sonra tek kiracılıdır. Kaydı çok kiracılı yapmak için Microsoft Entra yönetim merkezinde oturum açın ve güncelleştirmek istediğiniz uygulama kaydını seçin. Uygulama kaydı açıkken Kimlik Doğrulama bölmesini seçin ve Desteklenen hesap türleri bölümüne gidin. Ayarı herhangi bir kuruluş dizinindeki Hesaplar olarak değiştirin.
Microsoft Entra yönetim merkezinde tek kiracılı bir uygulama oluşturulduğunda, Genel Bakış sayfasında listelenen öğelerden biri Uygulama Kimliği URI'sidir. Bu, bir uygulamanın protokol iletilerinde tanımlanmasının yollarından biridir ve herhangi bir zamanda eklenebilir. Tek kiracılı uygulamalar için Uygulama Kimliği URI'si bu kiracı içinde genel olarak benzersiz olabilir. Buna karşılık, çok kiracılı uygulamalar için tüm kiracılar genelinde benzersiz olmalıdır ve Microsoft Entra Id'nin uygulamayı tüm kiracılarda bulabildiğinden emin olunmalıdır.
Örneğin, kiracınızın adı contoso.onmicrosoft.com ise, geçerli bir Uygulama Kimliği URI'si https://contoso.onmicrosoft.com/myapp olur. Uygulama Kimliği URI'si bu desene uymuyorsa, bir uygulamayı çok kiracılı olarak ayarlamak başarısız olur.
Kodunuzu /common adresine istek gönderecek şekilde güncelleyin.
Çok kiracılı bir uygulamayla uygulama kullanıcının hangi kiracıdan olduğunu hemen anlayamaz, bu nedenle istekler kiracının uç noktasına gönderemez. Bunun yerine, istekler tüm Microsoft Entra kiracılarında hizmet veren ortak bir uç noktaya (https://login.microsoftonline.com/common) gönderilir ve istekleri işleyen merkezi bir hub görevi görür.
Uygulamanızı IDE'nizde açın, kodunuzu düzenleyin ve kiracı kimliğinizin değerini olarak /commondeğiştirin. SAML uygulamaları için bu, kimlik sağlayıcısı XML dosyasında yapılandırılabilir. Bu uç nokta bir kiracı veya verenin kendisi değildir. Microsoft kimlik platformu uç noktada bir istek /common aldığında kullanıcının oturumunu açar ve kullanıcının hangi kiracıdan olduğunu bulur. Bu uç nokta, Microsoft Entra Id (OpenID Connect, OAuth 2.0, SAML 2.0, WS-Federation) tarafından desteklenen tüm kimlik doğrulama protokolleriyle çalışır.
Uygulamaya verilen oturum açma yanıtı, kullanıcıyı temsil eden bir belirteç içerir. Belirteçteki veren değeri, uygulamaya kullanıcının hangi kiracıdan olduğunu söyler. Bir yanıt /common uç noktasından döndüğünde, belirteçteki veriliş değeri kullanıcının kiracısına karşılık gelir.
Not
Gerçekte çok kiracılı uygulamalar için 2 yetkili vardır:
-
https://login.microsoftonline.com/commonherhangi bir kuruluş dizininde (herhangi bir Microsoft Entra dizini) ve kişisel Microsoft hesaplarında (Skype, XBox gibi) hesapları işleyen uygulamalar için. -
https://login.microsoftonline.com/organizationsherhangi bir kuruluş dizininde (herhangi bir Microsoft Entra dizininde) hesapları işleyen uygulamalar için:
Bu belgedeki açıklamalarda kullanılır common. Ancak uygulamanız Microsoft kişisel hesaplarını desteklemiyorsa ile değiştirebilirsiniz organizations .
Kodunuzu birden çok sağlayıcı değerini işleyecek şekilde güncelleyin
Web uygulamaları ve web API'leri Microsoft kimlik platformu belirteçleri alır ve doğrular. Yerel istemci uygulamaları erişim belirteçlerini doğrulamaz ve bunları opak olarak ele almalıdır. Bunun yerine, Microsoft kimlik platformundan belirteçler ister ve alırlar, ardından belirteçleri doğrulama amacıyla API'lere gönderirler.
Çok kiracılı uygulamalar bir belirteci doğrularken daha fazla denetim gerçekleştirmelidir. Çok kiracılı bir uygulama, /organizations veya /common anahtar URL'lerinden anahtar meta verilerini tüketmek üzere yapılandırılır. Uygulama, belirteçteki talebin issuer kiracı kimliği (iss) talebi içerdiğini denetlemenin yanı sıra yayımlanan meta verilerdeki özelliğin belirteçteki taleple eşleşdiğini isstid doğrulamalıdır. Daha fazla bilgi için bkz . Belirteçleri doğrulama.
Kullanıcı ve yönetici onaylarını anlama ve uygun kod değişiklikleri yapma
Kullanıcının Microsoft Entra Id'de bir uygulamada oturum açması için uygulamanın kullanıcının kiracısında temsil edilmesi gerekir. Daha sonra kuruluş, kiracılarındaki kullanıcılar uygulamaya giriş yaptığında benzersiz ilkeler uygulamak gibi işlemleri yapabilir. Tek kiracılı bir uygulama için kaydı Microsoft Entra yönetim merkezi aracılığıyla kullanabilirsiniz.
Çok kiracılı bir uygulama için, uygulamanın ilk kaydı geliştirici tarafından kullanılan Microsoft Entra kiracısında bulunur. Farklı bir kiracıdaki bir kullanıcı uygulamada ilk kez oturum açtığında, Microsoft Entra Id uygulama tarafından istenen izinleri onaylamasını ister. Onaylarsa, kullanıcının kiracısında hizmet sorumlusu adlı uygulamanın bir gösterimi oluşturulur ve oturum açma işlemi devam edebilir. Kullanıcının uygulamaya onayını kaydeden dizinde bir temsilci de oluşturulur. Uygulamanın Application ve ServicePrincipal nesneleri ve birbirleriyle ilişkileri hakkında ayrıntılı bilgi için bkz: Uygulama nesneleri ve hizmet sorumlusu nesneleri.
Uygulama tarafından istenen izinler onay deneyimini etkiler. Microsoft kimlik platformu iki tür izni destekler;
- Temsilci: Bu izin, uygulamaya kullanıcının yapabileceklerinin bir alt kümesi için oturum açmış bir kullanıcı olarak davranma olanağı verir. Örneğin, bir uygulamaya oturum açmış kullanıcının takvimini okuması için temsilci izni verilmektedir.
- Yalnızca Uygulama: Bu izin doğrudan uygulamanın kimliğine verilir. Örneğin, uygulamada kimin oturum açtığından bağımsız olarak bir uygulamaya kiracıdaki kullanıcıların listesini okuma izni verilmektedir.
Normal kullanıcılar bazı izinlere onay verirken, diğerleri kiracı yöneticisinin onayına ihtiyaç duyar.
Kullanıcı ve yönetici onayı hakkında daha fazla bilgi edinmek için bkz . Yönetici onayı iş akışını yapılandırma.
Yönetici onayı
Yalnızca uygulama izinleri her zaman bir kiracı yöneticisinin iznini gerektirir. Uygulamanız yalnızca uygulama izni isterse ve bir kullanıcı uygulamada oturum açmaya çalışırsa, kullanıcının onay veremeyeceğini belirten bir hata iletisi görüntülenir.
Belirli temsilci izinleri de bir kiracı yöneticisinin onayını gerektirmektedir. Örneğin, oturum açmış kullanıcı olarak Microsoft Entra Id'ye geri yazabilmek için kiracı yöneticisinin onayı gerekir. Yalnızca uygulama izinleri gibi, sıradan bir kullanıcı yönetici onayı gerektiren bir temsilci izni isteyen bir uygulamada oturum açmaya çalışırsa, uygulama bir hata alır. Kaynağı yayımlayan geliştirici, bir iznin yönetici onayı gerekip gerekmediğini belirler ve bu bilgileri kaynağın belgelerinde bulabilirsiniz. Microsoft Graph API'sinin izin belgeleri, hangi izinlerin yönetici onayı gerektirdiğini gösterir.
Uygulamanız yönetici onayı gerektiren izinler kullanıyorsa, yöneticinin eylemi başlatabileceği bir düğme veya bağlantı eklemeyi göz önünde bulundurun. Uygulamanızın bu eylem için gönderdiği istek, sorgu dizesi parametresini de içeren prompt=consent olağan OAuth2/OpenID Connect yetkilendirme isteğidir. Müşterinin kiracısında yönetici onayları ve hizmet sorumlusu oluşturulduktan sonra, sonraki oturum açma istekleri için prompt=consent parametresi gerekmez. Yönetici istenen izinleri onayladığı için kiracıdaki diğer kullanıcılardan onay istenmez.
Kiracı yöneticisi, normal kullanıcıların uygulamalara onay verme özelliğini devre dışı bırakabilir. Bu özellik devre dışı bırakılırsa, uygulamanın kiracıda kullanılması için her zaman yönetici onayı gerekir. Microsoft Entra yönetim merkezinde uygulamanızı son kullanıcı onayı devre dışı bırakılmış olarak test edebilirsiniz. Kurumsal uygulamalar>Onay ve izinler bölümünde Kullanıcı onayına izin verme seçeneğini işaretleyin.
Parametresi, prompt=consent yönetici onayı gerektirmeyen izinler isteyen uygulamalar tarafından da kullanılabilir. Örnek bir kullanım örneği, uygulamanın kiracı yöneticisinin bir kez "kaydolduğu" bir deneyime ihtiyaç duyması ve bu noktadan sonra başka hiçbir kullanıcıdan onay istenmez olmasıdır.
Bir uygulama yönetici onayı gerektiriyorsa ve yönetici parametre gönderilmeden prompt=consent oturum açarsa, yönetici uygulamayı başarıyla onayladığında yalnızca kullanıcı hesabı için geçerlidir. Normal kullanıcılar uygulamada oturum açamaz veya onaylayamaz. Bu özellik, kiracı yöneticisine diğer kullanıcılara erişim izni vermeden önce uygulamanızı keşfetme olanağı vermek istiyorsanız kullanışlıdır.
Onay ve çok katmanlı uygulamalar
Uygulamanızın, her biri Microsoft Entra Id'de kendi kaydıyla temsil edilen birden çok katmanı olabilir. Örneğin, web API'sini çağıran yerel bir uygulama veya web API'sini çağıran bir web uygulaması. Her iki durumda da istemci (yerel uygulama veya web uygulaması) kaynağı (web API' sini) çağırmak için izin ister. İstemcinin müşterinin kiracısına başarıyla onay verebilmesi için, izin istediği tüm kaynakların müşterinin kiracısında zaten mevcut olması gerekir. Bu koşul karşılanmazsa Microsoft Entra Id, önce kaynağın eklenmesi gerektiğini belirten bir hata döndürür.
Tek bir kiracıda birden çok katman
Mantıksal uygulamanız iki veya daha fazla uygulama kaydından (örneğin ayrı bir istemci ve kaynak) oluşuyorsa bazı sorunlarla karşılaşabilirsiniz. Örneğin, kaynağı önce dış kiracıya nasıl aktarabilirsiniz? Microsoft Entra Id, istemci ve kaynağın tek bir adımda onaylanmalarını sağlayarak bu durumu kapsar. Kullanıcı, onay sayfasında hem istemci hem de kaynak tarafından istenen izinlerin toplamını görür. Bu davranışı etkinleştirmek için, kaynağın uygulama kaydı istemcinin Uygulama Kimliğini uygulama bildiriminde knownClientApplicationsbir olarak içermelidir. Örneğin:
"knownClientApplications": ["12ab34cd-56ef-78gh-90ij11kl12mn"]
Tanıtım için çok kiracılı uygulama örneğine başvurabilirsiniz. Aşağıdaki diyagramda, tek bir kiracıda kayıtlı çok katmanlı bir uygulama için onaylara genel bir bakış sağlanır.
Birden çok kiracıda birden çok katman
Bir uygulamanın farklı katmanları farklı kiracılarda kayıtlıysa benzer bir durum ortaya çıkar. Örneğin, Exchange Online API'sini çağıran yerel bir istemci uygulaması oluşturma örneğini düşünün. Yerel uygulamayı geliştirmek ve daha sonra yerel uygulamanın müşterinin kiracısında çalışması için Exchange Online hizmet sorumlusunun mevcut olması gerekir. Burada, kiracılarında hizmet sorumlusunun oluşturulması için geliştiricinin ve müşterinin Exchange Online'ı satın alması gerekir.
Bu, Microsoft dışında bir kuruluş tarafından oluşturulmuş bir API ise, API'nin geliştiricisinin müşterilerine uygulamanın müşteri kiracılarına onay vermesi için bir yol sağlaması gerekir. Önerilen tasarım, üçüncü taraf geliştiricinin API'yi, kaydolmayı uygulayacak bir web istemcisi olarak da çalışabilecek şekilde derlemesi içindir. Şunları yapabilirsiniz;
- API'nin çok kiracılı uygulama kaydı/kod gereksinimlerini uyguladığından emin olmak için önceki bölümleri izleyin.
- API'nin kapsamlarını/rollerini göstermenin yanı sıra, kaydın "Oturum aç ve kullanıcı profilini oku" iznini (varsayılan olarak sağlanır) içerdiğinden emin olun.
- Web istemcisinde bir oturum açma/kaydolma sayfası uygulayın ve yönetici onayı kılavuzunu izleyin.
- Kullanıcı uygulamaya onay verdikten sonra kiracısında hizmet sorumlusu ve onay temsilcisi bağlantıları oluşturulur ve yerel uygulama API için belirteçler alabilir.
Aşağıdaki diyagramda, farklı kiracılarda kayıtlı çok katmanlı bir uygulama için onaylara genel bir bakış sağlanır.
Onayı iptal etme
Kullanıcılar ve yöneticiler uygulamanızın onayını istedikleri zaman iptal edebilir:
- Kullanıcılar, uygulamaları Erişim Paneli Uygulamalar listesinden kaldırarak tek tek uygulamalara erişimi iptal eder.
- Yöneticiler, Microsoft Entra yönetim merkezinin Kurumsal uygulamalar bölümünü kullanarak uygulamalara erişimi kaldırarak iptal eder. Uygulamayı seçin ve erişimi iptal etmek için İzinler sekmesine gidin.
Yönetici bir kiracıdaki tüm kullanıcılar için bir uygulamaya onay verirse, kullanıcılar erişimi tek tek iptal yapamaz. Erişimi yalnızca yönetici ve yalnızca uygulamanın tamamı için iptal edebilir.
Çoklu kiracı uygulamaları ve erişim belirteçlerinin önbelleğe alınması
Çok kiracılı uygulamalar, Microsoft Entra Kimliği ile korunan API'leri çağırmak için erişim belirteçleri de alabilir. Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) çok kiracılı bir uygulamayla kullanırken karşılaşılan yaygın bir hata, başlangıçta kullanan /commonbir kullanıcı için bir belirteç istemek, bir yanıt almak ve aynı kullanıcı için de kullanarak /commonsonraki bir belirteç istemektir. Microsoft Entra ID'den gelen yanıt bir kiracıdan geldiği için, /common MSAL belirteci kiracıdan gelen olarak önbelleğe alır. Kullanıcı için erişim belirteci almak için yapılan sonraki çağrı /common önbellek girdisini kaçırır ve kullanıcıdan yeniden oturum açması istenir. Önbelleğin eksik olmasını önlemek için, kiracının uç noktasında zaten oturum açmış bir kullanıcı için sonraki çağrıların yapıldığından emin olun.