C# SDK
C# SDK 为受支持的 Sudomimus API 提供强类型 .NET 集成。某个包尚不可用时,请直接使用 Device API 参考等对应接口规范。
| Surface | 包或 module | 发布状态 |
|---|---|---|
| Connect | Sudomimus.Connect | 已发布 4.0.0 |
| Session | Sudomimus.Session | 已发布 4.0.0 |
| Device | — | 暂无包 |
| Native | Sudomimus.Native | 已发布 4.0.0 |
| Token | Sudomimus.Token | 已发布 4.0.0 |
发布状态核验于: .
安装当前集成需要的包:
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 的对应关系。