Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запросы, отправленные в Ретранслятор Azure Fluid Relay, должны содержать JWT в заголовке авторизации. Этот маркер должен быть подписан ключом клиента.
Претензии
JWTs (веб-токены JSON) разделены на три части:
- Заголовок . Предоставляет сведения о том, как проверить маркер, включая сведения о типе токена и о том, как он был подписан.
- Полезные данные — содержит все важные данные о пользователе или приложении, пытающемся вызвать службу.
- Подпись содержит исходный материал для проверки маркера.
Каждая часть разделена точкой (.) и отдельно закодирована Base64.
Утверждения заголовка
Требование | Формат | Описание |
---|---|---|
ALG | струна | Алгоритм, используемый для подписи маркера. Например, "HS256" |
Тип | струна | Это значение всегда должно быть "JWT". |
Утверждения полезных данных
Требование | Формат | Описание |
---|---|---|
documentId | струна | Создано службой Azure Fluid Relay (AFR). Определяет документ, для которого создается маркер. |
охват | строка[] | Определяет разрешения, необходимые клиенту в документе или сводке. Для каждой области можно определить разрешения, которые нужно предоставить клиенту. |
идентификатор арендатора | струна | Определяет клиент. |
Пользователь | JSON (JavaScript Object Notation) | Определяет пользователей приложения. Его можно использовать приложением для идентификации пользователей с помощью аудитории Fluid Framework.{ id: <user_id>, name: <user_name>, additionalDetails: { email: <email>, date: <date>, }, } |
иат | число, метка времени UNIX | Значение Issued At (Выпущено в) показывает, когда произошла проверка подлинности этого маркера. |
эксп | число, метка времени UNIX | Утверждение "exp" (срок действия) определяет время окончания срока действия или после чего JWT не должен приниматься для обработки. Время существования токена не может превышать 1 час. |
вер | струна | Обозначает номер версии маркера доступа. Должно быть 1.0 . |
JTI | струна | Необязательно. Утверждение jti (идентификатор маркера JWT) предоставляет уникальный идентификатор JWT. Значение идентификатора должно быть назначено таким образом, чтобы гарантировать, что существует незначимая вероятность того, что одно и то же значение будет случайно назначено другому объекту данных. Мы рекомендуем использовать это утверждение, чтобы избежать сбоев из-за использования одного маркера для создания документов. |
Пример маркера Ретранслятора Жидкости Azure
{
"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?
Пакет npm jsonwebtoken можно использовать и подписать маркер с помощью этого метода.
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>");
}