如何在登录AWS后使SSO访问令牌失效(实现AWS登出)?
AWS IAM Identity Center(SSO)登出的官方实现方案(.NET 6)
官方失效令牌的两种方式
不需要手动删除本地缓存文件,AWS SDK for .NET提供了官方的会话失效与缓存清理方法:
调用AWS SSO Logout API失效云端会话
使用AmazonSSOOAuth2Client调用Logout接口,会直接使AWS端的SSO会话失效,同时SDK会自动同步清理本地缓存的令牌。示例代码:using Amazon.SSO.OAuth2; using Amazon.Runtime; // 初始化SSO OAuth2客户端 var ssoClient = new AmazonSSOOAuth2Client(new AnonymousAWSCredentials()); // 构造登出请求,需传入登录时获取的SessionId和ClientId var logoutRequest = new LogoutRequest { SessionId = "当前SSO会话ID", ClientId = "SSO客户端ID" // 可从登录流程或配置中获取 }; await ssoClient.LogoutAsync(logoutRequest);主动清理本地SDK缓存
如果需要确保本地缓存完全清除,可使用SSOCredentialsCache类的Clear方法:using Amazon.Runtime.Credentials; SSOCredentialsCache.Instance.Clear();
补充说明
- 手动删除
{UserProfile}.aws\sso\cache目录下的文件虽然有效,但官方API方式更可靠——不仅清理本地缓存,还会在AWS端失效会话,避免残留的有效令牌被误用。 - 调用
LogoutAPI需要配置sso:Logout权限,确保应用对应的IAM身份具备该权限。 - AWS SDK for .NET SSO文档核心内容:文档涵盖SSO认证的全流程,包括临时凭证获取、参数配置等,登出相关的关键操作集中在
AmazonSSOOAuth2Client的Logout方法与SSOCredentialsCache缓存管理类。
内容的提问来源于stack exchange,提问作者brendan davton
相关产品推荐
相关产品推荐

