Aracılığıyla paylaş


Power Apps ile Microsoft SQL Server'ı güvenli bir şekilde kullanma

SQL Server'a Power Apps ile bağlanmanın ve kimlik doğrulaması yapmanın farklı yolları vardır. Bu makalede, uygulamanızın gereksinimlerine uygun bir güvenlik yaklaşımıyla SQL Server'a bağlanma yöntemiyle ilgili bir seçim yaparken size yardımcı olabilecek kavramlar açıklanmaktadır.

Önemli

Güvenli örtülü bağlantılar özelliği Ocak 2024'te yayımlandı. Microsoft, şu anda örtülü bağlantıların kullanıldığı tüm uygulamaların güvenli örtülü bağlantılara geçmesini ve son kullanıcılarla paylaşılan bağlantıların iptal edilmesini kesinlikle önermektedir.

Açık, örtülü ve güvenli örtülü bağlantılar arasındaki fark

SQL Server bağlantısı, SQL Server'a bağlanarak Power Apps'i kullanıp bir uygulama oluşturduğunuz her seferde oluşturulur. Böyle uygulamalar yayımlandığında ve başkalarıyla paylaşıldığında, hem uygulama hem de bağlantı bu kullanıcılara dağıtılır. Diğer bir ifadeyle, hem uygulama hem de bağlantı uygulamalarının paylaşıldığı kullanıcılar tarafından görülebilir.

Bu gibi bağlantılar için kullanılan kimlik doğrulama yöntemi açık veya örtük olabilir. Bu tür bir bağlantının açık veya örtük olarak paylaşıldığını da söyleyebiliriz.

  • Açıkça paylaşılan bağlantı, uygulamanın son kullanıcısının kendi açık kimlik bilgileriyle SQL Server'da kimlik doğrulaması yapması gerektiği anlamına gelir. Genellikle bu kimlik doğrulaması, Microsoft Entra ve Windows kimlik doğrulamasının karşılıklı kimlik doğrulama protokolü kapsamında arka planda gerçekleşir. Kullanıcı kimlik doğrulamasının gerçekleştiğini fark etmez.
  • Örtülü olarak paylaşılan bağlantı, uygulama geliştiricisinin uygulama oluşturma sırasında veri kaynağına bağlanmak ve kimlik doğrulaması yapmak için kullandığı hesabın kimlik bilgilerinin kullanıcı tarafından örtük olarak kullanıldığı anlamına gelir. Son kullanıcının kimlik bilgileri kimlik doğrulaması için kullanılmaz. Son kullanıcı uygulamayı her çalıştırdığında yazarın uygulamayı oluşturmak için kullandığı kimlik bilgilerini kullanır.
  • Güvenli örtülü olarak paylaşılan bağlantı, uygulama geliştiricisinin uygulama oluşturma sırasında veri kaynağına bağlanmak ve kimlik doğrulaması yapmak için kullandığı hesabın kimlik bilgilerinin uygulamanın son kullanıcısı tarafından örtük olarak kullanıldığı bir senaryoyu ifade eder. Bu, son kullanıcının kendi kimlik bilgilerinin kimlik doğrulama için kullanılmadığı anlamına gelir. Bunun yerine kullanıcı uygulamayı çalıştırdığında uygulamanın yazarının uygulamayı oluşturduğu kimlik bilgilerini kullanır. Son kullanıcıya bağlantıya doğrudan erişim sağlanmadığını ve uygulamanın yalnızca sınırlı sayıda eylem ve tabloya erişime izin verdiğini unutmayın.

Aşağıdaki dört bağlantı kimlik doğrulaması türü Power Apps için SQL Server ile kullanılabilir:

Kimlik Doğrulaması Türü Power Apps bağlantı yöntemi
Microsoft Entra Tümleşik Açık
SQL Server Kimlik Doğrulaması Örtülü / Güvenli Örtülü
Windows Kimlik Doğrulaması Örtülü / Güvenli Örtülü
Windows Kimlik Doğrulaması (paylaşılmayan) Açık

Örtülü bağlantı paylaşımı riskleri

Tüm yeni uygulamalar otomatik olarak yeni güvenli örtülü bağlantıları kullanır. Ancak, eski "örtülü bağlantıları" kullanan uygulamalarla hem uygulama hem de bağlantıları son kullanıcılara dağıtılır, bu, son kullanıcıların bu bağlantıları temel alan yeni uygulamalar yazabileceği anlamına gelir.

Yazar güvenli örtülü bağlantılar kullanıyorsa hiçbir bağlantı paylaşılmaz ve hiçbir son kullanıcı bağlantı nesnesini almaz. Bu, son kullanıcı yazarın yeni bir uygulama oluşturmak için bir bağlantıyı yeniden kullanma riskini ortadan kaldırır. Bunun yerine, uygulama, uygulamayı göz önünde bulunduran ve yalnızca ilgili uygulama ile iletişim kuran bir proxy bağlantısı ile çalışır. Proxy bağlantısı, sınırlı eylemlere (oluşturma, okuma, güncelleştirme, silme) ve uygulamada uygulama yayımlandığında tanımlanan belirli tablolara erişime izin verir. Bu nedenle son kullanıcıya yalnızca yetkili eylemler ve erişim izni verilir.

Eski tarz basit örtülü bağlantı aslında son kullanıcıya bir bağlantı nesnesi dağıtır. Örneğin, kullanıcıların görmesini istemediğiniz verileri filtreleyen bir uygulama oluşturdunuz. Ancak filtre uygulanmış veriler veritabanında bulunuyor. Ancak, son kullanıcıların belirli verileri görmemesini sağlamak için yapılandırdığınız filtreyi temel alıyorsunuz.

