diff --git a/src/IdentityServer/Services/Default/DefaultSessionCoordinationService.cs b/src/IdentityServer/Services/Default/DefaultSessionCoordinationService.cs index c33f66478..c2eea6a0d 100644 --- a/src/IdentityServer/Services/Default/DefaultSessionCoordinationService.cs +++ b/src/IdentityServer/Services/Default/DefaultSessionCoordinationService.cs @@ -119,7 +119,8 @@ await BackChannelLogoutService.SendLogoutNotificationsAsync(new LogoutNotificati { SubjectId = session.SubjectId, SessionId = session.SessionId, - ClientIds = session.ClientIds + ClientIds = session.ClientIds, + Issuer = session.Issuer, }); } } diff --git a/src/IdentityServer/Stores/Default/ServerSideTicketStore.cs b/src/IdentityServer/Stores/Default/ServerSideTicketStore.cs index a65ecc9d7..156180764 100644 --- a/src/IdentityServer/Stores/Default/ServerSideTicketStore.cs +++ b/src/IdentityServer/Stores/Default/ServerSideTicketStore.cs @@ -145,6 +145,11 @@ public async Task RenewAsync(string key, AuthenticationTicket ticket) session.SessionId = sid; } + if (ticket.GetIssuer() == null) + { + // when issuing a new cookie on top of an existing cookie, the AuthenticationTicket passed above is new (and not the prior one loaded from the ticket store) + ticket.SetIssuer(await _issuerNameService.GetCurrentAsync()); + } session.Renewed = ticket.GetIssued(); session.Expires = ticket.GetExpiration(); session.DisplayName = name;