{"id":1150,"date":"2010-07-12T17:11:50","date_gmt":"2010-07-13T01:11:50","guid":{"rendered":"\/?p=1150"},"modified":"2015-01-04T16:40:19","modified_gmt":"2015-01-04T22:40:19","slug":"southworks-seeds-open-source-claims-transformer","status":"publish","type":"post","link":"https:\/\/www.identityblog.com\/?p=1150","title":{"rendered":"Southworks seeds open source claims transformer"},"content":{"rendered":"<p>Reading <a href=\"http:\/\/blogs.southworks.net\/mwoloski\/2010\/07\/12\/consumer-identities-for-business-transactions\/\" class=\"broken_link\">Matias Woloski&#39;s blog<\/a> I\u00a0see that\u00a0<a href=\"http:\/\/www.southworks.net\/Home.aspx\" class=\"broken_link\">Southworks <\/a>has put\u00a0its\u00a0work bridging\u00a0OpenID and WS-Federation into an <a href=\"http:\/\/github.com\/southworks\/protocol-bridge-claims-provider\">open source project<\/a>\u00a0(download <a href=\"http:\/\/github.com\/southworks\/protocol-bridge-claims-provider\/downloads\" class=\"broken_link\">here<\/a>).\u00a0\u00a0\u00a0 This is a great move.\u00a0 He also shows some screen shots that give a good\u00a0feel for\u00a0what was involved in the Medtronics proof of concept described <a href=\"\/?p=1146\">here<\/a>.\u00a0\u00a0Matias writes:<\/p>\n<p style=\"padding-left: 30px;\">A year ago I <a href=\"http:\/\/blogs.southworks.net\/mwoloski\/2009\/07\/14\/openid-ws-fed-protocol-transition-sts\/\" class=\"broken_link\"><span style=\"color: #196297;\">wrote a blog post<\/span><\/a> about how to use the Windows Identity Foundation with OpenID. Essentially the idea was writing an STS that can speak both protocol WS-Federation and OpenID, so your apps can keep using WIF as the claims framework, no matter what your Identity Provider is. WS-Fed == enterprise, OpenID == consumer\u2026<\/p>\n<p style=\"padding-left: 30px;\">Fast forward to May this year, I\u2019m happy to disclose the proof of concept we did with the Microsoft Federated Identity Interop group (represented by <a href=\"http:\/\/self-issued.info\"><span style=\"color: #196297;\">Mike Jones<\/span><\/a>), <a href=\"http:\/\/www.medtronic.com\"><span style=\"color: #196297;\">Medtronic<\/span><\/a> and <a href=\"https:\/\/www.paypal-ids.com\/\" class=\"broken_link\"><span style=\"color: #196297;\">PayPal<\/span><\/a>. The official <a href=\"http:\/\/blogs.msdn.com\/b\/interoperability\/archive\/2010\/07\/09\/identity-mash-up-federation-demo-using-multiple-protocols-openid-and-ws-federation.aspx\" class=\"broken_link\"><span style=\"color: #196297;\">post from the Interoperability blog<\/span><\/a> includes a <a href=\"http:\/\/channel9.msdn.com\/posts\/jccim\/Identity-Mash-up-Federation-Demo-using-Multiple-Protocols-OpenID-and-WS-Federation\/\"><span style=\"color: #196297;\">video about it<\/span><\/a> and Mike also did a <a href=\"http:\/\/self-issued.info\/?p=325\"><span style=\"color: #196297;\">great write up<\/span><\/a>&#8230;<\/p>\n<p style=\"padding-left: 30px;\">The business scenario brought by Medtronic is around an insulin pump trial. In order to register to this trial, users would login with PayPal, which represents a trusted authority for authentication and attributes like shipping address and age for them. Below are some screenshots of the actual proof of concept:<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"\/wp-content\/images\/2010\/07\/insulinpump.png\"><img loading=\"lazy\" src=\"\/wp-content\/images\/2010\/07\/insulinpump.png\" border=\"0\" alt=\"image\" width=\"507\" height=\"285\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"\/wp-content\/images\/2010\/07\/medtronic.png\"><img loading=\"lazy\" src=\"\/wp-content\/images\/2010\/07\/medtronic.png\" border=\"0\" alt=\"image\" width=\"507\" height=\"309\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"\/wp-content\/images\/2010\/07\/logon.png\"><img loading=\"lazy\" src=\"\/wp-content\/images\/2010\/07\/logon.png\" border=\"0\" alt=\"image\" width=\"511\" height=\"363\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"\/wp-content\/images\/2010\/07\/opeinid.png\"><img loading=\"lazy\" src=\"\/wp-content\/images\/2010\/07\/openid.png\" border=\"0\" alt=\"image\" width=\"506\" height=\"360\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">While there are different ways to solve a scenario like this, we chose to create an intermediary Security Token Service that understands the OpenID protocol (used by PayPal), WS-Federation protocol and SAML 1.1 tokens (used by Medtronic apps). This intermediary STS enables SSO between the web applications, avoiding re-authentication with the original identity provider (PayPal).<\/p>\n<p style=\"padding-left: 30px;\">Also, we had to integrate with a PHP web application and we chose the <a href=\"http:\/\/rnd.feide.no\/simplesamlphp\" class=\"broken_link\">simpleSAMLphp<\/a> library. We had to adjust here and there to make it compatible with ADFS\/WIF implementation of the standards. No big changes though.<\/p>\n<p style=\"padding-left: 30px;\">We decided together with the Microsoft Federated Identity Interop team to make the implementation of this STS available under open source using the <a href=\"http:\/\/opensource.org\/licenses\/ms-pl.html\">Microsoft Public License<\/a>.<\/p>\n<p style=\"padding-left: 30px;\">And not only that but also we went a step further and added a multi-protocol capability to this claims provider. This is, it\u2019s extensible to support not only OpenID but also OAuth and even a proprietary authentication method like Windows Live.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"\/wp-content\/images\/2010\/07\/yahoo.png\"><img loading=\"lazy\" src=\"\/wp-content\/images\/2010\/07\/yahoo.png\" border=\"0\" alt=\"image\" width=\"508\" height=\"227\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\">\u00a0<\/p>\n<p style=\"padding-left: 30px;\">\u00a0<\/p>\n<p style=\"padding-left: 30px;\"><em><strong>DISCLAIMER<\/strong>: <em>This code is provided as-is under the <\/em><a href=\"http:\/\/www.opensource.org\/licenses\/ms-pl.html\"><em>Ms-PL license<\/em><\/a><em>. It has not been tested in production environments and it has not gone through threats and countermeasures analysis. Use it at your own risk.<\/em><\/em><em><\/em><\/p>\n<p style=\"padding-left: 30px;\"><strong>Project Home page<br \/>\n<\/strong><a href=\"http:\/\/github.com\/southworks\/protocol-bridge-claims-provider\">http:\/\/github.com\/southworks\/protocol-bridge-claims-provider<\/a><\/p>\n<p style=\"padding-left: 30px;\"><strong>Download<br \/>\n<\/strong><a href=\"http:\/\/github.com\/southworks\/protocol-bridge-claims-provider\/downloads\" class=\"broken_link\">http:\/\/github.com\/southworks\/protocol-bridge-claims-provider\/downloads<\/a><\/p>\n<p style=\"padding-left: 30px;\"><strong>Docs<br \/>\n<\/strong><a href=\"http:\/\/southworks.github.com\/protocol-bridge-claims-provider\" class=\"broken_link\">http:\/\/southworks.github.com\/protocol-bridge-claims-provider<\/a><\/p>\n<p style=\"padding-left: 30px;\">If you are interested and would like to contribute, ping us through the github page, twitter @woloski or email matias at southworks dot net<\/p>\n<p style=\"padding-left: 30px;\">This endeavor could not have been possible without the professionalism of my colleagues: <a href=\"http:\/\/blogs.southworks.net\/jpgarcia\" class=\"broken_link\">Juan Pablo Garcia<\/a> who was the main developer behind this project, <a href=\"http:\/\/blogs.southworks.net\/tosborn\" class=\"broken_link\">Tim Osborn<\/a> for his support and focus on the customer, <a href=\"http:\/\/blogs.southworks.net\/jhalife\" class=\"broken_link\">Johnny Halife<\/a> who helped shaping out the demo in the early stages in HTML :), and <a href=\"http:\/\/blogs.southworks.net\/siacomuzzi\" class=\"broken_link\">Sebastian Iacomuzzi<\/a> that helped us with the packaging. Finally, Madhu Lakshmikanthan who was key in the project management to align stakeholders and Mike who was crucial in making all this happen.<\/p>\n<p style=\"padding-left: 30px;\">Happy federation!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With Southworks&#8217; STS your apps can keep using WIF as the claims framework, no matter what your Identity Provider is. WS-Fed == enterprise, OpenID == consumer\u2026<\/p>\n","protected":false},"author":68,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[37,19,10,8,22,80],"tags":[],"_links":{"self":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/1150"}],"collection":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1150"}],"version-history":[{"count":2,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/1150\/revisions"}],"predecessor-version":[{"id":1406,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/1150\/revisions\/1406"}],"wp:attachment":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}