Hey all,

I've been working on a flow diagram, similar to what exists on http://weblogin.org/overview.html, to outline the new work flow of Cosign 3.0.x. I'm looking for any feedback y'all may have -- anything I can be more specific on? Anything in the description or diagram that is just plain wrong?

The 3.0.x flow diagram is available at: http://people.brandeis.edu/~jwest/cosign/cosign-flow.png

And the instructions for the associated steps are as follows:

  1. User visits the protected service, https://service/securepage, in a web browser.
  2. The Cosign filter, such as a module to Apache or IIS, recognizes the visitor has not yet logged in through Cosign because no service cookie was sent. Their browser is instructed to visit the login site, referred to as Weblogin in the above diagram.
  3. Browser follows the redirection instruction sent from step B.
  4. Browser requests Cosign login page from the Weblogin server and supplies GET variables of:
    • Factors: Authentication factors the protected service has specified it requires (CosignRequireFactor).
    • Service: Name of the protected service according to Cosign (CosignService).
    • Source: URL of the service redirecting the browser to Weblogin site.
  5. Browser is presented with HTML of the login page. Additionally, a cookie is set to uniquely identify the user. This is referred to as the login cookie.
  6. User fills out the login form with their credentials, such as username and password, and POST's results to the Weblogin CGI.
  7. The Cosign CGI, hosted on the Weblogin server, receives the results of the HTTP POST.
    • The CGI retrieves the Kerberos V ticket from the configured KDC for the principal (user).
    • If the ticket is retrieved, it is stored in the /var/cosign/ticket directory.
    • The CGI then contacts the Cosign daemon running locally (tcp/6663) and initiates, for each factor:
      • CHECK command.
      • LOGIN command.
    • The CGI then initiates the REGISTER command, to register the user's login cookie with the service.
  8. User is then redirected to the Cosign validation URL configured for that service. Generally, this is https://service/cosign/valid.
  9. Browser, as per the Location redirect in the above step, navigates to the validation URL
  10. If the user visits the appropriate validation URL, the Cosign filter (e.g. mod_cosign) intercepts this call. It initiates an out of band communication with the cosignd (tcp/6663 by default) on the Cosign server to CHECK the service cookie and retrieve additional information, such as the user's username.
  11. If the service cookie is valid, cosignd returns OK.
  12. mod_cosign records the service cookie and associated information about the user in /var/cosign/daemon.
  13. mod_cosign redirects the user to the original protected page they tried to access. Additionally, it sets the service cookie within the user's browser.
  14. The browser requests the original protected page and passes the service cookie along with the request.
  15. The web server responds with the HTML of the protected resource.

The above instructions assume that:
  • 'cosigndb' directory is set to "/var/cosign/daemon"
  • 'cosignticketcache' directory is set to "/var/cosign/ticket"

Any questions, just let me know.

Thanks.
-- 
Joshua West
Senior Systems Engineer
Brandeis University
http://www.brandeis.edu



------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Cosign-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cosign-discuss

Reply via email to