Azure Fluid Relay belirteç sözleşmesi

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

Talepler

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

Talep Biçimlendir Tanım
alg Dize Belirteci imzalamak için kullanılan algoritma. Örneğin, "HS256"
Genel Dize Bu değer her zaman "JWT" olmalıdır.

Yük talepleri

Talep Biçimlendir Tanım
Documentıd Dize Azure Fluid Relay (AFR) hizmeti tarafından oluşturulur. Belirtecin oluşturulduğu belgeyi tanımlar.
kapsam string[] belge veya özette istemcinin gerektirdiği izinleri tanımlar. Her kapsam için istemciye vermek istediğiniz izinleri tanımlayabilirsiniz.
tenantId Dize Kiracıyı tanımlar.
kullanıcı JSON Uygulamanızın kullanıcılarını tanımlar. Akıcı Çerçeve Hedef Kitlesi'ni kullanarak kullanıcılarınızı tanımlamak için uygulamanız tarafından 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 Dize Erişim belirtecinin sürümünü gösterir. olmalıdır 1.0 .
jti Dize isteğe bağlı. "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>");
    }