Azure Fluid Relay belirteç sözleşmesi

Azure Fluid Relay'e gönderilen istekler yetkilendirme üst bilgisinde bir JWT içermelidir. Bu belirteç kiracı anahtarı tarafından imzalanmalıdır.

İddialar

JWT'ler (JSON Web Belirteçleri) üç bölüme ayrılır:

  • Üst bilgi - Belirtecin türü ve nasıl imzalandığı hakkında bilgiler de dahil olmak üzere belirtecin nasıl doğrulandığı hakkında bilgi sağlar.
  • Payload - Hizmetinizi çağırmaya çalışan kullanıcı veya uygulama hakkındaki tüm önemli verileri içerir.
  • İmza - Belirteci doğrulamak için kullanılan ham maddedir.

Her bölüm bir nokta (.) ile ayrılır ve ayrı olarak Base64 kodlanır.

Üst bilgi talepleri

İddia Biçim Açıklama
ALG (İngilizce) String Belirteci imzalamak için kullanılan algoritma. Örneğin, "HS256"
Typ String Bu değer her zaman "JWT" olmalıdır.

Yük talepleri

İddia Biçim Açıklama
belge Kimliği String Azure Fluid Relay (AFR) hizmeti tarafından oluşturulur. Belirtecin oluşturulduğu belgeyi tanımlar.
kapsam dize[] belge veya özette istemcinin gerektirdiği izinleri tanımlar. Her kapsam için istemciye vermek istediğiniz izinleri tanımlayabilirsiniz.
kiracıKimliği String Kiracıyı tanımlar.
kullanıcı JSON veri formatı Uygulamanızın kullanıcılarını tanımlar. Uygulamanız tarafından Fluid Framework Hedef Kitlesi kullanılarak kullanıcılarınızı tanımlamak için kullanılabilir.
{ id: <user_id>, name: <user_name>, additionalDetails: { email: <email>, date: <date>, }, }
iat sayı, UNIX zaman damgası "Çıkış Tarihi", bu belirteç için kimlik doğrulamasının ne zaman gerçekleştiğini gösterir.
Exp sayı, UNIX zaman damgası "exp" (süre sonu) talebi, JWT'nin işlenmek üzere kabul edilmemesi gereken son kullanma süresini tanımlar. Belirteç ömrü 1 saatten uzun olamaz.
ver String Erişim belirtecinin sürümünü gösterir. olmalıdır 1.0 .
jti String Opsiyonel. "jti" (JWT ID) talebi, JWT için benzersiz bir tanımlayıcı sağlar. Tanımlayıcı değeri, aynı değerin yanlışlıkla farklı bir veri nesnesine atanma olasılığının göz ardı edilebilir olmasını sağlayacak şekilde atanmalıdır. Belge oluşturma için aynı belirtecin kullanımından kaynaklanan hataları önlemek için bu talebi kullanmanızı öneririz.

Örnek bir Azure Fluid Relay belirteci

{ 
  "alg": "HS256",  
  "typ": "JWT" 
}.{ 
  "documentId": "746c4a6f-f778-4970-83cd-9e21bf88326c", 
  "scopes": [ "doc:read", "doc:write", "summary:write" ],   
  "iat": 1599098963,  
  "exp": 1599098963,  
  "tenantId": "AzureFluidTenantId",  
  "ver": "1.0",
  "jti": "d7cd6602-2179-11ec-9621-0242ac130002"
}.[Signature] 

Azure Fluid Relay belirtecini nasıl oluşturabilirsiniz?

Bu yöntemi kullanarak jsonwebtoken npm paketini kullanabilir ve belirtecinizi imzalayabilirsiniz.

export function getSignedToken(
    tenantId: string,
    documentId: string,
    tokenLifetime: number = 60 * 60,
    ver: string = "1.0") {
        jwt.sign(
            {
                documentId, 
                user: {
                    displayName: "displayName", 
                    id: "userId", 
                    name: "userName" 
                }, 
                scopes: ["doc:read", "doc:write", "summary:write"], 
                iat: Math.round((new Date()).getTime() / 1000), 
                exp: Math.round((new Date()).getTime() / 1000) + tokenLifetime, //set the expiry date based on your needs but max-limit is one hour.
                tenantId, 
                ver,
                jti: uuid(), 
            },
            "<tenant_key>");
    }