ThinkingHome.DeviceModel.Remoting.ProxyServer
ThinkingHome.DeviceModel.Remoting.ProxyServer
HostToken Class
JWT прокси. Прокси — единственный эмитент, один симметричный ключ (HS256). Стейт не хранится: токены самодостаточны, отзыв — сменой ключа. Аудитории: connector (коннектор), authcode (OAuth-код), alice (access token). Во всех токенах — hostId в claim.
public static class HostTokenInheritance System.Object → HostToken
Fields
HostToken.AliceAudience Field
Аудитория access-токена Алисы.
public const string AliceAudience = "alice";Field Value
HostToken.AliceScheme Field
Имя схемы аутентификации запросов Алисы.
public const string AliceScheme = "Alice";Field Value
HostToken.CodeAudience Field
Аудитория одноразового OAuth-кода.
public const string CodeAudience = "authcode";Field Value
HostToken.ConnectorAudience Field
Аудитория токена коннектора (постоянный доступ дома к хабу).
public const string ConnectorAudience = "connector";Field Value
HostToken.ConnectorScheme Field
Имя схемы аутентификации коннектора.
public const string ConnectorScheme = "Connector";Field Value
HostToken.HostIdClaim Field
Имя claim'а с идентификатором домашнего хоста.
public const string HostIdClaim = "hostId";Field Value
HostToken.Issuer Field
Издатель всех токенов прокси.
public const string Issuer = "thinkinghome-proxy";Field Value
Methods
HostToken.AliceValidation(string) Method
Параметры валидации access-токена Алисы (только подпись и аудитория).
public static Microsoft.IdentityModel.Tokens.TokenValidationParameters AliceValidation(string signingKey);Parameters
signingKey System.String
Returns
Microsoft.IdentityModel.Tokens.TokenValidationParameters
HostToken.ConnectorValidation(string) Method
Параметры валидации токена коннектора (только подпись и аудитория).
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.
public static string IssueAccessToken(string signingKey, string hostId);Parameters
signingKey System.String
hostId System.String
Returns
HostToken.IssueCode(string, string) Method
Выпустить одноразовый OAuth-код для hostId (TTL 1 минута).
public static string IssueCode(string signingKey, string hostId);Parameters
signingKey System.String
hostId System.String
Returns
HostToken.IssueConnectorToken(string, string) Method
Выпустить токен коннектора для hostId (lifetime при проверке не смотрится).
public static string IssueConnectorToken(string signingKey, string hostId);Parameters
signingKey System.String
hostId System.String
Returns
HostToken.TryReadCodeHostIdAsync(string, string) Method
Проверить OAuth-код и вернуть hostId (или null, если код невалиден/просрочен).
public static System.Threading.Tasks.Task<string?> TryReadCodeHostIdAsync(string signingKey, string code);Parameters
signingKey System.String
code System.String