Hizmet Olarak Yazılım (SaaS), dikkate alınması gereken birçok nokta içeren karmaşık bir konudur. SaaS çözümlerini Azure'da oluşturan bağımsız yazılım satıcılarının (ISV) sorunları çözmesi ve aşağıdaki gibi kararlar alması gerekir:
- Hangi kiracı modelini kullanmalıyım?
- Nasıl yaparım? çok kiracılı bir mimaride kullanmak üzere bir kimlik çözümü ayarlamak mı?
- Yeni müşteriler eklemeyle Nasıl yaparım? başa çıkabilirsiniz?
Bu mimari, bu soruların bazılarını yanıtlamayı ve SaaS dünyasına bir başlangıç noktası sağlamayı amaçlar. Bu mimari, çok çeşitli senaryolara uyacak şekilde uyarlanabilir.
Olası kullanım örnekleri
Aşağıda, bu mimariyi kullanabileceğiniz bazı örnek kullanım örnekleri verilmiştir:
- SaaS tabanlı iş modeline geçiş kapsamında mevcut bir uygulamayı tam çok kiracılılığı destekleyecek şekilde modernleştirin.
- Tamamen yeni bir SaaS teklifi geliştirin.
- SaaS teklifini başka bir bulut hizmetinden Azure'a geçirme.
Mimari
Bu mimarinin PowerPoint dosyasını indirin.
Terminoloji
Aşağıdaki tabloda, bu makalede görünen terimler açıklanmaktadır.
Süre | Açıklama | Örnek |
---|---|---|
SaaS satıcısı veya ISV | SaaS uygulamasına ve koduna sahip olan ve SaaS ürününü satan varlık. | SaaS uygulamasını satan Contoso Inc: Contoso Biletleri. |
Kiracı | SaaS Satıcısı'ndan SaaS uygulamasının satın alınan örneği. | Dördüncü Kahve Dükkanı. |
SaaS müşteri yöneticisi | Uygulama kiracısı satın alan veya yöneten kişileri Kişiler. | Joe, Fourth Coffee Shop'un sahibi. |
SaaS müşteri kullanıcısı | Bir uygulama kiracısını yönetmeden kullanan ve genellikle SaaS müşteri yöneticisiyle aynı şirkete veya gruba ait olan Kişiler. | Jill, Fourth Coffee Shop'ta etkinlik yöneticisi ve Susan, Fourth Coffee Shop'un müşterisi. |
Son kullanıcı | SaaS müşteri yöneticisi, SaaS müşteri kullanıcısı veya tanıtılan diğer kullanıcı türleri. Bu, uygulamada oturum açan kullanıcıları tanımlamak için kullanılan genel bir terimdir. | Joe, Jill ve Susan'ın hepsi son kullanıcılardır (ISV açısından). |
Ön uç uygulaması | Herhangi bir ön uç uygulaması. | Ekleme ve yönetici uygulaması ve SaaS uygulaması ön uç uygulamalarıdır. |
İş Akışı
SaaS müşteri yöneticisi, Ekleme ve yönetici uygulamasında barındırılan siteye gider.
SaaS müşteri yöneticisi, kullanıcı oturum açma iş akışını kullanarak oturum açar.
SaaS müşteri yöneticisi ekleme akışını tamamlar.
SaaS müşteri yöneticisi, Ekleme ve yönetici uygulamasında kiracı yöneticisi alanına gider ve yeni oluşturulan kiracısına bir SaaS Müşteri Kullanıcısı ekler.
SaaS müşteri kullanıcısı SaaS uygulama uygulamasına gider ve SaaS uygulamasını kullanır.
Kullanıcı oturumu açma
Kullanıcı oturum açma iş akışı aşağıdaki adımlardan oluşur:
Son kullanıcı bir ön uç uygulamasına gider ve oturum aç düğmesini seçer.
Ön uç uygulaması, son kullanıcıyı kimlik sağlayıcısı tarafından barındırılan bir oturum açma sayfasına yönlendirir.
Son Kullanıcı hesap bilgilerini girer ve oturum açma formunu Kimlik sağlayıcısına gönderir.
Kimlik sağlayıcısı, izinlerini ve rollerini almak için son kullanıcının e-posta adresi ve nesne kimliğiyle bir POST isteği verir.
İzin verileri API'si, İzin veri depolama alanında son kullanıcının bilgilerini arar ve bu son kullanıcıya atanan izinlerin ve rollerin listesini döndürür.
Kimlik sağlayıcısı, izinleri ve rolleri bir JSON web belirteci (JWT) olan kimlik belirtecine özel talepler olarak ekler.
Kimlik sağlayıcısı son kullanıcıya bir kimlik belirteci döndürür ve ön uç uygulamasına bir yeniden yönlendirme başlatır.
Son kullanıcı ön uç uygulamasında oturum açma uç noktasına yönlendirilir ve kimlik belirtecini sunar.
Ön uç uygulaması, sunulan kimlik belirtecini doğrular.
Ön uç uygulaması başarılı bir oturum açma sayfası döndürür ve son kullanıcı artık oturum açar.
Bu oturum açma akışının nasıl çalıştığı hakkında daha fazla bilgi için bkz. OpenID Bağlan protokolü.
Yeni kiracı ekleme
Kiracı ekleme iş akışı aşağıdaki adımlardan oluşur:
SaaS müşteri yöneticisi, Ekleme ve yönetici uygulamasına gider ve bir kaydolma formu tamamlar.
Ekleme ve yönetici uygulaması, yeni bir kiracı oluşturmak için Kiracı veri API'sine bir POST isteği yayınlar.
Kiracı veri API'si, kiracı veri depolama alanında yeni bir kiracı oluşturur.
Kiracı veri API'si, Yeni oluşturulan kiracıya SaaS müşteri yöneticisi izinleri vermek için İzin verileri API'sine bir POST isteği verir.
İzin verileri API'si, İzin veri depolama alanında yeni bir izin kaydı oluşturur.
İzin verileri API'si başarıyla döndürülüyor.
Kiracı veri API'si başarıyla döndürülüyor.
Ekleme ve yönetici uygulaması, SaaS müşteri yöneticisine "kiracı oluşturuldu" e-posta iletisi göndermek için E-posta bildirim sağlayıcısınabir POST isteği gönderir.
E-posta bildirim sağlayıcısı e-postayı gönderir.
E-posta bildirim sağlayıcısı başarıyla döndürülüyor.
Ekleme ve yönetici uygulaması, Yeni oluşturulan kiracıya bir JWT talebi içermesi için Kimlik sağlayıcısına SaaS müşteri yöneticisinin kimlik belirtecini yenileme isteğinde bulunur.
Kimlik sağlayıcısı, izinlerini ve rollerini almak için SaaS müşteri yöneticisinin e-posta adresi ve nesne kimliğiyle bir POST isteği verir.
İzin verileri API'si, İzin veri depolama alanında SaaS müşteri yöneticisinin bilgilerini arar ve SaaS müşteri yöneticisine atanan izinlerin ve rollerin listesini döndürür.
Kimlik sağlayıcısı, kimlik belirtecine özel talepler olarak izinleri ve rolleri ekler.
Kimlik sağlayıcısı, Kimlik belirtecini Ekleme ve Yönetici Uygulamasına döndürür.
Ekleme ve yönetici uygulaması SaaS Müşteri Yönetici bir başarı iletisi ve yeni bir kimlik belirteci döndürür.
Kiracıya kullanıcı ekleme
Bir kullanıcının kiracı iş akışına eklenmesi aşağıdaki adımlardan oluşur:
SaaS müşteri yöneticisi, Ekleme ve yönetici uygulamasındaki kiracı yöneticisi alanından kiracıların listesini görmeyi istemektedir.
Ekleme ve yönetici uygulaması, SaaS müşteri yöneticisinin kiracılarının listesini almak için Kiracı veri API'sinebir GET isteği yayınlar.
Kiracı veri API'si, SaaS müşteri yöneticisinin görüntüleme erişimine sahip olduğu kiracıların listesini almak için İzin verileri API'sine bir GET isteği oluşturur.
İzin verileri API'si kiracı izinlerinin listesini döndürür.
Kiracı veri API'si Kiracı veri depolama alanında kiracı bilgilerini arar ve alınan kiracı izinlerinin listesine göre kiracı verilerinin listesini döndürür.
Ekleme ve yönetici uygulaması, kiracı verilerinin listesini SaaS müşteri yöneticisine döndürür.
SaaS müşteri yöneticisi, SaaS müşteri kullanıcısını eklemek için listeden bir kiracı seçer ve SaaS müşteri kullanıcısının e-posta adresini girer.
Ekleme ve yönetici uygulaması, belirtilen kiracıdaki SaaS müşteri kullanıcısı için bir izin eklemek üzere Kiracı veri API'sine bir POST isteği yayınlar.
Kiracı veri API'si, SaaS müşteri yöneticisinin belirtilen kiracıda geçerli bir JWT talebi olduğunu ve kullanıcının bu kiracı üzerinde yazma iznine sahip olduğunu doğrular.
Kiracı veri API'si, belirtilen kiracıda SaaS müşteri kullanıcısı için izin eklemek üzere İzin verileri API'sine bir POST isteği yayınlar.
İzin verileri API'si, Sağlanan e-posta adresiyle SaaS müşteri kullanıcısını aramak için Kimlik sağlayıcısına bir GET isteği oluşturur.
Kimlik sağlayıcısı, SaaS müşteri kullanıcısının nesne kimliğini döndürür.
İzin verileri API'si, nesne kimliğini kullanarak belirtilen kiracıdaki SaaS müşteri kullanıcısı için İzin veri depolama alanına bir izin kaydı ekler.
İzin verileri API'si başarıyla döndürülüyor.
Kiracı veri API'si başarıyla döndürülüyor.
Ekleme ve yönetici uygulaması başarıyla döndürülüyor.
Bileşenler
Bu mimaride aşağıdaki Azure hizmetleri kullanılır:
App Service , altyapıyı yönetmenize gerek kalmadan seçtiğiniz programlama dilinde web uygulamaları ve API uygulamaları oluşturmanıza ve barındırmanıza olanak tanır.
Azure Active Directory B2C , son kullanıcı uygulamaları için kimlik ve erişim yönetimini kolayca etkinleştirir.
Azure SQL Veritabanı ilişkisel verileri, uzamsal verileri, JSON'ı ve XML'yi destekleyen genel amaçlı bir ilişkisel veritabanı yönetilen hizmetidir.
Azure Logic Apps , basit bir GUI aracı kullanarak hızlı bir şekilde güçlü tümleştirmeler oluşturmanıza olanak tanır.
Alternatifler
Alternatif seçeneklerin etkinliği, SaaS uygulamanızın desteklemesini amaçladığınız kiracı modeline büyük ölçüde bağlıdır. Aşağıda, bu çözümü uygularken izleyebileceğiniz alternatif yaklaşımların bazı örnekleri verilmiştir:
Geçerli çözüm, kimlik sağlayıcısı olarak Azure Active Directory B2C kullanır. Bunun yerine Microsoft Entra Id gibi diğer kimlik sağlayıcılarını kullanabilirsiniz.
Daha katı güvenlik ve uyumluluk gereksinimleri için, hizmetler arası iletişim için özel ağ uygulamayı seçebilirsiniz.
Hizmetler arasında REST çağrıları kullanmak yerine, hizmetler arası mesajlaşma için olay odaklı bir mimari stili uygulayabilirsiniz.
Dikkat edilmesi gereken noktalar
Bu önemli noktalar, bir iş yükünün kalitesini artırmak için izleyebileceğiniz bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.
Güvenlik
Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.
Bu çözüm, güvenlik paradigması olarak kimliğe dayanır. Web uygulamaları ve API'ler için kimlik doğrulaması ve yetkilendirme, kullanıcı kimliği belirteçlerini (JWT) verme ve doğrulamadan sorumlu olan Microsoft kimlik platformu tarafından yönetilir.
Maliyet iyileştirme
Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.
Bu çözümdeki bileşenlerin çalışmalarıyla ilgili bazı maliyetleri vardır, ancak çoğu web uygulaması ve SaaS çözümü için maliyet düşüktür. Ayrıca, aşağıdaki kaynak ayarlarını yöneterek maliyeti de denetleyebilirsiniz:
Uygulamayı çalıştıran App Service planını ihtiyacınız olan aktarım hızına uyacak şekilde ölçeklendikleyebilirsiniz. Buna ek olarak, daha yüksek aktarım hızına ihtiyacınız varsa her uygulamayı ayrı bir planda çalıştırabilirsiniz, ancak sonuç olarak daha yüksek bir maliyet elde edersiniz. Daha fazla bilgi için bkz. Azure Uygulaması Hizmet planına genel bakış.
Azure AD B2C iki SKU sağlar: Premium P1 ve Premium P2. Her iki SKU da aylık etkin kullanıcı (MAU) sayısı için ücretsiz bir izin içerir, ancak her SKU'nun kullanım örneğiniz için hangi özelliklerin gerekli olduğunu belirlemek için hangi özellikleri sağladığını değerlendirmeniz gerekir. Daha fazla bilgi için bkz. Microsoft Entra Dış Kimlik fiyatlandırması.
Azure SQL,otomatik ölçeklendirme özelliği de dahil olmak üzere çok çeşitli kullanım örneklerine uygun çeşitli satın alma modellerine sahiptir. Doğru boyutlandırdığınızdan emin olmak için kullanımı kendi veritabanlarınızda değerlendirmeniz gerekir. Daha fazla bilgi için bkz. Azure SQL Veritabanı sanal çekirdek ve DTU tabanlı satın alma modellerini karşılaştırma.
Performans verimliliği
Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.
Bu mimari, en orta ve orta büyüklükteki iş yüklerini kolayca karşılayacak şekilde ölçeklendirilebilmelidir. Mimari çoğunlukla Azure'ın platform (PaaS) hizmetlerini kullandığından, gereksinimlerinize ve yüklemenize göre çözümün ölçeğini ayarlamak için birçok seçeneğiniz vardır.
Bu senaryoyu dağıtın
Bu senaryoyu dağıtmak isterseniz GitHub'da Azure SaaS Geliştirme Seti'ne bakın. Bu mimarinin dağıtılabilir bir başvuru uygulamasıdır.
Katkıda Bulunanlar
Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.
Asıl yazar:
- Landon Pierce | Müşteri Mühendisi
Diğer katkıda bulunanlar:
- Chris Ayers | Kıdemli Müşteri Mühendisi
- John Downs | Kıdemli Müşteri Mühendisi
- LaBrina Sevgi dolu | Baş SVC Mühendislik Yöneticisi
- Gary Moore | Programcı/Yazar
- Nick Pinheiro | Kıdemli Danışman
- William Salazar | Kıdemli Müşteri Mühendisi
- Ali Sanjabi | Kıdemli Müşteri Mühendisi
- Arsen Vladimirskiy | Baş Müşteri Mühendisi
- Jason Young | Baş SVC Mühendislik Yöneticisi
Sonraki adımlar
Azure'da SaaS uygulaması oluşturmak için önerilen bazı ek kaynaklar şunlardır:
- Azure'da çok kiracılı çözümler tasarlama - En iyi yöntemleri açıklar.
- Azure giriş bölgeleri için ISV Ile İlgili Dikkat Edilmesi Gerekenler
- Microsoft Azure İyi Tasarlanmış Çerçeve
- Wing İpuçları Tickets SaaS uygulaması - Veritabanı katmanındaki çeşitli kiracı modelleri arasındaki dengeler hakkında ayrıntılı bilgi sağlar.
İlgili kaynaklar
- Çok kiracılı bir çözüm için dikkate alınması gereken kiracı modelleri
- Çok kiracılı çözümlerde işlem için mimari yaklaşımlar
- Çok kiracılı çözümlerde depolama ve veri için mimari yaklaşımlar
- Azure Uygulaması Hizmeti ve çok kiracılı Azure İşlevleri konuları
- Azure'da Çok Kiracılı SaaS
- Bulut Tasarım Desenleri