{"id":429,"date":"2008-05-04T11:55:50","date_gmt":"2008-05-04T10:55:50","guid":{"rendered":"http:\/\/wp.devco.net\/?p=429"},"modified":"2012-01-24T11:00:24","modified_gmt":"2012-01-24T10:00:24","slug":"designing_a_single_sign_on_system_-_part_3","status":"publish","type":"post","link":"https:\/\/www.devco.net\/archives\/2008\/05\/04\/designing_a_single_sign_on_system_-_part_3.php","title":{"rendered":"Designing a Single Sign On system – part 3"},"content":{"rendered":"
This is the 3rd part of my ongoing series of posts about designing a Today we look a bit more about the general information flow between browser, target web site and the SSO Server. We will use the term Secure Site for the target site, lets say a corporate intranet.<\/p>\n The following diagram shows the flow of information, the information flows via the browser using redirects etc.<\/p>\n First a few words on the requierd bits of information before this exchange can happen.<\/p>\n Now on to the actual information flow, this demonstrates the flow for a first time visit of an unauthenticated user, future visits will be exactly like any cookie based auth system where the user will not interact with the SSO server at all:<\/p>\n I think we’ll keep it at that for today, in the next part I’ll explain some of the choices made in designing this protocol and what security exploits it tries to prevent (replay attacks), what it is vulnerable too (man in the middle attacks) and how to mitigate those risks.<\/p>\n","protected":false},"excerpt":{"rendered":" This is the 3rd part of my ongoing series of posts about designing a simple Single Signon System for PHP, you should read part 1 and 2 first. Today we look a bit more about the general information flow between browser, target web site and the SSO Server. We will use the term Secure Site […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","footnotes":""},"categories":[7],"tags":[121,42],"_links":{"self":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts\/429"}],"collection":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/comments?post=429"}],"version-history":[{"count":2,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts\/429\/revisions"}],"predecessor-version":[{"id":2410,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts\/429\/revisions\/2410"}],"wp:attachment":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/media?parent=429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/categories?post=429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/tags?post=429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
\nsimple Single Signon System for PHP, you should read part 1<\/a> and 2<\/a> first.<\/p>\n\n
\nSecure Site has a pre-shared key (PSK) that the SSO Server assigns,
\nthis key gets hardcoded in the Secure Site and kept private, it never
\ngets passed between the parties during normal authentication requests.<\/li>\n
\nthat is simply a number that uniquely identifies it to the SSO Server.
\nThis too gets assigned by the SSO Server and does not change for the
\nlife time of the site.<\/li>\n
\nSSO server knows what domain name a site is in, the SSO Server will use
\nthis to validate auth requests and generate redirects based on this
\ndomain name only.<\/li>\n<\/ul>\n\n