Azure Fluid Relay belirteç sözleşmesi
Azure Fluid Relay'e gönderilen istekler yetkilendirme üst bilgisinde bir JWT belirteci içermelidir. Bu belirteç kiracı anahtarı tarafından imzalanmalıdır.
Talepler
JWT'ler (JSON Web Belirteçleri) üç bölüme ayrılır:
- Üst bilgi - Belirtecin türü ve nasıl imzalandığı hakkında bilgiler de dahil olmak üzere belirtecin nasıl doğrulandığı hakkında bilgi sağlar.
- Payload - Hizmetinizi çağırmaya çalışan kullanıcı veya uygulama hakkındaki tüm önemli verileri içerir.
- İmza - Belirteci doğrulamak için kullanılan ham maddedir.
Her bölüm bir nokta (.) ile ayrılır ve ayrı olarak Base64 kodlanır.
Üst bilgi talepleri
Talep | Biçimlendir | Tanım |
---|---|---|
alg | Dize | Belirteci imzalamak için kullanılan algoritma. Örneğin, "HS256" |
Genel | Dize | Bu değer her zaman "JWT" olmalıdır. |
Yük talepleri
Örnek bir Azure Fluid Relay belirteci
{
"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]
Azure Fluid Relay belirtecini nasıl oluşturabilirsiniz?
Bu yöntemi kullanarak jsonwebtoken npm paketini kullanabilir ve belirtecinizi imzalayabilirsiniz.
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>");
}