<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.uabgrid.uab.edu/w/index.php?action=history&amp;feed=atom&amp;title=Web_Authentication</id>
	<title>Web Authentication - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://docs.uabgrid.uab.edu/w/index.php?action=history&amp;feed=atom&amp;title=Web_Authentication"/>
	<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=Web_Authentication&amp;action=history"/>
	<updated>2026-05-10T11:48:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=Web_Authentication&amp;diff=3442&amp;oldid=prev</id>
		<title>Jpr@uab.edu: Add scenario description when no web sso session exists</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=Web_Authentication&amp;diff=3442&amp;oldid=prev"/>
		<updated>2011-11-02T16:59:42Z</updated>

		<summary type="html">&lt;p&gt;Add scenario description when no web sso session exists&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:59, 2 November 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are two redirect scenarios that occur when accessing the galaxy web app.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are two redirect scenarios that occur when accessing the galaxy web app.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The user has an active web sso session in their browser but no active session with the web app&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# The user has an active web sso session in their browser but no active session with the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;galaxy &lt;/ins&gt;web app&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The browser accesses the galaxy web app via an HTTP GET will result in a connection to '''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/&amp;lt;/nowiki&amp;gt;''' (the desired target).  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The browser accesses the galaxy web app via an HTTP GET will result in a connection to '''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/&amp;lt;/nowiki&amp;gt;''' (the desired target).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The lack of an application session cookie is detected (by mod_shib) causing an HTTP 302 response redirect to the client browser that points to the login service at '''&amp;lt;nowiki&amp;gt;https://vo.uabgrid.uab.edu/shibboleth-idp/SSO&amp;lt;/nowiki&amp;gt;'''.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The lack of an application session cookie is detected (by mod_shib) causing an HTTP 302 response redirect to the client browser that points to the login service at '''&amp;lt;nowiki&amp;gt;https://vo.uabgrid.uab.edu/shibboleth-idp/SSO&amp;lt;/nowiki&amp;gt;'''.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The browser does an HTTP GET to vo where the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;shibboleth &lt;/del&gt;IdP &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;service &lt;/del&gt;recognizes the existing web sso session. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The &lt;/del&gt;shibboleth IdP creates a new authn handle for the galaxy app and returns a special page to the browser (a 200 response). &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;The response page contains a bit of javascript which causes the browser to POST this authn handle to galaxy app.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The browser does an HTTP GET to vo where the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mod_shib service protecting the &lt;/ins&gt;IdP recognizes the existing web sso session. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It let's the request pass through to the &lt;/ins&gt;shibboleth IdP &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which &lt;/ins&gt;creates a new authn handle for the galaxy app and returns a special page to the browser (a 200 response).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;## &lt;/ins&gt;The response page contains a bit of javascript which causes the browser to POST this authn handle to galaxy app.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The user browser POSTS to '''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/Shibboleth.SSO/SAML/POST&amp;lt;/nowiki&amp;gt;'''.  The POST is processed by mod_shib and causes the shib daemon on the galaxy host to perform a callback to '''&amp;lt;nowiki&amp;gt;https://vo.uabgrid.uab.edu:8443/shibboleth-idp/AA&amp;lt;/nowiki&amp;gt;'''. This is a SAML packet exchange with vo, where the authn handle is passed back to vo.uabgrid which verifies it an releases attributes to the application (user, email, and groups in our config).  The application session is populated with the returned attributes and an associated app session cookie is set in the browser with a final redirect back to the original application URL&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The user browser POSTS to '''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/Shibboleth.SSO/SAML/POST&amp;lt;/nowiki&amp;gt;'''.  The POST is processed by mod_shib and causes the shib daemon on the galaxy host to perform a callback to '''&amp;lt;nowiki&amp;gt;https://vo.uabgrid.uab.edu:8443/shibboleth-idp/AA&amp;lt;/nowiki&amp;gt;'''. This is a SAML packet exchange with vo, where the authn handle is passed back to vo.uabgrid which verifies it an releases attributes to the application (user, email, and groups in our config).  The application session is populated with the returned attributes and an associated app session cookie is set in the browser with a final redirect back to the original application URL&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The user browser repeats the original GET request ('''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/&amp;lt;/nowiki&amp;gt;''') but now has a valid app session cookie in the browser.  Now the request is processed and if the user has the correct identity or other attributes they are allowed into the galaxy web app. At this point, all subsequent requests to the web app process the app session cookie from the browser directly without any further redirects (until the app session expires).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;## The user browser repeats the original GET request ('''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/&amp;lt;/nowiki&amp;gt;''') but now has a valid app session cookie in the browser.  Now the request is processed and if the user has the correct identity or other attributes they are allowed into the galaxy web app. At this point, all subsequent requests to the web app process the app session cookie from the browser directly without any further redirects (until the app session expires).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# The user does not have an active web sso session in their browser and no active session with the galaxy web app.  This repeats the sequence of steps in scenario 1, but this time without the active web sso session the user browser is directed to further authenticate at step 1.3 above. The following steps describe the additional redirects that occur at this point:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;## The browser does an HTTP GET to vo where the mod_shib service detects the lack of a web sso session.  Mod_shib responds with a redirect to the browser, initiating authentication.  At this point, authentication is provided by UABgrid's participation as an application in InCommon.  So the user browser is redirected to the discovery service that let's the end user select which identity they want to use for login.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;## The browser redirects to '''&amp;lt;nowiki&gt;https://apps.uabgrid.uab.edu/login&amp;lt;/nowiki&gt;''' which prompts the user with choices for an identity provider to use for this session.  (It is possible that the user is automatically redirected to a pre-selected identity provider if they have this setting cached in their browser.)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;## Selecting an identity provider redirects the user to that identity provider.  In cases where this is UAB, the browser is redirected to '''&amp;lt;nowiki&gt;https://shib.dpo.uab.edu/shibboleth-idp/SSO&amp;lt;/nowiki&gt;'''.  This triggers a repeat of steps 1.3 and 1.4, except now with UAB's Shibboleth and Web SSO infrastructure.  That is, shib.dpo.uab.edu determines if an active session exists and if not redirects the user to '''&amp;lt;nowiki&gt;https://cas.dpo.uab.edu&amp;lt;/nowiki&gt;''' where they are prompted for their BlazerID and password.  After successful authentication, they are redirected to back to shib.dpo.uab.edu, which sets up an app handle for UABgrid and directs the browser to POST the response to '''&amp;lt;nowiki&gt;https://vo.uabgrid.uab.edu/Shibboleth.SSO/SAML/POST&amp;lt;/nowiki&gt;'''.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;## After the POST we return to the sequence in scenario 1, completing the same actions as in steps 1.4 through 1.6.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jpr@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=Web_Authentication&amp;diff=3441&amp;oldid=prev</id>
		<title>Jpr@uab.edu: Describe initial sequence of redirects during login</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=Web_Authentication&amp;diff=3441&amp;oldid=prev"/>
		<updated>2011-11-02T16:33:12Z</updated>

		<summary type="html">&lt;p&gt;Describe initial sequence of redirects during login&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Web apps in the UABgrid environment rely on a web single sign-on for their authentication. This framework uses the Shibboleth software components to implement a SAML attribute exchange to allow fine-grain access control decisions for web apps. &lt;br /&gt;
