Azure Fluid Relay-tokencontract

Aanvragen die naar Azure Fluid Relay worden verzonden, moeten een JWT-token in de autorisatieheader bevatten. Dit token moet worden ondertekend door de tenantsleutel.

Claims

JWT's (JSON-webtokens) worden onderverdeeld in drie delen:

  • Header : bevat informatie over het valideren van het token, inclusief informatie over het type token en hoe het is ondertekend.
  • Payload : bevat alle belangrijke gegevens over de gebruiker of app die uw service probeert aan te roepen.
  • Handtekening : is de grondstof die wordt gebruikt om het token te valideren.

Elk onderdeel wordt gescheiden door een punt (.) en afzonderlijk gecodeerd met Base64.

Headerclaims

Claim Indeling Omschrijving
Alg tekenreeks Het algoritme dat wordt gebruikt om het token te ondertekenen. Bijvoorbeeld 'HS256'
typt u tekenreeks Deze waarde moet altijd 'JWT' zijn.

Nettoladingclaims

Claim Indeling Omschrijving
documentId tekenreeks Gegenereerd door de AFR-service (Azure Fluid Relay). Identificeert het document waarvoor het token wordt gegenereerd.
bereik tekenreeks[] Identificeert de machtigingen die de client nodig heeft voor het document of de samenvatting. Voor elk bereik kunt u de machtigingen definiƫren die u aan de client wilt geven.
tenantId tekenreeks Identificeert de tenant.
Gebruiker JSON Identificeert gebruikers van uw toepassing. Het kan door uw toepassing worden gebruikt om uw gebruikers te identificeren met behulp van de Vloeiend Framework Doelgroep.
{ id: <user_id>, name: <user_name>, additionalDetails: { email: <email>, date: <date>, }, }
iat getal, een UNIX-tijdstempel 'Uitgegeven op' geeft aan wanneer de verificatie voor dit token heeft plaatsgevonden.
exp getal, een UNIX-tijdstempel De claim exp (verlooptijd) geeft de verlooptijd aan of waarna de JWT niet mag worden geaccepteerd voor verwerking. De levensduur van het token mag niet langer zijn dan 1 uur.
ver tekenreeks Geeft de versie van het toegangstoken aan. Moet zijn 1.0 .
jti tekenreeks Optioneel. De "jti" (JWT ID)-claim biedt een unieke id voor de JWT. De id-waarde MOET worden toegewezen op een manier die ervoor zorgt dat er een verwaarloosbare kans is dat dezelfde waarde per ongeluk wordt toegewezen aan een ander gegevensobject. We raden u aan deze claim te gebruiken om fouten te voorkomen vanwege het gebruik van hetzelfde token voor het maken van documenten.

Een voorbeeld van een Azure Fluid Relay-token

{ 
  "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] 

Hoe kunt u een Azure Fluid Relay-token genereren?

U kunt het npm-pakket jsonwebtoken gebruiken en uw token ondertekenen met behulp van deze methode.

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>");
    }