Share via


Uygulamanızda kimlik doğrulaması ve yetkilendirme

Güvenlik, modern web uygulamaları için kritik öneme sahiptir. Akıcı Çerçeve, web uygulaması mimarinizin bir parçası olarak güvenliği sağlamak için önemli bir altyapı parçasıdır. Akıcı Çerçeve katmanlı bir mimaridir ve kimlik doğrulamasıyla ilgili kavramlar bağlandığı Fluid hizmetine göre uygulanır. Bu, tüm Akıcı hizmetler genelinde yaygın kimlik doğrulama temaları olsa da, ayrıntıların ve özelliklerin her hizmet için farklı olacağı anlamına gelir.

Azure Fluid Relay hizmeti

Oluşturduğunuz her Azure Fluid Relay hizmeti kiracısına bir kiracı kimliği ve kendi benzersiz kiracı gizli anahtarı atanır.

Gizli anahtar, paylaşılan bir gizli dizidir. Uygulamanız/hizmetiniz bunu bilir ve Azure Fluid Relay hizmeti de bunu bilir. Kiracı gizli anahtarı kiracınıza benzersiz olarak bağlı olduğundan, azure fluid relay hizmetine isteklerin kiracının yetkili bir kullanıcısından geldiğini belirten istek garantilerini imzalamak için bu anahtarı kullanın.

Gizli anahtar, Azure Fluid Relay hizmetinin isteklerin uygulamanızdan veya hizmetinizden geldiğini nasıl bildiğidir. Azure Fluid Relay hizmeti istekleri yapan uygulamanın uygulama olduğuna güvenebildiğinden, gönderdiğiniz verilere güvenebileceğinden bu kritik öneme sahiptir. Bu nedenle gizli dizinin güvenli bir şekilde işlenmesi de önemlidir.

Dikkat

Gizli diziye erişimi olan herkes Azure Fluid Relay hizmetiyle iletişim kurarken uygulamanızın kimliğine bürünebilir.

JSON Web Belirteçleri ve Azure Fluid Relay hizmeti

Azure Fluid Relay, gizli anahtarınızla imzalanan verileri kodlamak ve doğrulamak için JSON Web Belirteçlerini (JWT) kullanır. JSON Web Belirteçleri, haklar ve izinler hakkında ek bilgiler içerebilen imzalı bir JSON bitidir.

Dekont

JWT'lerin özellikleri bu makalenin kapsamı dışındadır. JWT standardı hakkında daha fazla bilgi için bkz . JSON Web Belirteçlerine Giriş.

Kimlik doğrulamasının ayrıntıları Akıcı hizmetler arasında farklılık gösterse de, çeşitli değerlerin her zaman mevcut olması gerekir.

  • containerId Fluid hizmeti, çağıran kapsayıcıya karşılık gelen hizmeti belirlemek için kapsayıcı kimliğine ihtiyaç duyar. Not: JWT bu alanı documentId olarak çağırır, ancak Fluid hizmeti bu alanda bir kapsayıcı kimliği bekler.
  • tenantId: Azure Fluid Relay hizmeti, isteğinizin kimliğini doğrulamak için kullanacağı paylaşılan gizli diziyi almak için kiracı kimliğini kullanır.
  • kapsamlar: Kapsamlar, çağıran kapsayıcının izinlerini tanımlar. Kapsamlar alanının içeriği esnektir ve kendi özel izinlerinizi oluşturmanıza olanak sağlar.
{
  "alg": "HS256",
  "typ": "JWT"
}.{
  "documentId": "azureFluidDocumentId",
  "scopes": [ "doc:read", "doc:write", "summary:write" ],
  "user": {
    "name": "TestUser",
    "id": "Test-Id-123"
  },
  "iat": 1599098963,
  "exp": 1599098963,
  "tenantId": "AzureFluidTenantId",
  "ver": "1.0"
}.[Signature]

Kullanıcının modu, bağlantının okuma veya okuma/yazma modunda olup olmadığını gösterir. Bu, içindeki AzureAudiencealanından görüntülenebilirconnections. Belirteç kapsamı izinleri sunucusuz Azure İşlevinizde işlevinin generateToken altında güncelleştirilebilir.

const token = generateToken(
  tenantId,
  documentId,
  key,
  scopes ?? [ "Token Scope" ],
  user
);

Kapsayıcı davranışı ve modlarıyla birlikte belirteç kapsamları aşağıdaki gibidir:

