Azure Fluid Relay-tokenkontrakt
Begäranden som skickas till Azure Fluid Relay ska innehålla en JWT-token i auktoriseringshuvudet. Den här token ska signeras av klientnyckeln.
Anspråk
JWTs (JSON Web Tokens) delas upp i tre delar:
- Rubrik – Innehåller information om hur du verifierar token, inklusive information om typen av token och hur den signerades.
- Payload – innehåller alla viktiga data om den användare eller app som försöker anropa din tjänst.
- Signatur – används råmaterialet för att verifiera token.
Varje del avgränsas med en punkt (.) och är separat Base64-kodad.
Rubrikanspråk
Anspråk | Format | Description |
---|---|---|
Alg | sträng | Algoritmen som används för att signera token. Till exempel "HS256" |
skriv | sträng | Det här värdet ska alltid vara "JWT". |
Nyttolastanspråk
En Azure Fluid Relay-exempeltoken
{
"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]
Hur kan du generera en Azure Fluid Relay-token?
Du kan använda npm-paketet jsonwebtoken och signera din token med den här metoden.
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>");
}