Azure Fluid Relay tokenszerződés

Az Azure Fluid Relaynek küldött kérelmeknek tartalmazniuk kell egy JWT-jogkivonatot az engedélyezési fejlécben. Ezt a jogkivonatot a bérlőkulcsnak alá kell írnia.

Igénylések

A JWT-k (JSON webes jogkivonatok) három részre vannak felosztva:

  • Fejléc – Információkat tartalmaz a jogkivonat érvényesítéséről, beleértve a jogkivonat típusával és aláírásának módjával kapcsolatos információkat.
  • Hasznos adat – A szolgáltatás hívását megkísérlő felhasználó vagy alkalmazás összes fontos adatát tartalmazza.
  • Aláírás – A jogkivonat érvényesítéséhez használt nyersanyag.

Minden rész egy ponttal (.) és külön Base64 kódolással van elválasztva.

Fejléc jogcímek

Jogcím Format Leírás
Alg sztring A jogkivonat aláírásához használt algoritmus. Például: "HS256"
Typ sztring Ennek az értéknek mindig "JWT"-nek kell lennie.

Hasznos adatok jogcíme

Jogcím Format Leírás
documentId sztring Az Azure Fluid Relay (AFR) szolgáltatás hozza létre. Azonosítja azt a dokumentumot, amelyhez a jogkivonat létre lett hozva.
scope sztring[] Azonosítja az ügyfél által a dokumentumban vagy az összegzésben szükséges engedélyeket. Minden hatókörhöz megadhatja az ügyfélnek adni kívánt engedélyeket.
tenantId sztring Azonosítja a bérlőt.
user JSON Azonosítja az alkalmazás felhasználóit. Az alkalmazás a Dinamikus keretrendszer Célközönség használatával azonosíthatja a felhasználókat.
{ id: <user_id>, name: <user_name>, additionalDetails: { email: <email>, date: <date>, }, }
iat szám, UNIX-időbélyeg A "Kiállítva" azt jelzi, hogy mikor történt a jogkivonat hitelesítése.
exp szám, UNIX-időbélyeg Az "exp" (lejárati idő) jogcím azonosítja azt a lejárati időt, amelyen a JWT nem fogadható el feldolgozásra. A jogkivonat élettartama legfeljebb 1 óra lehet.
Ver sztring A hozzáférési jogkivonat verzióját jelzi. Kell lennie 1.0 .
Jti sztring Opcionális. A "jti" (JWT ID) jogcím egyedi azonosítót biztosít a JWT-hez. Az azonosító értékét úgy kell hozzárendelni, hogy az elhanyagolható valószínűséggel ugyanazt az értéket véletlenül egy másik adatobjektumhoz rendelje hozzá. Javasoljuk, hogy használja ezt az jogcímet, hogy elkerülje a dokumentumok létrehozásához használt azonos jogkivonat miatti hibákat.

Minta Azure Fluid Relay-jogkivonat

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

Hogyan hozhat létre Azure Fluid Relay-jogkivonatot?

Ezzel a módszerrel használhatja a jsonwebtoken npm-csomagot, és aláírhatja a jogkivonatot.

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