Asp.net core Saml2:我从IDP获得了注销事件,但是哪个用户已经注销了?

Asp.net core Saml2:我从IDP获得了注销事件,但是哪个用户已经注销了?,asp.net-core,saml-2.0,sustainsys-saml2,single-logout,Asp.net Core,Saml 2.0,Sustainsys Saml2,Single Logout,我正在实现一个允许用户使用SAML2 IDP登录的SP。 我正在使用ASP.NET核心和Sustainsys Saml2包实现SP。 我们正在使用OWIN中间件。登录效果很好。 我已经添加了一个证书,整个ting作为azure网站运行。 我的问题是在IDP发送注销事件时检测哪个用户已注销 我们在登录时获得SessionIndex和LogoutNameIdentifier,但在注销时却没有 使用浏览器中的SAML2跟踪器,我看到我从IDP收到一个注销包,如下所示: <?xml version

我正在实现一个允许用户使用SAML2 IDP登录的SP。 我正在使用ASP.NET核心和Sustainsys Saml2包实现SP。 我们正在使用OWIN中间件。登录效果很好。 我已经添加了一个证书,整个ting作为azure网站运行。 我的问题是在IDP发送注销事件时检测哪个用户已注销

我们在登录时获得SessionIndex和LogoutNameIdentifier,但在注销时却没有

使用浏览器中的SAML2跟踪器,我看到我从IDP收到一个注销包,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<saml2p:LogoutRequest 
    xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" 
    Destination="https://example.com/Saml2/Logout" 
    ID="_0498f5109d6c09a3de3dc5a7ee6ef34bdd" 
    IssueInstant="2020-10-11T15:01:46.408Z" Version="2.0">
  <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
       https://my.testidp.com/samlv2/idp/metadata/0/30
  </saml2:Issuer>
  <saml2:NameID 
       xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" 
       Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">
           _041d2ec8046088eed3567c8761a925b48e
  </saml2:NameID>
</saml2p:LogoutRequest>
commandResult的json序列化输出没有给我太多的信息:

{"HttpStatusCode":303,
"Cacheability":1,
"Location":"https://my.testidp.com/samlv2/idp/sloresp/0/30?mgvhostparam=0
     &SAMLResponse=jJHLasMwEEX3hf6D0d6W%2FGws7JTSbAL....kd8%2BK%2Fh7%2B8gcAAP%2F%2FAwA%3D
     &igAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256 
     &Signature=nmZApcBYHbsnNruq...duQA%3D",
"Principal":null,
"SessionNotOnOrAfter":null,
"Content":null,"ContentType":null,
"RelayData":null,"TerminateLocalSession":true,
"SetCookieName":null,
"SetCookieSecureFlag":false,
"RelayState":null,
"RequestState":null,
"ClearCookieName":null,
"HandledResult":false,
"Headers":{}}
  • 这是从IDP检测注销事件的正确方法吗
  • 我如何解释命令结果
  • 最重要的是,如何找到已从IDP注销的用户

当NameID格式
urn:oasis:names:tc:SAML:2.0:NameID格式:transient用于执行SSO时,您需要在SP端找到NameID值

{"HttpStatusCode":303,
"Cacheability":1,
"Location":"https://my.testidp.com/samlv2/idp/sloresp/0/30?mgvhostparam=0
     &SAMLResponse=jJHLasMwEEX3hf6D0d6W%2FGws7JTSbAL....kd8%2BK%2Fh7%2B8gcAAP%2F%2FAwA%3D
     &igAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256 
     &Signature=nmZApcBYHbsnNruq...duQA%3D",
"Principal":null,
"SessionNotOnOrAfter":null,
"Content":null,"ContentType":null,
"RelayData":null,"TerminateLocalSession":true,
"SetCookieName":null,
"SetCookieSecureFlag":false,
"RelayState":null,
"RequestState":null,
"ClearCookieName":null,
"HandledResult":false,
"Headers":{}}