Belirteç Kapsamı Belge davranışım hedef kitle belgesi davranışı
DocRead Belgeyi okuma ve belgeye yazma. Belgede yapılan değişiklikler diğer hedef kitle belgelerine yansıtılmaz.
Mod: Okuma
Belgeyi okuma ve belgeye yazma. Değişiklikler diğer hedef kitle belgelerine yansıtılmaz.
Mod: Yazma
DocWrite Belgeyi okuma ve belgeye yazma. Yapılan değişiklikler diğer tüm hedef kitle belgelerine yansıtılır.
Mod: Yazma
Belgeyi okuma ve belgeye yazma. Yapılan değişiklikler diğer tüm hedef kitle belgelerine yansıtılır.
Mod: Yazma
DocRead, DocWrite Belgeyi okuma ve belgeye yazma. Yapılan değişiklikler diğer tüm hedef kitle belgelerine yansıtılır.
Mod: Yazma
Belgeyi okuma ve belgeye yazma. Yapılan değişiklikler diğer tüm hedef kitle belgelerine yansıtılır.
Mod: Yazma

Dekont

Belirtecin kullanıcı bilgilerini de içerdiğini unutmayın (yukarıdaki 7-9 arası satırlara bakın). Bunu, hedef kitle özelliğini kullanarak Akıcı kod için otomatik olarak kullanılabilen kullanıcı bilgilerini artırmak için kullanabilirsiniz. Daha fazla bilgi için bkz . Belirteçlere özel veri ekleme.

Belirteç sağlayıcısı

Azure Fluid Relay'e yapılan her istek geçerli bir JWT ile imzalanmalıdır. Akıcı, bu belirteçleri oluşturma ve belirteç sağlayıcılarına imzalama sorumluluğunu devreder.

Belirteç sağlayıcısı, Azure Fluid Relay hizmetine istekte bulunmak için kullanılan belirteçleri @fluidframework/azure-client oluşturmak ve imzalamaktan sorumludur. Kendi güvenli belirteç sağlayıcısı uygulamanızı sağlamanız gerekir. Ancak, Fluid kiracı gizli dizinizi kabul eden bir InsecureTokenProvider sağlar, ardından yerel olarak imzalı bir belirteç oluşturur ve döndürür. Bu belirteç sağlayıcısı test için kullanışlıdır, ancak üretim senaryolarında kullanılamaz.

Güvenli bir sunucusuz belirteç sağlayıcısı

Güvenli belirteç sağlayıcısı oluşturmanın bir seçeneği sunucusuz bir Azure İşlevi oluşturmak ve bunu belirteç sağlayıcısı olarak kullanıma açmaktır. Bu, kiracı gizli anahtarını güvenli bir sunucuda depolamanıza olanak tanır. Uygulamanız daha sonra belirteçleri yerel olarak imzalamak yerine oluşturmak için Azure İşlevi'ni InsecureTokenProvider çağırır. Daha fazla bilgi için bkz . Nasıl yapılır: Azure İşlevi ile TokenProvider Yazma.

Kullanıcı kimlik doğrulamasını Akıcı hizmet kimlik doğrulamasına Bağlan

Akıcı hizmetler, belirli bir kullanıcıya bağlı olmayan paylaşılan bir istemci gizli dizisini kullanarak gelen çağrıların kimliğini doğrular. Kullanıcı kimlik doğrulaması, Akıcı hizmetinizin ayrıntılarına göre eklenebilir.

Kullanıcı kimlik doğrulaması için basit bir seçenek, belirteç sağlayıcınız olarak bir Azure İşlevi kullanmak ve belirteç alma koşulu olarak kullanıcı kimlik doğrulamasını zorunlu kılmaktır. Bir uygulama İşlevi çağırmaya çalışırsa, kimlik doğrulama sisteminizde kimlik doğrulaması yapılmadığı sürece başarısız olur. Örneğin Microsoft Entra Id kullanıyorsanız, Azure İşleviniz için bir Microsoft Entra uygulaması oluşturabilir ve bunu kuruluşunuzun kimlik doğrulama sistemine bağlayabilirsiniz.

Bu durumda kullanıcı, Azure İşlevinizi çağırmak için kullanılacak bir belirteç elde edeceğiniz Microsoft Entra Id kullanarak uygulamanızda oturum açar. Azure İşlevi'nin kendisi aynı şekilde davranır, ancak artık yalnızca Microsoft Entra Kimliği ile kimlik doğrulaması yapmış kişiler tarafından erişilebilir.

Azure İşlevi artık geçerli bir belirteç almak için giriş noktanız olduğundan, yalnızca İşlevde doğru şekilde kimlik doğrulaması yapmış kullanıcılar bu belirteci istemci uygulamasından Azure Fluid Relay hizmetine sağlayabilir. Bu iki adımlı yaklaşım, Azure Fluid Relay hizmetiyle birlikte kendi özel kimlik doğrulama işleminizi kullanmanıza olanak tanır.

Ayrıca bkz.