&lt;br /&gt;
We'll use the galaxy web app as an example in these scenarios.&lt;br /&gt;
&lt;br /&gt;
There are two redirect scenarios that occur when accessing the galaxy web app. &lt;br /&gt;
# The user has an active web sso session in their browser but no active session with the web app.&lt;br /&gt;
## The browser accesses the galaxy web app via an HTTP GET will result in a connection to '''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/&amp;lt;/nowiki&amp;gt;''' (the desired target). &lt;br /&gt;
## The lack of an application session cookie is detected (by mod_shib) causing an HTTP 302 response redirect to the client browser that points to the login service at '''&amp;lt;nowiki&amp;gt;https://vo.uabgrid.uab.edu/shibboleth-idp/SSO&amp;lt;/nowiki&amp;gt;'''. &lt;br /&gt;
## The browser does an HTTP GET to vo where the shibboleth IdP service recognizes the existing web sso session. The shibboleth IdP creates a new authn handle for the galaxy app and returns a special page to the browser (a 200 response).  The response page contains a bit of javascript which causes the browser to POST this authn handle to galaxy app.  &lt;br /&gt;
## The user browser POSTS to '''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/Shibboleth.SSO/SAML/POST&amp;lt;/nowiki&amp;gt;'''.  The POST is processed by mod_shib and causes the shib daemon on the galaxy host to perform a callback to '''&amp;lt;nowiki&amp;gt;https://vo.uabgrid.uab.edu:8443/shibboleth-idp/AA&amp;lt;/nowiki&amp;gt;'''. This is a SAML packet exchange with vo, where the authn handle is passed back to vo.uabgrid which verifies it an releases attributes to the application (user, email, and groups in our config).  The application session is populated with the returned attributes and an associated app session cookie is set in the browser with a final redirect back to the original application URL&lt;br /&gt;
## The user browser repeats the original GET request ('''&amp;lt;nowiki&amp;gt;https://galaxy.uabgrid.uab.edu/&amp;lt;/nowiki&amp;gt;''') but now has a valid app session cookie in the browser.  Now the request is processed and if the user has the correct identity or other attributes they are allowed into the galaxy web app. At this point, all subsequent requests to the web app process the app session cookie from the browser directly without any further redirects (until the app session expires).&lt;/div&gt;</summary>
		<author><name>Jpr@uab.edu</name></author>
	</entry>
</feed>