C# SDK
C# SDK 为 Connect、Session、Native 和 Token surface 发布 .NET 包。Device authorization 当前没有 C# 包;这个流程请直接使用 Device API 参考。
| 包 | 用途 |
|---|---|
Sudomimus.Connect | Connect inquiry 生命周期,以及通过应用元数据验 token。 |
Sudomimus.Session | Refresh、introspection、logout、revoke-all,以及 token store 辅助。 |
Sudomimus.Native | Steam ticket 与 AccessKey direct-issue。 |
Sudomimus.Token | 独立的 token 解析与验证辅助。 |
安装当前集成需要的包:
dotnet add package Sudomimus.Connectdotnet add package Sudomimus.SessionConnect
Section titled “Connect”using Sudomimus.Connect;
var client = new ConnectClient(new ConnectClientOptions{ ClientAuth = new ConnectClientAuthWithKey { ApplicationAnchor = "your-app-anchor", PrivateKeyPem = File.ReadAllText("client-auth.pem"), },});
var inquiry = await client.EstablishAsync(new EstablishRequest{ ApplicationAnchor = "your-app-anchor",});/establish 要求 audience 为 sudomimus-connect 的 client-auth JWT。配置 ConnectClientOptions.ClientAuth 后,SDK 会完成签名;也可以提供自己的 signer。
Sessions
Section titled “Sessions”using Sudomimus.Session;
var session = new RotatingSessionClient( new SessionClient(), new InMemoryTokenStore());
await session.SeedAsync(new TokenPair{ AccessToken = accessToken, RefreshToken = refreshToken,});
var newAccessToken = await session.RefreshAsync();await session.LogoutAsync();RevokeAllAsync 是应用后端操作,需要 audience 为 sudomimus-session 的 client-auth 签名。
Token 验证
Section titled “Token 验证”令牌验证与 Connect 解耦。请从每应用 Session JWK Set GET /applications/{applicationAnchor}/jwks.json 解析 token 的 kid,按 Cache-Control 缓存,并使用 Sudomimus.Token 完成解析与签名验证。Connect /info 只返回本地化应用元数据。
验签后,把 payload sub 作为应用可见用户键,payload sid 作为逻辑会话 id,payload jti 作为 bearer 实例 id。Access token 不携带个人资料;refresh token 不携带用户标识,并额外包含 rotationVersion。当前资料从 Session /userinfo 获取。只做签名验证无法观察后续 logout,因此实时权威决策要使用 Session introspection。
.NET packages源码与包 README。
选择 SDK官方 SDK 与 Sudomimus API 的对应关系。