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