<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> I assume this isn't a rare scenario (user agent<br></span><span class="gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> requests a SP-protected resource via HTTP POST without a valid SP session),<br></span><span class="gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> what are the possible solutions to this?</span><span class="gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></span><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">That isn't your problem, your user agent isn't one, it has no UI, it's just a Javascript thread. If it did, you could turn on the post preservation feature and it would more or less work, at least with Apache. With no UI capability, that simply can't be relied upon.</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">The only solution I know of is to take over the session management so timeouts aren't possible.</span></blockquote><div><br></div><div>Another way to do it is for the application itself to keep track of its state, which is how we do it in our AngularJS apps.  Well, we do a few things.  (We're not dealing with a Shibboleth SP, but we still have to deal with the situation where a session -- in our case, an OAuth access token -- has expired.)</div><div><br></div><div>1. Track when the session is going to expire and let the user know with some warning.  I'm largely assuming a single SP here.  You should be able to either service this in the code for the application, allow the application to poll for the remaining lifetime, or more bluntly track.  If a user comes toward the end of the session lifetime, warn the user.</div><div><br></div><div>2. Checkpoint a user's operations before going to the server.  If you've collected input from the user, store it in local storage and retrieve it when the app returns.  Your application can either pick up where it left off, complete the operation -- might not want to do this if there's no good way to confirm the user hasn't changed -- or ask the user if they want to recover.</div><div><br></div><div>We use #2 in several applications.</div><div><br></div><div>(Our model would be more like what Scott suggests, where you don't use the SP for session management.  Use lazy sessions, and your backend can signal back to the AngularJS app when the session has expired and it's time to do re-auth.)</div><div><br></div><div>Greg</div><div> </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 13, 2018 at 3:53 PM, Cantor, Scott <span dir="ltr"><<a href="mailto:cantor.2@osu.edu" target="_blank">cantor.2@osu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> Scott, thanks. We did hope SP/IdP timeout would be transparent to<br>
> application, but not the case.<br>
<br>
</span>It is, mostly, if your application isn't written with those kinds of tools and the application supports deep linking.<br>
<span class=""><br>
> I assume this isn't a rare scenario (user agent<br>
> requests a SP-protected resource via HTTP POST without a valid SP session),<br>
> what are the possible solutions to this?<br>
<br>
</span>That isn't your problem, your user agent isn't one, it has no UI, it's just a Javascript thread. If it did, you could turn on the post preservation feature and it would more or less work, at least with Apache. With no UI capability, that simply can't be relied upon.<br>
<br>
The only solution I know of is to take over the session management so timeouts aren't possible.<br>
<div class="HOEnZb"><div class="h5"><br>
-- Scott<br>
<br>
--<br>
For Consortium Member technical support, see <a href="https://wiki.shibboleth.net/confluence/x/coFAAg" rel="noreferrer" target="_blank">https://wiki.shibboleth.net/<wbr>confluence/x/coFAAg</a><br>
To unsubscribe from this list send an email to <a href="mailto:users-unsubscribe@shibboleth.net">users-unsubscribe@shibboleth.<wbr>net</a><br>
</div></div></blockquote></div><br></div>