Bug 1459153

Summary: Do not send Max-Age in ipa_session cookie to avoid breaking older clients
Product: Red Hat Enterprise Linux 7 Reporter: Petr Vobornik <pvoborni>
Component: ipaAssignee: IPA Maintainers <ipa-maint>
Status: CLOSED ERRATA QA Contact: Mohammad Rizwan <myusuf>
Severity: unspecified Docs Contact: Aneta Šteflová Petrová <apetrova>
Priority: unspecified    
Version: 7.4CC: enewland, ipa-maint, ipa-qe, ksiddiqu, mbasti, mkolaja, pvoborni, pvomacka, rcritten, slaznick, ssorce, tscherf
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ipa-4.5.0-16.el7 Doc Type: Enhancement
Doc Text:
The default session expiration period in the IdM web UI has changed Previously, when the user logged in to the Identity Management (IdM) web UI using a user name and password, the web UI automatically logged the user out after 20 minutes of inactivity. With this update, the default session length is the same as the expiration period of the Kerberos ticket obtained during the login operation. To change the default session length, use the "kinit_lifetime" option in the `/etc/ipa/default.conf` file, and restart the *httpd* service.
Story Points: ---
Clone Of: 1434845 Environment:
Last Closed: 2017-08-01 09:51:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
console logs none

Description Petr Vobornik 2017-06-06 12:27:17 UTC
Cloned from upstream: https://pagure.io/freeipa/issue/6774 and clone of bug 1434845

Affected clients/servers:
- all RHEL 6.x IPA clients which uses IPA CLI tool `ipa` against 7.4 server.

Functional impact:
- minor performance regression (session re-negotiation). Command itself is executed as expected. Except following error/"gibberish" is shown to user of the `ipa` tool:

"""
 ipa: ERROR: unable to parse cookie header 'ipa_session=MagBearerToken=MiIjMRJWMAl1%2bazkGlIRns2iysA7wxc%2bpSenQtZEMKXSsRAXEcnw2wHEyzOyh8RHgIm5K7YvX1k1tPotRM2ztegX4ODAmOe26%2fP4FLu68AupejDBNmNIENfasrNhUiPowugkkRXBOD%2b%2bsGFFMUZ%2bP7AYPHoW3bE3uN4ftRQwftE11EFTti4a9fVwB4SLKiuU&expiry=1489670819868611;Max-Age=1800;path=/ipa;httponly;secure;': unsupported operand type(s) for +: 'NoneType' and 'datetime.timedelta'
"""

It can negatively affect automation tools which uses the CLI. But mainly it will be UX and reputation issue.

FreeIPA 4.5.0(1) server sends Set-Cookie header with Max-Age string, that is set by SessionMaxAge directive in httpd configuration. This is part of the header which older clients cannot parse. Older clients understand the cookie with expiration expressed this way: Expires=time_when_cookie_expires. In this format: Expires=Mon, 05 Jun 2017 17:10:07 GMT;

This bug is a proposal to work around the issue and change server in a way that it won't send Max-Age string.

Comment 1 Petr Vobornik 2017-06-07 07:34:57 UTC
Upstream ticket:
https://pagure.io/freeipa/issue/7001

Comment 5 Mohammad Rizwan 2017-06-12 07:37:30 UTC
Created attachment 1286963 [details]
console logs

Comment 6 Mohammad Rizwan 2017-06-12 08:55:52 UTC
Verified using following builds.

version:
Server  ipa-server-4.5.0-16.el7.x86_64

Client  ipa-client-4.2.0-15.el7.x86_64

Comment 9 errata-xmlrpc 2017-08-01 09:51:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2304