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