Log out with ADFS do not set session expire #727
Replies: 6 comments
-
From the SAML Core spec: "If a SAML responder deems a request to be invalid according to SAML syntax or processing rules, then if it responds, it MUST return a SAML response message with a element with the value urn:oasis:names:tc:SAML:2.0:status:Requester (...)". So it sounds like ADFS does not like your Logout Request. |
Beta Was this translation helpful? Give feedback.
-
Could anyone help me out. I am able to logout of the application and also the IDP but on logout it is not redirecting to the entry point of the application. Do we need to configure any metadata in the IDP?? This is my SAML strategy object These are my routes specific to Logout Functionality
}); I am able to logout of the application and also the IDP but on logout it should be redirected to the entry point of the application. Do we need to configure any metadata in the IDP?? |
Beta Was this translation helpful? Give feedback.
-
Hi All I hope it is what you are looking for. |
Beta Was this translation helpful? Give feedback.
-
Hi All, |
Beta Was this translation helpful? Give feedback.
-
@hoainam1989 Can you tell what setting was missing on ADFS server at that time, i'm also facing same issue. |
Beta Was this translation helpful? Give feedback.
-
@hoainam1989 I am using Windows Server 2012 for ADFS. We have integrated ADFS in Android Application. But we don't know how to logout? What settings we need to do? Also, I think there is no communication happening within API as relying party and ADFS Server. API is just parsing the BEARER and checking expiry time. I tried this by changing some characters from bearer and called the API and I surprised It is working? How? Please help to get rid of this. |
Beta Was this translation helpful? Give feedback.
-
Hello,
Could anyone can help me?. Currently i am integrating my app with ADFS on windows server 2016.
When a user call a API to logout on API server. Server redirects to ADFS like below.
-I also pointed the param logoutUrl on setting passport-saml to https://adfsserver.com/adfs/ls/
var samlStrategy = passport._strategy('saml');
samlStrategy.logout(req, function(err, requestUrl) {
//redirect to the IdP with the encrypted SAML logout request
res.redirect(requestUrl);
});
I set up Logout End Point on ADFS to point to https://myapi.com/callback/logout to redirect to my api when user logout successfully on ADFS.
The problem is :
ADFS return to my callback API with status
samlp:Status<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester"/>
then i redirect user to login page. but when user login again. they do not redirected to ADFS login page because ADFS did not set cookies expire on session when user logout.So ADFS know that user.
I debug on ADFS log and see error like bellow
System.ArgumentNullException: Value cannot be null.
Parameter name: collection
at System.Collections.Generic.List
1..ctor(IEnumerable
1 collection)at Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.ProcessSignOut(SamlContext samlContext, String redirectUri, List`1 iFrameUris, Boolean partialLogout)
Beta Was this translation helpful? Give feedback.
All reactions