无法使用EndSession API从身份服务注销

Can#39;t sign out from Identity Service using endsession API(无法使用EndSession API从身份服务注销)
本文介绍了无法使用EndSession API从身份服务注销的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在执行Get To

获取https://localhost:44301/connect/endsession?id_token_hint=eyJhbGciO...GzHCPw

如the docs for EndSession endpoint所示。

它似乎起作用了(在某种程度上),因为我在重定向到的方法中找到了断点。

[HttpGet("logout")]
public async Task<IActionResult> LogOut(
    [FromQuery] string id_token_hint,
    [FromQuery] string post_logout_redirect_uri,
    [FromQuery] string session,
    [FromQuery] string logoutId)
{ 
  LogoutRequest context = await InteractionService
    .GetLogoutContextAsync(logoutId);
  ...
}
在这里,我在logoutId中获得一个值(除非我跳过传递身份令牌,结果是Inull),而其他变量没有设置,保持为null。起初,我很高兴看到context不是null。然而,我很快就知道它设置得很差,尽管我遵循了stuff that work。

我可以看到客户的名称和ID(似乎是正确的)。但是,除数组Parameters外,其他都是null,它不包含任何元素。

我已确保传入标识令牌,而不是访问令牌。我还尝试了使用所有参数described in the docs的完整版(尝试了在我的配置和其他配置中提到的各种重定向URL)。然而,同样的(错误)行为也随之而来。

获取https://localhost:44301/connect/endsession
?ID_TOKEN_HINT=eyJhbGciO...GzHCPw
&;post_logout_redirect_uri=https://get_the_duck.off
&;会话=1337

由于我获得了突破性的命中,并收到了交互服务可解析的logoutId值,我觉得它连接正确(这是意料之中的,因为安全性如预期的那样工作)。然而,我的应用程序似乎是一个跟踪者,可以说就是不让他们走。我怀疑,有一些微小的细节是医生没有提到的(或者在我不理解的表述中模糊了)。(谷歌搜索没有给出我认为相关的任何信息。)

努力的证明(连同一堆关于安全的博客,而不是专门针对注销的)。

  • Old .NET, no answer。
  • Wrong platform
  • Already tried, also not .NET Core
  • Unrelated, even if it sound like so
  • Waaay too old

推荐答案

如果你查看官方的quickstart,你可以看到他们建议使用首字母Get的组合,然后是Post,中间有一个可选的提示。最后一个Post方法implementation通过调用

await HttpContext.SignOutAsync();

这篇关于无法使用EndSession API从身份服务注销的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)