Aynı şekilde eski tarz basit örtülü bağlantılarda, uygulamayı dağıttıktan sonra son kullanıcılar oluşturdukları yeni uygulamalarda uygulamanızla dağıtılan bağlantıyı kullanabilir. Yeni uygulamalarda, kullanıcılar uygulamanızda filtrelemiş olduğunuz verileri görebilir. Yeni güvenli örtülü bağlantıları kullanmak önemlidir.

Önemli

Eski tarz örtülü olarak paylaşılmış bir bağlantı son kullanıcılara dağıtıldığında, paylaştığınız uygulamaya yerleştirmiş olabileceğiniz kısıtlamalar (filtreler veya salt okunur erişim gibi) artık son kullanıcıların oluşturduğu yeni uygulamalar için geçerli değildir. Son kullanıcılar, örtülü olarak paylaşılan bağlantı kapsamında kimlik doğrulamanın izin verdiği tüm haklara sahip olur. Bu nedenle bir uygulamayı güvenli örtülü bağlantıları kullanacak şekilde dönüştürdüğünüzde uygulamanızla paylaştığınız bağlantıları ayrıca iptal etmeniz gerekir. Yöneticiler, COE araç seti ile dolaylı olarak paylaşılan bağlantılara sahip uygulamaların raporunu alabilirler.

İstemci ve sunucu güvenliği

Filtreleme veya güvenliği sağlamaya yönelik diğer istemci tarafı işlemlerle verilerin güvenliğinin sağlandığından emin olamazsınız. Verilerin güvenli bir şekilde filtrelenmesini gerektiren uygulamalar, hem kullanıcı tanımlamanın hem de filtrelemenin sunucu tarafında yapılmasını sağlamalıdır.

Kullanıcı kimliği ve güvenlik söz konusu olduğunda, uygulama içinde tasarlanan filtrelere güvenmek yerine Microsoft Entra ID gibi hizmetleri kullanın. Bu yapılandırma, sunucu tarafı filtrelerinin beklendiği gibi çalışmasını sağlar.

Aşağıdaki çizimler, uygulamalardaki güvenlik düzenlerinin istemci tarafı ve sunucu tarafı güvenlik modelleri arasında nasıl farklılıklar gösterdiğini açıklamaktadır.

Bir uygulamadaki istemci tarafı güvenlik düzeni.

İstemci güvenlik uygulaması düzeninde [1] kullanıcı yalnızca istemci tarafında uygulamanın kimliğini doğrular. Ardından, [2] uygulama hizmetin bilgilerini ister ve [3] hizmet, yalnızca veri isteğine bağlı olarak bilgileri geri gönderir.

Bir uygulamadaki sunucu tarafı güvenlik düzeni.

Sunucu tarafı güvenlik deseninde, [1] kullanıcı ilk olarak hizmette kimliğini doğrular ve böylece kullanıcı hizmet tarafından bilinir. Ardından, [2] uygulamadan bir çağrı yapıldığında, hizmet [3] verileri uygun şekilde filtrelemek için geçerli kullanıcının bilinen kimliğini kullanır ve [4] verileri döndürür.

Yukarıda açıklanan örtük departmanda paylaşma senaryoları bu iki düzenin birleşimidir. Kullanıcının Microsoft Entra kimlik bilgilerini kullanarak Power Apps hizmetinde oturum açması gerekir. Bu davranış, sunucu güvenliği uygulama düzenidir. Kullanıcı, hizmette Microsoft Entra kimliğni kullanarak bilinir. Böylece, uygulama Power Apps'in resmi olarak uygulamayı paylaştığı kullanıcılarla sınırlıdır.

Ancak, SQL Server'a yönelik örtülü olarak paylaşılan bağlantı istemci güvenlik uygulaması düzenidir. SQL Server, yalnızca belirli bir kullanıcı adının ve parolasının kullanıldığını bilir. Örneğin, istemci tarafı filtreler, aynı kullanıcı adı ve parolayı kullanan yeni bir uygulamayla atlanabilir.

Sunucu tarafındaki verileri güvenli bir şekilde filtreleyebilmek için, SQL Server'da satırlar için satır düzey güvenliği gibi yerleşik güvenlik özelliklerini kullanın ve belirli kullanıcıların belirli nesnelerle ilgili izinlerini reddedin. Bu yaklaşım, sunucudaki verilere filtre uygulamak için Microsoft Entra kullanıcı kimliğini kullanır.

Bazı mevcut kurumsal hizmetler, Microsoft Dataverse'tekine çok benzer şekilde kullanıcı kimliğinin kurumsal veri katmanında yakalandığı bir yaklaşım kullanır. Bu durumda, kurumsal katman SQL Server'ın satır düzeyi güvenliğini ve doğrudan reddetme özelliklerini kullanabilir veya kullanmayabilir. Kullanmıyorsa güvenlik, genellikle saklı yordamlar veya görünümler kullanılarak sağlanır.

Kurumsal katman (sunucu tarafındaki), SQL Server sorumlusu olarak saklı yordamı çağırmak ve verileri filtrelemek için bilinen bir kullanıcı Microsoft Entra kimliği kullanır. Ancak Power Apps, şu anda saklı yordamlara bağlanmamaktadır. Kurumsal katman, SQL Server sorumlusu olarak Microsoft Entra kimliğini kullanan bir görünümü de çağırabilir. Bu durumda, verilerin sunucu tarafında filtrelenmesi için görünümlere bağlanırken Power Apps'i kullanın. Kullanıcılara yalnızca görünümleri göstermek güncelleştirmeler için Power Automate akışlarını gerektirebilir.

Ayrıca bkz.

Tuval uygulamaları için bağlayıcılara genel bakış