Skip to content

ThinkingHome.DeviceModel.Remoting.ProxyServer

ThinkingHome.DeviceModel.Remoting.ProxyServer

HostToken Class

JWT прокси. Прокси — единственный эмитент, один симметричный ключ (HS256). Стейт не хранится: токены самодостаточны, отзыв — сменой ключа. Аудитории: connector (коннектор), authcode (OAuth-код), alice (access token). Во всех токенах — hostId в claim.

csharp
public static class HostToken

Inheritance System.Object → HostToken

Fields

HostToken.AliceAudience Field

Аудитория access-токена Алисы.

csharp
public const string AliceAudience = "alice";

Field Value

System.String

HostToken.AliceScheme Field

Имя схемы аутентификации запросов Алисы.

csharp
public const string AliceScheme = "Alice";

Field Value

System.String

HostToken.CodeAudience Field

Аудитория одноразового OAuth-кода.

csharp
public const string CodeAudience = "authcode";

Field Value

System.String

HostToken.ConnectorAudience Field

Аудитория токена коннектора (постоянный доступ дома к хабу).

csharp
public const string ConnectorAudience = "connector";

Field Value

System.String

HostToken.ConnectorScheme Field

Имя схемы аутентификации коннектора.

csharp
public const string ConnectorScheme = "Connector";

Field Value

System.String

HostToken.HostIdClaim Field

Имя claim'а с идентификатором домашнего хоста.

csharp
public const string HostIdClaim = "hostId";

Field Value

System.String

HostToken.Issuer Field

Издатель всех токенов прокси.

csharp
public const string Issuer = "thinkinghome-proxy";

Field Value

System.String

Methods

HostToken.AliceValidation(string) Method

Параметры валидации access-токена Алисы (только подпись и аудитория).

csharp
public static Microsoft.IdentityModel.Tokens.TokenValidationParameters AliceValidation(string signingKey);

Parameters

signingKey System.String

Returns

Microsoft.IdentityModel.Tokens.TokenValidationParameters

HostToken.ConnectorValidation(string) Method

Параметры валидации токена коннектора (только подпись и аудитория).

csharp
public static Microsoft.IdentityModel.Tokens.TokenValidationParameters ConnectorValidation(string signingKey);

Parameters

signingKey System.String

Returns

Microsoft.IdentityModel.Tokens.TokenValidationParameters

HostToken.IssueAccessToken(string, string) Method

Выпустить access-токен Алисы для hostId.

csharp
public static string IssueAccessToken(string signingKey, string hostId);

Parameters

signingKey System.String

hostId System.String

Returns

System.String

HostToken.IssueCode(string, string) Method

Выпустить одноразовый OAuth-код для hostId (TTL 1 минута).

csharp
public static string IssueCode(string signingKey, string hostId);

Parameters

signingKey System.String

hostId System.String

Returns

System.String

HostToken.IssueConnectorToken(string, string) Method

Выпустить токен коннектора для hostId (lifetime при проверке не смотрится).

csharp
public static string IssueConnectorToken(string signingKey, string hostId);

Parameters

signingKey System.String

hostId System.String

Returns

System.String

HostToken.TryReadCodeHostIdAsync(string, string) Method

Проверить OAuth-код и вернуть hostId (или null, если код невалиден/просрочен).

csharp
public static System.Threading.Tasks.Task<string?> TryReadCodeHostIdAsync(string signingKey, string code);

Parameters

signingKey System.String

code System.String

Returns

System.Threading.Tasks.Task<System.String>

Опубликовано под лицензией MIT