<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5066603456638955842</id><updated>2012-01-25T18:25:17.284Z</updated><title type='text'>Connecting SOA to the Cloud</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.soatothecloud.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default?start-index=101&amp;max-results=100'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>371</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6429716011323964386</id><published>2012-01-25T18:16:00.002Z</published><updated>2012-01-25T18:25:17.321Z</updated><title type='text'>Scheduling reports on API usage</title><content type='html'>One really neat feature in the Vordel Application Gateway is the ability to schedule reports on API and Web Service usage. You can schedule reports to run on a regular basis, and have the results emailed to the user       in PDF format, just like Google Analytics. These reports include summary values at the top (for example, the number of       requests, SLA breaches, alerts triggered, and unique clients in a specified week) followed by       a table of APIs and Services, and their aggregated usage data (for example, the number of requests       on each API or Web Service).&lt;br /&gt;&lt;br /&gt;It is quite simple to configure this with the Vordel Application Gateway. Just right-click the &lt;strong&gt;Listeners&lt;/strong&gt;        -&amp;gt; &lt;strong&gt;Vordel Reporter&lt;/strong&gt; node in the Policy Studio tree, and follow the configuration steps which are listed here on the Vordel Extranet:&lt;a href="https://extranet.vordel.com/documentation2/VG6/common/tutorials/reporter_scheduled_reports.html"&gt; https://extranet.vordel.com/documentation2/VG6/common/tutorials/reporter_scheduled_reports.html&lt;/a&gt; [ If you need a logon for the Vordel Extranet, contact Vordel at info@vordel.com ]. &lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6429716011323964386?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6429716011323964386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6429716011323964386'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/scheduling-reports-on-api-usage.html' title='Scheduling reports on API usage'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2936451652471604446</id><published>2012-01-17T14:34:00.001Z</published><updated>2012-01-17T19:40:53.485Z</updated><title type='text'>Gateways and Load Balancers</title><content type='html'>A very common question is "How do &lt;a href="http://www.vordel.com/products/index.html"&gt;Application Gateways &lt;/a&gt;work with Load Balancers"?&lt;br /&gt;&lt;p&gt;To answer this question, it is useful to divide up the &lt;span class="il"&gt;load&lt;/span&gt; balancing requirement into "in front of" (ingress) and "behind" (egress) the Gateways. &lt;/p&gt; &lt;p&gt;In front of the Gateways (ingress), if there is already a &lt;span class="il"&gt;load&lt;/span&gt;-&lt;span class="il"&gt;balancer in place&lt;/span&gt;,  then it's natural to deploy the Gateways in  Active-Active configuration behind it. If the reporting or routing  requires the source IP address, then &lt;span class="il"&gt;load&lt;/span&gt; &lt;span class="il"&gt;balancer&lt;/span&gt; can place this into the X-Forwarded header and the Gateway consumes this.&lt;/p&gt;  &lt;p&gt;Policy Director is used to send the same configuration to multiple  Gateways in an Active-Active cluster (and if there is a hot-standby,  then to it also). &lt;/p&gt; &lt;p&gt;The distributed caching across the Gateways is used to keep state (eg  message counts for throttling across Gateways in a cluster).&lt;/p&gt; &lt;p&gt;If there is no &lt;span class="il"&gt;load&lt;/span&gt;-&lt;span class="il"&gt;balancer&lt;/span&gt;  in place, then it's simple to setup a cluster of Gateways with a VIP (Virtual IP address) shared  across them. Policy Director is used to keep the configuration in  sync.&lt;/p&gt;  &lt;p&gt;Behind the Gateways (egress), you can use the Gateway's inbuilt &lt;span class="il"&gt;load&lt;/span&gt;-balancing.  This can be Round-Robin across backend servers, or weighted on response  time (Gateways will then favor faster backend servers). So there is no  need for a &lt;span class="il"&gt;Load&lt;/span&gt; &lt;span class="il"&gt;Balancer&lt;/span&gt; behind the Gateway. Load-balancing in the Gateway is configured within a "Remote Host" in Policy Studio.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2936451652471604446?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2936451652471604446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2936451652471604446'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/gateways-and-load-balancers.html' title='Gateways and Load Balancers'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8948252838124399730</id><published>2012-01-11T13:55:00.008Z</published><updated>2012-01-11T17:14:24.773Z</updated><title type='text'>Who manages Application Gateways?</title><content type='html'>Because Application Gateways touch on a number of areas of functionality, including networking and security, a very common question is "Who manages an Application Gateway?".&lt;br /&gt;&lt;br /&gt;To answer the question, take a step back and think about what an &lt;a href="http://www.vordel.com/products/index.html"&gt;Application Gateway &lt;/a&gt;is.  An &lt;a href="http://www.vordel.com/products/index.html"&gt;Application Gateway &lt;/a&gt;takes tasks such as application integration and application security and it moves them into a piece of network infrastructure (which may be virtual or physical). By moving these tasks out of applications and onto the network, you make the tasks run faster, and easier to manage since they are now decoupled from the applications themselves.&lt;br /&gt;&lt;br /&gt;So, breaking it down, there are two things going on here: (1) moving integration and security tasks onto network infrastructure, and (2) managing the Gateway as a piece of network infrastructure. It follows logically that there are two distinct roles involved here: (1) The person configuring services and policies on the Gateway, and (2) the person operationally managing the Gateway. Person (1) knows about APIs, apps, and policies. Person (2) does not need to know anything about APIs (much less know anything about REST or XML) but knows all about SNMP, Splunk, load-balancers, and NAT.&lt;br /&gt;&lt;br /&gt;This is why Vordel provides two distinct training courses, aimed at these two different people. For person (1), who will be registering APIs and SOAP services on the Gateway and applying policies to them, we provide the &lt;a href="http://www.vordel.com/company/Vordel_Certified_System_Engineer.html"&gt;Vordel Certified Systems Engineer&lt;/a&gt; (VCSE) training. This involves registering APIs (via their URLs), choosing policies to apply to them, and pushing the policies out to Gateways. It includes SOAP and REST. For person (2), we provide the&lt;a href="http://www.vordel.com/company/Vordel_Certified_Network_Administrator.html"&gt; Vordel Certified Network Administrator&lt;/a&gt; (VCNA) training. This explains how to monitor the "speeds and feed" of a Gateway, where alerts can be sent, how to monitor it via network admin tools such as HP Arcsight, how to deploy additional virtual appliances in a VMware ESX environment, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-M3EI1ivUbac/Tw29uoTDs0I/AAAAAAAABbo/VfO3G8_-CO0/s1600/Services.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 243px;" src="http://1.bp.blogspot.com/-M3EI1ivUbac/Tw29uoTDs0I/AAAAAAAABbo/VfO3G8_-CO0/s400/Services.png" alt="" id="BLOGGER_PHOTO_ID_5696417712482530114" border="0" /&gt;&lt;/a&gt;The separation of duties carries over to the Web-based interfaces used to manage the Vordel Application Gateway. In the case of the person managing &lt;span style="font-style: italic;"&gt;APIs and policies&lt;/span&gt;, they see dashboards such as the one shown above. Here I see the traffic being passed to three APIs: CDYNE's EmailVerify service, SalesForce itself, and SalesForce's login service, for a two minute period on January 9th 2012.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-mAuALu0_VAM/Tw29u4Wc-DI/AAAAAAAABb0/WbT54h5NEvw/s1600/Webmin.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 340px;" src="http://3.bp.blogspot.com/-mAuALu0_VAM/Tw29u4Wc-DI/AAAAAAAABb0/WbT54h5NEvw/s400/Webmin.png" alt="" id="BLOGGER_PHOTO_ID_5696417716791736370" border="0" /&gt;&lt;/a&gt;In the screenshot above, we see what the Network Administrator sees. Rather than seeing information about SalesForce APIs, they instead see the network administration view of the Application Gateway. We see, for example, here the RAID Array Status for disks in the Application Gateway. Also, as you can see, system logs, networking, and server status can be monitored in this way. All of the same information can be sent to a product like HP Arcsight so that the network administrator does not even need to look at Vordel tooling.&lt;br /&gt;&lt;br /&gt;In summary, there are two distinct types of people who manage Application Gateways on an ongoing basis, and this maps to Vordel's two distinct training courses, and to the different Web interfaces we provide for these people. All of this is geared towards moving application integration application security out of applications and onto the network (virtual or physical).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8948252838124399730?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8948252838124399730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8948252838124399730'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/who-manages-application-gateways.html' title='Who manages Application Gateways?'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-M3EI1ivUbac/Tw29uoTDs0I/AAAAAAAABbo/VfO3G8_-CO0/s72-c/Services.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6561157582017239818</id><published>2012-01-04T02:36:00.003Z</published><updated>2012-01-04T02:52:34.814Z</updated><title type='text'>Kin Lane's API Management Service Provider Roundup for 2011 covers Vordel</title><content type='html'>Vordel is featured in &lt;a href="http://www.apievangelist.com/2011/12/23/api-management-service-provider-roundup-for-2011/"&gt;Kin Lane's First Dimension of API Management Service Providers&lt;/a&gt;. It's a really good round-up of the current state of play, as we start 2012.&lt;br /&gt;&lt;br /&gt;Kin mentions that:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;One thing to know about these API management service providers is, well...they are API management service providers. To my knowledge they don’t actually deploy your API for you, they help you build a strategy, and manage the API. But you still need to rely on other tools and in-house resources to deliver your API.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;This is where I'd disagree slightly. In the case of an &lt;a href="http://www.vordel.com/solutions/api_gateway.html"&gt;API Gateway&lt;/a&gt;, it can also be used as a &lt;span style="font-style: italic;"&gt;service delivery platform &lt;/span&gt;to deliver an API in front of existing enterprise system systems. This is because API Gateways include many adapters to, for example, various message queues, TIBCO EMS/Rendezvous, databases, and FTP/SFTP. These are used to deliver a REST API interface in front of an enterprise system which does not natively support REST, not to mention JSON, OAuth, or OpenID. This can be as simple as delivering a&lt;a href="http://www.soatothecloud.com/2008/11/how-to-convert-from-rest-to-soap.html"&gt; REST API interface in front of an existing SOAP service within the enterprise&lt;/a&gt;, to mapping from REST into messages placed on the message queue, through to mapping from "lightweight" identity mechanisms suitable for APIs (such as OpenID or OAuth) through to enterprise identity management (e.g. &lt;a href="http://www.soatothecloud.com/2012/01/mapping-from-google-login-with-openid.html"&gt;mapping from Google OpenID to Oracle OAM&lt;/a&gt;). So, an API Gateway usually does not only manage the API, it actually delivers the API too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6561157582017239818?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6561157582017239818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6561157582017239818'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/kin-lanes-api-management-service.html' title='Kin Lane&apos;s API Management Service Provider Roundup for 2011 covers Vordel'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-908236472443558042</id><published>2012-01-04T02:13:00.005Z</published><updated>2012-01-04T02:29:57.518Z</updated><title type='text'>Mapping from Google login, with OpenID, to Oracle Access Manager login, with obsso cookie</title><content type='html'>For a demo recently, I configured the &lt;a href="http://www.vordel.com/products/index.html"&gt;Vordel Gateway &lt;/a&gt;to map from a Google account logon to an Oracle Access Manager obsoo cookie. This was to enable users to use their Google account to log into a local enterprise service, using the Vordel Gateway to do the mapping to the Oracle Access Manager login (since Oracle Access Manager is what is protecting the enterprise service).&lt;br /&gt;&lt;br /&gt;Here is the policy in action. You can see that the Vordel Gateway creates a hyperlink to Google, to ask the user to select their account. If you look at the status bar in the screenshot below, you can see the OpenID string generated by the Vordel Gateway:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Atc252UTnb4/TwO17NfC4II/AAAAAAAABbE/QukxDrk7nfE/s1600/GoogleOracle1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/-Atc252UTnb4/TwO17NfC4II/AAAAAAAABbE/QukxDrk7nfE/s400/GoogleOracle1.png" alt="" id="BLOGGER_PHOTO_ID_5693594382763221122" border="0" /&gt;&lt;/a&gt;When I click the link, I am asked which Google account I want to use to log into the service. Google shows me the two accounts which I am currently logged into:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-dvJkRNRoTYM/TwO17fEEXtI/AAAAAAAABbM/jzBOsATnaf0/s1600/GoogleOracle2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://3.bp.blogspot.com/-dvJkRNRoTYM/TwO17fEEXtI/AAAAAAAABbM/jzBOsATnaf0/s400/GoogleOracle2.png" alt="" id="BLOGGER_PHOTO_ID_5693594387481910994" border="0" /&gt;&lt;/a&gt;Once I choose the Google Account, I see that the Vordel Gateway has generated an Oracle Access Manager obsso cookie, which is visible in Firefox:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-SZbJPcF5VEc/TwO17rLXgUI/AAAAAAAABbc/nIiTORSsX5A/s1600/GoogleOracle3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://3.bp.blogspot.com/-SZbJPcF5VEc/TwO17rLXgUI/AAAAAAAABbc/nIiTORSsX5A/s400/GoogleOracle3.png" alt="" id="BLOGGER_PHOTO_ID_5693594390733750594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If you're interested in getting a copy of the policies I used for this, contact Vordel at info@vordel.com . For more information, including videos, about Vordel Gateway interop with various Oracle products, check out: &lt;a href="http://www.vordel.com/oracle/"&gt;http://www.vordel.com/oracle/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-908236472443558042?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/908236472443558042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/908236472443558042'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/mapping-from-google-login-with-openid.html' title='Mapping from Google login, with OpenID, to Oracle Access Manager login, with obsso cookie'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Atc252UTnb4/TwO17NfC4II/AAAAAAAABbE/QukxDrk7nfE/s72-c/GoogleOracle1.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2518412422367787863</id><published>2012-01-03T02:42:00.006Z</published><updated>2012-01-03T03:28:01.496Z</updated><title type='text'>Returning JSON fault information to JQuery-based API clients</title><content type='html'>Since many APIs are called by JavaScript libraries like JQuery, it's convenient to return fault information as JSON so that it can be easily read by the client. The object is then parsed to retrieve the reason for the fault. Some APIs make this easy, such as the &lt;a href="http://docs.rackspace.com/auth/api/v2.0/auth-client-devguide/content/Faults-d1e908.html"&gt;Rackspace Cloud Identity API which allow faults to be returned as JSON or XML&lt;/a&gt;. But in many cases, you have to laboriously configure this JSON conversiona yourself [For example, in the case of WCF, &lt;a href="http://iainjmitchell.com/"&gt;Iain Mitchell&lt;/a&gt; has a good blog post about how it can &lt;a href="http://docs.rackspace.com/auth/api/v2.0/auth-client-devguide/content/Faults-d1e908.html"&gt;be made to return JSON formatted faults for consumption by JQuery&lt;/a&gt;.]&lt;br /&gt;&lt;br /&gt;A Gateway serves an important purpose here, by providing fine-grained information on why clients are blocked. A Gateway can  XML to clients which expect XML responses, and JSON to REST API clients which expect JSON. Let's see how you can use the Vordel Gateway to take a policy which returns an XML fault (in this case a SOAP Fault) and converts it automatically to JSON...&lt;br /&gt;&lt;br /&gt;To start this, I fired up &lt;a href="http://www.vordel.com/products/development2.html"&gt;Vordel Policy Studio  &lt;/a&gt;and connected to my Dev API Gateway. I then dragged in a Policy Shortcut to a policy called "JSON Fault". Next I right-clicked on it and choose "Set as Fault Handler", as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-K-2GtH9r5gc/TwJrR-N-49I/AAAAAAAABac/0ePM0jbqaAQ/s1600/shot4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 216px;" src="http://2.bp.blogspot.com/-K-2GtH9r5gc/TwJrR-N-49I/AAAAAAAABac/0ePM0jbqaAQ/s400/shot4.png" alt="" id="BLOGGER_PHOTO_ID_5693230835453322194" border="0" /&gt;&lt;/a&gt;This means that if any of the filters in the chain return false, my policy gets called. Next let's look at this policy. You can see below that it takes a regular SOAP Fault and converts it automatically to JSON:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-0PcXKUOAFJM/TwJrSRG8vNI/AAAAAAAABao/w0xRurvHKfQ/s1600/shot5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 219px;" src="http://2.bp.blogspot.com/-0PcXKUOAFJM/TwJrSRG8vNI/AAAAAAAABao/w0xRurvHKfQ/s400/shot5.png" alt="" id="BLOGGER_PHOTO_ID_5693230840524094674" border="0" /&gt;&lt;/a&gt;When we look at it in action, in the API Gateway's Real-Time Monitoring, we see the familiar "Path through the policies" on the left, and on the right you can see the JSON which is returned to the JQuery client:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-4zL_LVHdPWo/TwJsf1lCFEI/AAAAAAAABa4/g0IzIEsGLvI/s1600/shot6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 199px;" src="http://2.bp.blogspot.com/-4zL_LVHdPWo/TwJsf1lCFEI/AAAAAAAABa4/g0IzIEsGLvI/s400/shot6.png" alt="" id="BLOGGER_PHOTO_ID_5693232173163877442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The API Gateway's Real-Time Monitoring shows what is happening &lt;span style="font-weight: bold;"&gt;now &lt;/span&gt;for your APIs and services. But in order to look at what has happened in the past, we open the &lt;a href="http://www.vordel.com/products/reporting_and_monitoring2.html"&gt;API Gateway's audit trail&lt;/a&gt;. Here you can see the opening page, and I click on the "Audit Trail" button:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-DjC2mh8Bj40/TwJrRBs1D2I/AAAAAAAABZ4/zctwho4pd5w/s1600/shot1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;" src="http://2.bp.blogspot.com/-DjC2mh8Bj40/TwJrRBs1D2I/AAAAAAAABZ4/zctwho4pd5w/s400/shot1.png" alt="" id="BLOGGER_PHOTO_ID_5693230819208138594" border="0" /&gt;&lt;/a&gt;On the Audit Trail, I run a report for the API requests blocked in the last hour by my API Gateway. Here I see a bunch, and I click on one to see more detail.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-dotbI0F9m7E/TwJrRJx4haI/AAAAAAAABaA/qmsi-aUPWxc/s1600/shot2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 199px;" src="http://1.bp.blogspot.com/-dotbI0F9m7E/TwJrRJx4haI/AAAAAAAABaA/qmsi-aUPWxc/s400/shot2.png" alt="" id="BLOGGER_PHOTO_ID_5693230821376820642" border="0" /&gt;&lt;/a&gt;When I click on the API request which was blocked, I see the exact reason why it was blocked in the "Path through the Policy". I can see below that it was the authentication which failed, the same reason which was passed back to the JQuery client.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-IxZfgK3TNVQ/TwJrRcO9PjI/AAAAAAAABaQ/FtstEdcRPXw/s1600/shot3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 217px;" src="http://3.bp.blogspot.com/-IxZfgK3TNVQ/TwJrRcO9PjI/AAAAAAAABaQ/FtstEdcRPXw/s400/shot3.png" alt="" id="BLOGGER_PHOTO_ID_5693230826330603058" border="0" /&gt;&lt;/a&gt;So in summary, it's quite straightforward to return JSON fault information to clients, and view fault information in the Audit Trail, using the Vordel Gateway. To get more info, or your own copy of the Vordel Gateway, contact us on &lt;a href="mailto:info@vordel.com"&gt;info@vordel.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2518412422367787863?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2518412422367787863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2518412422367787863'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/returning-json-fault-information-to.html' title='Returning JSON fault information to JQuery-based API clients'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-K-2GtH9r5gc/TwJrR-N-49I/AAAAAAAABac/0ePM0jbqaAQ/s72-c/shot4.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7446424415236813733</id><published>2012-01-02T21:11:00.003Z</published><updated>2012-01-02T21:15:18.459Z</updated><title type='text'>How to change the default alert email subject line</title><content type='html'>First How-To of 2012 and it's via &lt;a href="http://niallcblogs.blogspot.com/"&gt;Niall Commiskey&lt;/a&gt;, who posted a useful tip which applies also to the &lt;a href="http://www.vordel.com/products/index.html"&gt;Vordel Gateway&lt;/a&gt;:   &lt;a href="http://niallcblogs.blogspot.com/2011/12/oracle-enterprise-gateway-oeg-changing.html"&gt;How to change the default alert email subject line&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7446424415236813733?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7446424415236813733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7446424415236813733'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2012/01/how-to-change-default-alert-email.html' title='How to change the default alert email subject line'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4246234883313918819</id><published>2011-12-22T15:40:00.003Z</published><updated>2011-12-22T20:32:16.627Z</updated><title type='text'>Testing HTTP Authentication to a Web API</title><content type='html'>It's natural to concentrate on the New New Thing, but in the case of authentication web APIs, based on HTTP, there are options. There is certainly &lt;a href="http://www.soatothecloud.com/2011/02/securing-apis.html"&gt;HMAC authentication for APIs, as shown in this Vordel Gateway case study. &lt;/a&gt;But remember that HTTP authentication still exists, and can be used for authentication to an API. If you want to test this, you can &lt;a href="http://www.vordel.com/products/free_download.html"&gt;pick up the free Vordel SOAPbox tool &lt;/a&gt;which, although it has "SOAP" in its name, can be used to test REST APIs also. Here is how you do this:&lt;br /&gt;&lt;br /&gt;Firstly click up on the title bar for your API call:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-r9Yvn1hx7KI/TvOLxInSW8I/AAAAAAAABY0/Mf11wkf3cMI/s1600/HTTPAuth1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://4.bp.blogspot.com/-r9Yvn1hx7KI/TvOLxInSW8I/AAAAAAAABY0/Mf11wkf3cMI/s400/HTTPAuth1.png" alt="" id="BLOGGER_PHOTO_ID_5689044430541183938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You'll now see the "Request Settings" dialog. Notice that it's a GET request (not a POST in the case of SOAP). I then choose the lower "Security" tab and the upper "HTTP Authentication" tab, and configure my parameters there. Notice also that mutual SSL and Kerberos are options too.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-4LfRYWrlbMg/TvOLw3j9YVI/AAAAAAAABYk/mvu2-8OOt1w/s1600/HTTPAuth2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 308px;" src="http://2.bp.blogspot.com/-4LfRYWrlbMg/TvOLw3j9YVI/AAAAAAAABYk/mvu2-8OOt1w/s400/HTTPAuth2.png" alt="" id="BLOGGER_PHOTO_ID_5689044425963823442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Happy testing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4246234883313918819?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4246234883313918819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4246234883313918819'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/testing-http-authentication-to-web-api.html' title='Testing HTTP Authentication to a Web API'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-r9Yvn1hx7KI/TvOLxInSW8I/AAAAAAAABY0/Mf11wkf3cMI/s72-c/HTTPAuth1.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-269924641893754205</id><published>2011-12-20T17:32:00.005Z</published><updated>2011-12-20T18:38:01.758Z</updated><title type='text'>NFC - a "hand wavy" technology that may succeed</title><content type='html'>In the deluge of tech prediction lists which come out this time of year, one commonality stands out: NFC. NFC stands for Near Field Communication. Here you can see it at &lt;a href="http://edition.cnn.com/2011/12/19/tech/innovation/top-tech-trends-2012/index.html"&gt;Number 3 on CNN's list for 2012&lt;/a&gt;. Like Microsoft Kinect or the Nintendo Wii, it is one of those technologies you can literally describe using "hand-waving". This is because the most highly cited usage for NFC is to enable you to wave your phone at a payment terminal and pay for goods.&lt;br /&gt;&lt;br /&gt;Although mobile payments is the most commonly mentioned case for NFC, it has many other applications. For example, &lt;a href="http://www.silicon.com/technology/mobile/2011/02/24/tfl-confirms-contactless-payments-for-2012-39747036/"&gt;Transport for London plans to use NFC cards with its Oyster readers&lt;/a&gt;. And, back at Halloween, Mark Diodati from Gartner published a blog post  (and Smiths reference in the title?) about the &lt;a href="http://blogs.gartner.com/mark-diodati/2011/10/31/how-soon-is-now-nfc-smartphones-and-physical-access-control-systems/"&gt;usage of NFC to literally open doors&lt;/a&gt;. The description of the experiment, where students used either a modified phone case or a MicroSD card with an attached antenna, reminded me of the early attempts to place digital certificates and private keys onto mobile phones via battery case appendages, circa 2000, in an ill-fated attempt to "PKI-enable" phones. That was ahead of its time, but here I think NFC is about to happen. 2012 may not be the "year of NFC" but it will be the year it continues its adoption, as gradually more and more people have an NFC-enabled phone in their hands.&lt;br /&gt;&lt;br /&gt;As full disclosure, one of the large NFC players uses &lt;a href="http://www.vordel.com/products/index.html"&gt;Vordel Gateways &lt;/a&gt;in its infrastructure. So I guess I have some other interest in NFC taking off. But, really it is one of those technologies which just makes too much sense to not take off in the coming years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-269924641893754205?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/269924641893754205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/269924641893754205'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/nfc-hand-wavy-technology-that-may.html' title='NFC - a &quot;hand wavy&quot; technology that may succeed'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3575307989807202665</id><published>2011-12-15T14:50:00.005Z</published><updated>2011-12-20T20:10:49.768Z</updated><title type='text'>Checking against a CRL from a Mutual SSL connection</title><content type='html'>A common scenario for an &lt;a href="http://www.vordel.com/products/index.html"&gt;Application Gateway &lt;/a&gt;is to perform mutual SSL and then check the client certificate against a Certificate Revocation List (CRL).&lt;br /&gt;&lt;br /&gt;Here is a simple circuit which check a Certificate Revocation List following SSL on the Vordel Gateway:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-GUv2ZZZ30d4/TuoJygSGjyI/AAAAAAAABX4/15L6ih7IP0M/s1600/CheckCRL.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 399px; height: 239px;" src="http://1.bp.blogspot.com/-GUv2ZZZ30d4/TuoJygSGjyI/AAAAAAAABX4/15L6ih7IP0M/s400/CheckCRL.png" alt="" id="BLOGGER_PHOTO_ID_5686368242772643618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;First things first&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Firstly, it's important to setup an HTTPS listener on the Gateway which is requiring that a client sends a mutual SSL certificate to it. To do this, in Policy Studio, look under "Gateway", the "Listeners", and then your Gateway instance and then a particular Services group (by default there is one there called "Default Services"). You can right-click here, on your Services group, and choose "Add Interface" and then "HTTPS".&lt;br /&gt;&lt;br /&gt;Here you choose your port for SSL (by default this is 443, but ensure that nothing is already running on that port or else when you try to deploy, the Gateway will detect this and tell you). Under the "Mutual Authentication" tab choose the option to "Require Client Certificates". In my example I have set the "Maximum Depth of Certificate Chain" to "3". Now ensure that you check the &lt;span style="font-style: italic;"&gt;CA Certificates &lt;/span&gt;of all certs which will be trusted to be sent by clients. It's important to note that here you are checking the &lt;span style="font-style: italic;"&gt;CA Certificates. &lt;/span&gt;If you have 1,000 clients who are sending certs all signed by the same CA, clearly it would be infeasible to check 1,000 boxes, one for each client. Instead, the trust is at the CA level.&lt;br /&gt;&lt;br /&gt;[ Note: If you want to ensure that clients can &lt;span style="font-style: italic;"&gt;only &lt;/span&gt;access your APIs or services over SSL, then simply delete the existing plain HTTP entry under the Services Group. Or, create a new "HTTP Services", only put an HTTPS listener in there, and then the only way to access the paths in that group is through SSL].&lt;br /&gt;&lt;br /&gt;Next, right-click on your Services in Policy Studio again and this time choose "Add Relative Path". For my example, I am adding "/SSL" and it links to the policy I've made.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step by Step&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;So, now let's look at the policy, step by step:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SSL filter. &lt;/span&gt;This filter is from the "Authentication" group in Policy Studio. The purpose of this filter is to force SSL authentication and to retrieve the certificate which is presented by the client. If you hover the mouse over this filter, you can see that one of the attributes it creates is a "certificate" attribute, which is the certificate presented by the client.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Check certificate against CRL filter. &lt;/span&gt;This is a "CRL (Dynamic)" filter. It is from the "Certificate" group in Policy Studio. I have configured the URL to "http://localhost:8080/GetCRL/MyCRLName.crl" . This means that the CRL is being served up by the Gateway (which is also listening on port 8080) using a &lt;span style="font-style: italic;"&gt;Static Content Provider. &lt;/span&gt;The Static Content Provider is essentially a Web Server, which serves up the content of a directory. In this case, I map it to a folder on the same machine as the Gateway. I then place the CRL in there, and, under the services entry under "Listeners" in Policy Studio, I right-clicked and choose "Add Static Content Provider", and then pointed it at this directory. You can verify it works, once you deploy this, by simply pulling the CRL down through the browser (point your browser to: http://&lt;gateway_ip_address&gt;GatewayAddress:8080/GetCRL/MyCRLName.crl).&lt;span style="font-style: italic;"&gt;Note that you must not have anything listening on the "/" path, since that takes precedence over the Static Content Provider here.&lt;/span&gt;&lt;/gateway_ip_address&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"Certificate is Valid"&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;"Certificate is not Valid" &lt;/span&gt;filters. These are simply "Set Message" filters, which return a message of "Certificate is Valid" or "Certificate is not valid", depending on the outcome of the CRL check filter above them in the decision tree. I choose the content-type of "text/html" since I am testing this with a browser.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"Return HTTP 200" &lt;/span&gt;filter. This is simply a "Reflect" filter, which returns the message I've set ("Certificate is valid" or "Certificate is not valid") with a HTTP response code of 200.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testing this&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;In order to test this, I imported a client certificate into the "Personal" group of certificates in Internet Explorer. For some reason, the certificates configuration in Internet Explorer is under the "Content" tab (not the "Security" tab as you might expect) in Tools-&amp;gt;Internet Options. This is where I clicked "Import" and imported a certificate to test. I then opened up https://GatewayAddress/SSL in the browser and presented my certificate for authentication. I then received the "Certificate is Valid" response from the Gateway, and in the Gateway's Real-Time Monitoring (port 8090) I could see the successful path through the CRL-checking policy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3575307989807202665?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3575307989807202665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3575307989807202665'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/checking-against-crl-from-mutual-ssl.html' title='Checking against a CRL from a Mutual SSL connection'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-GUv2ZZZ30d4/TuoJygSGjyI/AAAAAAAABX4/15L6ih7IP0M/s72-c/CheckCRL.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8992312695910620375</id><published>2011-12-12T17:39:00.002Z</published><updated>2011-12-12T17:46:09.433Z</updated><title type='text'>Leveraging Cloud Computing for the Financial Services Sector - Bob's Guide</title><content type='html'>I've written an article on&lt;a href="http://www.bobsguide.com/guide/news/2011/Dec/12/leveraging-cloud-computing-for-the-financial-services-sector.html"&gt; Leveraging Cloud Computing for the Financial Services Sector&lt;/a&gt; for Bob's Guide in London.&lt;br /&gt;&lt;br /&gt;Some key points are brokering:&lt;br /&gt;&lt;blockquote&gt;One option to achieve this is to use a broker architecture that ensures  an organisation does not hard-wire its infrastructure into a single  cloud provider. This approach enables organisations to easily choose  between cloud service providers and manages the subtle differences  between the various providers, in terms of pricing, how an organisation  connects to them and how it manages the associated keys and so on.&lt;br /&gt;&lt;/blockquote&gt;And tokenization:&lt;br /&gt;&lt;blockquote&gt;Many IT managers have been wary of cloud computing because of the  prospect of private and sensitive data being sent up to third-party  cloud services. However, with the development of technologies enabling  the tokenization of data, there is now an opportunity to replace any  private information with a random token that can be sent to the cloud  service provider, and then swapped back with the real data when  retrieved. In this way, the private data is never sent to the cloud  provider. Usage of tokenization will certainly help the broader adoption  of cloud computing within the financial services industry.  &lt;/blockquote&gt;&lt;a href="http://www.bobsguide.com/guide/news/2011/Dec/12/leveraging-cloud-computing-for-the-financial-services-sector.html"&gt;Check out the whole article here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8992312695910620375?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8992312695910620375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8992312695910620375'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/leveraging-cloud-computing-for.html' title='Leveraging Cloud Computing for the Financial Services Sector - Bob&apos;s Guide'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3369232957698342824</id><published>2011-12-09T16:23:00.004Z</published><updated>2011-12-09T18:51:14.769Z</updated><title type='text'>Identity propagation from the Vordel Gateway with Oracle IdM through to Oracle OSB</title><content type='html'>I've put together a diagram showing one of the scenarios where the Vordel Gateway  operates with various Oracle Identity Management products. The scenario, which is very common, is Identity Propagation. If a client is authenticated at the Gateway, it's usually important to &lt;span style="font-style: italic;"&gt;propagate &lt;/span&gt;their identity right through to the app server tier, because otherwise all requests may appear to simply come from the Gateway. It's also important for audit trail reasons (you need identity information available if you want to keep a trail of &lt;span style="font-style: italic;"&gt;who &lt;/span&gt;has accessed which service).&lt;br /&gt;&lt;br /&gt;One of the underlying technologies used for this is SAML, and you can seem more information about how we do it in &lt;a href="http://www.soatothecloud.com/2011/07/signing-and-inserting-saml-tokens-at.html"&gt;this blog post I wrote after setting this Vordel-OSB interop up myself&lt;/a&gt;. You can follow these instructions to setup the identity propagation scenario.&lt;br /&gt;&lt;br /&gt;In the diagram below, the Vordel Gateway is working with a number  of Oracle IM products (OAM, OES, OVD, OWSM - see a naming pattern there? ;=) ) to provide end-to-end  identity propagation from the edge of the network through to the app  server.&lt;br /&gt;&lt;br /&gt;For more information about Vordel Gateway interop with many Oracle products, check out &lt;a href="http://www.vordel.com/oracle"&gt;http://www.vordel.com/oracle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-EZ7oGeXPPZY/TuJVoAUdrgI/AAAAAAAABXQ/Q6GWjSbHWb4/s1600/Vordel-Oracle-Identity-Management.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 313px;" src="http://2.bp.blogspot.com/-EZ7oGeXPPZY/TuJVoAUdrgI/AAAAAAAABXQ/Q6GWjSbHWb4/s400/Vordel-Oracle-Identity-Management.jpg" alt="" id="BLOGGER_PHOTO_ID_5684199825463946754" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3369232957698342824?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3369232957698342824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3369232957698342824'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/identity-propagation-from-vordel.html' title='Identity propagation from the Vordel Gateway with Oracle IdM through to Oracle OSB'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-EZ7oGeXPPZY/TuJVoAUdrgI/AAAAAAAABXQ/Q6GWjSbHWb4/s72-c/Vordel-Oracle-Identity-Management.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6576198782854859031</id><published>2011-12-07T04:03:00.005Z</published><updated>2011-12-07T04:52:16.560Z</updated><title type='text'>Using Vordel SOAPbox to send a SAMLResponse structure for SAML-based SSO</title><content type='html'>The SAMLResponse structure is often used for SAML-based single sign-on to Web apps. For example, it is &lt;a href="https://login.salesforce.com/help/doc/en/sso_saml_assertion_examples.htm"&gt;used by SalesForce&lt;/a&gt;. In order to test an API or &lt;a href="http://www.vordel.com/solutions/api_gateway.html"&gt;API Gateway &lt;/a&gt;which expects a SAMLResponse, SOAPbox can be used. In the example below, I have taken a SAMLResponse which was generated and URL-encoded by the &lt;a href="http://www.vordel.com/products/index.html"&gt;Vordel Gateway&lt;/a&gt;. I have placed it into the "Request" field of SOAPbox:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-3MGpqVFztuw/Tt7rzwR_pPI/AAAAAAAABW4/ziL0N0uiBLQ/s1600/SAMLResponse.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 192px;" src="http://3.bp.blogspot.com/-3MGpqVFztuw/Tt7rzwR_pPI/AAAAAAAABW4/ziL0N0uiBLQ/s400/SAMLResponse.png" alt="" id="BLOGGER_PHOTO_ID_5683239054154376434" border="0" /&gt;&lt;/a&gt;When I send the SAMLResponse to the Web App, it must be sent with a content type of "application/x-www-form-urlencoded". Here, under the "Headers" sub-tab, is how I set this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-yWAFkerRBXA/Tt7r0x_rCRI/AAAAAAAABXI/0D0zcmw2l5M/s1600/ContentType.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 193px;" src="http://3.bp.blogspot.com/-yWAFkerRBXA/Tt7r0x_rCRI/AAAAAAAABXI/0D0zcmw2l5M/s400/ContentType.png" alt="" id="BLOGGER_PHOTO_ID_5683239071794268434" border="0" /&gt;&lt;/a&gt;When, when I press the triangular green "Play" button, the SAMLResponse is sent. In this way, you can tee up example SAMLResponse structures for testing purposes. Happy testing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6576198782854859031?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6576198782854859031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6576198782854859031'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/using-vordel-soapbox-to-send.html' title='Using Vordel SOAPbox to send a SAMLResponse structure for SAML-based SSO'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-3MGpqVFztuw/Tt7rzwR_pPI/AAAAAAAABW4/ziL0N0uiBLQ/s72-c/SAMLResponse.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7882494848483464878</id><published>2011-12-05T06:18:00.003Z</published><updated>2011-12-05T06:26:19.753Z</updated><title type='text'>Configuring a dynamic CRL lookup on the Vordel Gateway</title><content type='html'>Certificate Revocation Lists (CRLs) have long been used to in the context of PKI (Public Key Infrastructure). The Vordel Gateway makes it simple to validate a certificate against a CRL. Here are the steps for the case where a certificate is pulled down from a URL:&lt;br /&gt;&lt;br /&gt;1) Place the certificate you want to validate into a "certificate" attribute. If you've validated a signature then you'll have this step done for you already, since the signature verification filter automatically populates a "certificate" attribute with the certificate used in the signature. Alternatively, you can use a "Find Certificate" filter to find the certificate from the local Gateway certificate store, or from an LDAP directory, etc.&lt;br /&gt;&lt;br /&gt;2) Now, use a "CRL (Dynamic)" filter to pull down the CRL from a URL automatically. Note that any certificate used to sign the CRL must be present in the Gateway's Certificate store, since the Gateway will validate the certificate of the CRL's signature. The filter will return TRUE (green path) if the certificate is not on the CRL, and return FALSE (red path) if the certificate is on the CRL (i.e. it's revoked).&lt;br /&gt;&lt;br /&gt;And that's all you have to do. All the  hard work of  validating the certificate against the CRL is done for you using the "CRL (Dynamic)" filter. It's another example of where using an &lt;a href="http://www.vordel.com/products/index.html"&gt;Application Gateway &lt;/a&gt;is much easier than trying to do the same thing yourself with code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7882494848483464878?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7882494848483464878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7882494848483464878'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/configuring-dynamic-crl-lookup-on.html' title='Configuring a dynamic CRL lookup on the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1600228653633296946</id><published>2011-12-05T02:34:00.004Z</published><updated>2011-12-05T14:58:59.847Z</updated><title type='text'>Rutrell Yasin on "what to look for in a SOA App Gateway"</title><content type='html'>Rutrell Yasin at &lt;a href="http://www.gcn.com/"&gt;Government Computer News &lt;/a&gt;covers the new "Forrester Wave&lt;sup&gt;TM&lt;/sup&gt;: SOA Application Gateways, Q4 2011" report in his article on "&lt;a href="http://gcn.com/articles/2011/12/02/soa-application-gateways-forrester-report.aspx"&gt;what to look for in a SOA App Gateway&lt;/a&gt;". I'm pleased to say that Vordel is positioned as a "Leader" in this Forrester report. What is a "Leader" in this context? Well, Leaders were recognized for their "wide-ranging support for message  formats and protocols (including FTP) and strong content transformation  features", plus "attack protection and trust enablement  security features". Forrester recognized Vordel as a leader whose "…  offering is strong overall …with a good global presence … and customer  references [that] expressed strong satisfaction with the company and the  product."  The report also mentioned Vordel's important partnership with  Oracle.&lt;br /&gt;&lt;br /&gt;I worked opposite Forrester on this evaluation, and I was very impressed with how hands-on Randy Heffner and his team were. I know people can be cynical about analyst reports, but certainly in this case the products were examined in great detail, including hours devoted to  show-and-tell product demo. A very valuable exercise for all involved: analysts, vendors, and customers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1600228653633296946?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1600228653633296946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1600228653633296946'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/rutrell-yasin-on-what-to-look-for-in.html' title='Rutrell Yasin on &quot;what to look for in a SOA App Gateway&quot;'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6407842587738658004</id><published>2011-12-03T20:10:00.005Z</published><updated>2011-12-03T20:18:37.891Z</updated><title type='text'>From XBRL to Westminster</title><content type='html'>I was looking up an XBRL expert in the UK recently, Steve Baker, and I discovered to my surprise that he is now &lt;a href="https://twitter.com/#%21/stevebakermp"&gt;Conservative Party MP for Wycombe&lt;/a&gt;! Of course, Steve is a smart guy and I always respected his views on XBRL, so it shouldn't be a surprise that he would be skilled in other areas. I look forward to XBRL markup in &lt;a href="http://en.wikipedia.org/wiki/Hansard"&gt;Hansard &lt;/a&gt;:-)&lt;br /&gt;&lt;br /&gt;This is quite the update he has in his blog:&lt;br /&gt;&lt;blockquote&gt;&lt;h2&gt;Suspended software work – now an MP&lt;/h2&gt;                       &lt;small&gt;October 24th, 2010 by sjb&lt;/small&gt;     &lt;div class="entry"&gt;     &lt;p&gt;Now that I am &lt;a href="http://www.stevebaker.info/"&gt;MP for Wycombe&lt;/a&gt;, I have suspended trading as a consulting software engineer.&lt;/p&gt;    &lt;/div&gt;&lt;a href="http://www.ambrielconsulting.com/?p=133"&gt;http://www.ambrielconsulting.com/?p=133&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6407842587738658004?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6407842587738658004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6407842587738658004'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/from-xbrl-to-westminster.html' title='From XBRL to Westminster'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-580969057395014504</id><published>2011-12-01T18:53:00.007Z</published><updated>2011-12-01T19:41:35.173Z</updated><title type='text'>How to call a Web Service or API "Off to the side" from the Vordel Gateway</title><content type='html'>A very common question asked by Vordel Gateway users is "How do I call out to an API or Web Service from within the Gateway, then use the response in a request to another destination?". I notice that people often gravitate to the "Web Service Filter" or "Call Internal Service" filter for this, but that's actually not how it's done.&lt;br /&gt;&lt;br /&gt;The way to do this is to use the "Connect to URL" filter. In the example below, I am calling out to a REST API from within a circuit on the Vordel Gateway. You can see that because the initial request to the Gateway is a POST (it's a SOAP message coming in) and the call out to the REST API is a GET, I'm using a "Set HTTP Verb" to set the verb to "GET" before making the request to the REST API (a &lt;a href="http://www.soatothecloud.com/2010/02/restful-sts.html"&gt;REST STS &lt;/a&gt;in this case, to request a SAML Assertion). I then am taking the response from that service, and using it in the construction of a request to the destination Web Service, which is an SP (Service Provider) that expects a SAML Assertion to be sent to it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-FxnEcGxWhjQ/TtfYImb2zzI/AAAAAAAABVY/xIVlErDD5O0/s1600/Screenshot.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 348px;" src="http://2.bp.blogspot.com/-FxnEcGxWhjQ/TtfYImb2zzI/AAAAAAAABVY/xIVlErDD5O0/s400/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5681247097219108658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's quite easy, in this way, to string together many calls to different APIs or Web Services.&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" down" style="display: block;" id="formatbar_CreateLink" title="Link"&gt;&lt;img src="img/blank.gif" alt="Link" class="gl_link" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Note  that if you want to store the initial request, make the callout "off to  the side" to another service, then restore the initial request (i.e.  not overwrite it with the response from the service you called "off to  the side") then that's where the "Store" and "Restore" filters are used.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-580969057395014504?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/580969057395014504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/580969057395014504'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/12/how-to-call-web-service-or-api-off-to.html' title='How to call a Web Service or API &quot;Off to the side&quot; from the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-FxnEcGxWhjQ/TtfYImb2zzI/AAAAAAAABVY/xIVlErDD5O0/s72-c/Screenshot.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2276746908282699450</id><published>2011-11-28T06:35:00.005Z</published><updated>2011-11-28T07:57:11.519Z</updated><title type='text'>Video: Enabling OAuth to a Google JSON API using the Vordel API Gateway</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-jC9rmCAa3Qg/TtM51Ik-kzI/AAAAAAAABU0/--AQZLhOOYE/s1600/step2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 180px;" src="http://4.bp.blogspot.com/-jC9rmCAa3Qg/TtM51Ik-kzI/AAAAAAAABU0/--AQZLhOOYE/s400/step2.jpg" alt="" id="BLOGGER_PHOTO_ID_5679947140042756914" border="0" /&gt;&lt;/a&gt;OAuth is a very popular way to manage access to APIs. Amongst other things, it enables users to log into an application (which could be an application on a phone or tablet) and then that application calls lightweight APIs on their behalf. From a user's point of view, they accessed the application, and it all "just worked". They didn't have to enter any more passwords.  From an implementation perspective, it's more complex of course. But an &lt;a href="http://www.vordel.com/solutions/api_gateway.html"&gt;API Gateway &lt;/a&gt;makes it simple to call lightweight APIs using OAuth.&lt;br /&gt;&lt;br /&gt;When I say "Lightweight APIs" in the paragraph above, I mean REST Web Services which generally use JSON. And what is JSON? JSON is a lightweight alternative to XML, which is increasingly used to bypass heavyweight XML parsing (and, in some cases, to bypass the security controls of the XMLHttpRequest object often used in AJAX).&lt;br /&gt;&lt;br /&gt;JSON and REST can be seen as more efficient optimizations of what went before. OAuth is far from being "just another authentication mechanism". To understand OAuth involves understanding how it is used. For APIs, it generally involves an application (e.g. an Android app) accessing the API on the user's behalf. Phil Hunt has an excellent explanation of this aspect of OAuth here:&lt;br /&gt;&lt;blockquote&gt;OAuth2  supports a range of new use case scenarios. Many do not directly  involve a user or a browser, but rather define a client application  acting on behalf of a resource owner's (e.g. the user) behalf using only  HTTP to access REST based services in a lightweight fashion. From an  authorization perspective, OAuth2 use cases introduce the new capability  that client applications, each with their own identity, act on behalf  of a users that own resources and can perform service calls with a  specified "scope".&lt;br /&gt;&lt;a href="http://www.independentid.com/2011/04/oauth-does-it-authorize-yes-but-much.html"&gt;http://www.independentid.com/2011/04/oauth-does-it-authorize-yes-but-much.html&lt;/a&gt;&lt;/blockquote&gt;[ It's also worth following the link above to Phil Hunt's piece if you're ever wondered why the HTTP header "Authorization" is not called "Authentication"]&lt;br /&gt;&lt;br /&gt;So, all in all, there are a lot of new technologies at play here: OAuth, JSON, APIs, and even REST. And there is also a new concept, the &lt;span style="font-weight: bold; font-style: italic;"&gt;API Gateway.&lt;/span&gt; An API Gateway applies the security mechanisms such as OAuth, which is required to authenticate to an API. But, beyond this, it also provides:&lt;br /&gt;- Monitoring of the API usage&lt;br /&gt;- Alerting if the API is not responding correctly&lt;br /&gt;- An audit trail of API access&lt;br /&gt;- Validation of API content&lt;br /&gt;- Redaction and tokenization of content being sent in API calls&lt;br /&gt;- Mapping to identity stores&lt;br /&gt;&lt;br /&gt;Putting it all together, here is a demo of how a user can authorize the Vordel &lt;a href="http://www.vordel.com/solutions/api_gateway.html"&gt;API Gateway &lt;/a&gt;to access a JSON API with OAuth on their behalf.&lt;br /&gt;&lt;br /&gt;In the video below, I'm using an Android tablet to authorize the Vordel API Gateway to access an API on my behalf. In the Android environment, I am already logged in with Google, and the API Gateway leverages this to ask me do I want to access the API using my Google logon. In this case the API is a Google URL-shortening API. When I authorize it, then from that point on the Vordel API Gateway is enabled to access this API on my behalf. At the API Gateway level, you can see  in the video that the API usage and access is managed. The API Gateway administrator can add controls such as JSON validation, detection of private data leakage, and tokenization (replacement of private data with an opaque token). At no point does the user have to worry about creating OAuth headers - this is all taken care of at the API Gateway.&lt;br /&gt;&lt;br /&gt;This is the first in a series of videos on the API Gateway topic - watch this space for more!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-478489d6ef16f346" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v16.nonxt5.googlevideo.com/videoplayback?id%3D478489d6ef16f346%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6D3CE8D475EB58F2195BAB6D4A85F74D8D462B12.374139E730B8E47E71B36D820A646BAA790DD5A7%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D478489d6ef16f346%26offsetms%3D5000%26itag%3Dw160%26sigh%3DiN_R49YCYZE1rEZE1Hojpi0TB2Q&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v16.nonxt5.googlevideo.com/videoplayback?id%3D478489d6ef16f346%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6D3CE8D475EB58F2195BAB6D4A85F74D8D462B12.374139E730B8E47E71B36D820A646BAA790DD5A7%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D478489d6ef16f346%26offsetms%3D5000%26itag%3Dw160%26sigh%3DiN_R49YCYZE1rEZE1Hojpi0TB2Q&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2276746908282699450?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2276746908282699450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2276746908282699450'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/11/enabling-oauth-to-google-json-api-using.html' title='Video: Enabling OAuth to a Google JSON API using the Vordel API Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-jC9rmCAa3Qg/TtM51Ik-kzI/AAAAAAAABU0/--AQZLhOOYE/s72-c/step2.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5974207403575855323</id><published>2011-11-22T18:37:00.004Z</published><updated>2011-11-22T18:57:44.307Z</updated><title type='text'>"A guy walks into a bar..."</title><content type='html'>I saw a good "A guy walks into a bar" &lt;a href="http://twitter.com/#%21/tomwalsham/status/138741480671031296"&gt;joke retweeted via Roman Stanek's Twitter feed&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;"An SEO guy walks into a bar, bars, pub, public house, Irish pub, drinks, beer, wine, liquor, grey goose, cristal"&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;I guess that is &lt;a href="http://www.theatlantic.com/technology/archive/2011/01/twitters-best-joke-an-seo-copywriter-walks-into-a-bar/69419/"&gt;an old joke&lt;/a&gt; (though it was new to me: thanks Roman) but here's a new one: What would application security guy call an Irish bar? Not "O'Reilly's" or "O'Malley's" but "O' or 1=1--"&lt;br /&gt;&lt;br /&gt;[ Explanation for non appsec folks: "O' or 1=1--" is &lt;a href="http://www.soatothecloud.com/2011/06/value-of-audit-trail-for-blocked-rest.html"&gt;an example of a SQL Injection attack which could be used against an API&lt;/a&gt; ]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5974207403575855323?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5974207403575855323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5974207403575855323'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/11/guy-walks-into-bar.html' title='&quot;A guy walks into a bar...&quot;'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8180953283505748519</id><published>2011-11-10T05:16:00.004Z</published><updated>2011-11-10T05:29:31.490Z</updated><title type='text'>How to check for a HTTP 404 response code from a service</title><content type='html'>Here's a quick guide to checking for a HTTP 404 response code from a service, using the &lt;a href="http://www.vordel.com/products/index2.html"&gt;Vordel Gateway. &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first thing to note is that a "Connection" or a "Connect to URL" filter will return true if the back-end service returns a 404 code, because of the fact that the back-end service has successfully returned a response. You can then handle this 404 as you require. Often, it's a good idea to not return the full gory details of the 404 Not Found response to the client, and instead mask this information with a more friendly message. Or, you may wish to connect to a different URL instead. All of this involves branching on the value of the HTTP response code.&lt;br /&gt;&lt;br /&gt;The simplest way to do this is to grab the latest version of the Vordel Gateway and check out the "Switch on Attribute Value" filter. This filter is great way to call a different policy shortcut based on the content of an attribute (in this case http.response.status).&lt;br /&gt;&lt;br /&gt;Another way to do this is with a script. Below, I am using a script to check if the value of the http.response.status attribute is "404". If it is, I am branching to a "Set Message" filter which sets a nice friendly message to the client, telling them that the service is not available. Following that, I am using a "Reflect" filter to ensure that a 200 OK response code is returned to the client (not the 404 which came from the service).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-3FacylSYrd8/Trte-RIdAVI/AAAAAAAABTs/mEaH76n7G2o/s1600/CheckResponse.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 191px;" src="http://4.bp.blogspot.com/-3FacylSYrd8/Trte-RIdAVI/AAAAAAAABTs/mEaH76n7G2o/s400/CheckResponse.png" alt="" id="BLOGGER_PHOTO_ID_5673232579447030098" border="0" /&gt;&lt;/a&gt;Here is what the browser user sees. All of the information from the back-end service is replaced by the "Service not available" message.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-EfzJ7eyU1Ew/Trte-D3OC4I/AAAAAAAABTg/mEoOoCj38As/s1600/browser.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 281px;" src="http://4.bp.blogspot.com/-EfzJ7eyU1Ew/Trte-D3OC4I/AAAAAAAABTg/mEoOoCj38As/s400/browser.png" alt="" id="BLOGGER_PHOTO_ID_5673232575885085570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is pretty simple to handle at the Gateway, and it's interesting that, with relatively simple configuration like this, you can deploy the Gateway as Web traffic routing infrastructure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8180953283505748519?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8180953283505748519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8180953283505748519'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/11/how-to-check-for-http-404-response-code.html' title='How to check for a HTTP 404 response code from a service'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-3FacylSYrd8/Trte-RIdAVI/AAAAAAAABTs/mEaH76n7G2o/s72-c/CheckResponse.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7916181321109088801</id><published>2011-11-09T16:28:00.010Z</published><updated>2011-11-09T17:04:13.521Z</updated><title type='text'>How do I read an attribute from an LDAP directory, and place it into a SAML Assertion?</title><content type='html'>Looking up user information from an LDAP directory is a common usage of the &lt;a href="http://www.vordel.com/products/index2.html"&gt;Vordel Gateway&lt;/a&gt;. Sometimes it's used for Message Enrichment in front of an applications server. This saves the applications server developer the hassle of looking up the attributes from the directory, since the attributes are handed to them on a plate, in the message, by the Gateway. So here is a quick tutorial on how to do this:&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;In the circuit you can see below, I am doing four things:&lt;br /&gt;&lt;br /&gt;1) Authenticating the client against an LDAP directory (in this case Microsoft Active Directory) using WS-Security UsernameTokens.&lt;br /&gt;&lt;br /&gt;2) Looking up attributes for the user (in this case, their telephone number)&lt;br /&gt;&lt;br /&gt;3) "Injecting" a SAML 2.0 assertion into the message, including the SAML Attribute Statement&lt;br /&gt;&lt;br /&gt;4) Passing the message back, with the SAML assertion now in it (so that we can see it). Here I could have used a "Connect to URL" filter to send the message to a URL, the "Messaging" filter to put it onto a queue, etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-lUlBnvDFsk4/TrqsGR7sTvI/AAAAAAAABSM/nt6s2tJnsWc/s1600/WSSecLDAP.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 199px;" src="http://2.bp.blogspot.com/-lUlBnvDFsk4/TrqsGR7sTvI/AAAAAAAABSM/nt6s2tJnsWc/s400/WSSecLDAP.png" alt="" id="BLOGGER_PHOTO_ID_5673035904519524082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Let's look at each of these filters. Firstly, the filter which does WS-Security authentication against LDAP. This is shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-QROD6uLMomI/TrqtAUOqFVI/AAAAAAAABSY/a3nPmmcS7Po/s1600/WSSec.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 260px; height: 400px;" src="http://4.bp.blogspot.com/-QROD6uLMomI/TrqtAUOqFVI/AAAAAAAABSY/a3nPmmcS7Po/s400/WSSec.png" alt="" id="BLOGGER_PHOTO_ID_5673036901568353618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;See that "Sample Active Directory Repository" under the "Repository Name" field above? That is a pointer to the connection I have configured to an LDAP directory. Actually, with the Vordel Gateway, you get a pre-configured sample LDAP connection which you can adapt to your own directory. This is what I did.  The configuration for the LDAP connection can be found under "External Connections", as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-4M7Ilq1PXiM/TrqtticXpdI/AAAAAAAABSk/DPocu13vCSw/s1600/LDAPConf.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/-4M7Ilq1PXiM/TrqtticXpdI/AAAAAAAABSk/DPocu13vCSw/s400/LDAPConf.png" alt="" id="BLOGGER_PHOTO_ID_5673037678478075346" border="0" /&gt;&lt;/a&gt;You can see above that there are two things to configure: (a) The Authentication Repository Profile, and (b) The LDAP Connection itself. The LDAP Connection is how the Gateway binds to the LDAP server. The Authentication Repository Profile is how it finds the users which are being authenticated. So it is "bind then find".  The Authentication Repository Profile (the "find") makes use of the LDAP connection (the "bind"). Note that &lt;span style="font-style: italic;"&gt;if you only configure the LDAP connection, you won't see your LDAP authentication connection come up in the drop-down box on your authentication filters. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I click on "Add/Edit", I can edit (and test) my LDAP connection. In the screenshot below, you can see that the test was successful, meaning I could connect from Policy Studio to the LDAP directory:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-HMCon87TT6E/TrquaPR-9QI/AAAAAAAABSw/ENn6bdPTPto/s1600/LDAPConfTest.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/-HMCon87TT6E/TrquaPR-9QI/AAAAAAAABSw/ENn6bdPTPto/s400/LDAPConfTest.png" alt="" id="BLOGGER_PHOTO_ID_5673038446428353794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;OK - so now let's look at the next filter in our circuit. This is a "Retrieve Attributes from Directory Server" filter, which you can find in the "Attributes" group in Policy Studio. I have configured it to retrieve the "telephoneNumber" filter from Active Directory:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-JV8LIbQGzzs/TrqvuACoQBI/AAAAAAAABS8/b6yAJM5hqxY/s1600/RetrAttributes.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 315px; height: 400px;" src="http://1.bp.blogspot.com/-JV8LIbQGzzs/TrqvuACoQBI/AAAAAAAABS8/b6yAJM5hqxY/s400/RetrAttributes.png" alt="" id="BLOGGER_PHOTO_ID_5673039885446430738" border="0" /&gt;&lt;/a&gt;If I look into Active Directory, I can see the phone number is in place for a sample user ("Joe Developer"). This is the phone number I am looking up:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-tEq2gjUbYaw/TrqxPB5992I/AAAAAAAABTU/E7nItGRUHOw/s1600/JoeDeveloper.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 334px; height: 400px;" src="http://2.bp.blogspot.com/-tEq2gjUbYaw/TrqxPB5992I/AAAAAAAABTU/E7nItGRUHOw/s400/JoeDeveloper.png" alt="" id="BLOGGER_PHOTO_ID_5673041552394286946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Next, I am using an "Insert SAML Authentication Assertion" filter, and I have checked the box to place the SAML Attributes into it, as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-_riuq4fe6Ys/Trqwqp-dXBI/AAAAAAAABTI/zWPSLcL3Bi0/s1600/insertSAML.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 221px;" src="http://4.bp.blogspot.com/-_riuq4fe6Ys/Trqwqp-dXBI/AAAAAAAABTI/zWPSLcL3Bi0/s400/insertSAML.png" alt="" id="BLOGGER_PHOTO_ID_5673040927495379986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So.... Now when I send a request to the Gateway on a path which is mapped to that policy (e.g. /MyAPI), I see that in the response I now have the SAML Assertion containing the user's phone number. Note that the WS-Security UsernameToken has been removed after use by the Vordel Gateway (you might have noticed the checkbox for this in the WS-Security configuration screenshot above).&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xmlns:xsd="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;&lt;br /&gt;&amp;lt;wsse:Security&lt;br /&gt;  xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;&lt;br /&gt;  &amp;lt;saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"&lt;br /&gt;      ID="Id-0001320855457809-800be35d4ebaa7a1120b3266-2"&lt;br /&gt;      IssueInstant="2011-11-09T16:17:37Z" Version="2.0"&amp;gt;&lt;br /&gt;      &amp;lt;saml:Issuer&lt;br /&gt;          Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"&amp;gt;&lt;br /&gt;          Example&lt;br /&gt;      &amp;lt;/saml:Issuer&amp;gt;&lt;br /&gt;      &amp;lt;saml:Subject&amp;gt;&lt;br /&gt;          &amp;lt;saml:NameID&lt;br /&gt;              Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"&amp;gt;&lt;br /&gt;              CN=Joe Developer,CN=Users,DC=Vordel,DC=com&lt;br /&gt;          &amp;lt;/saml:NameID&amp;gt;&lt;br /&gt;          &amp;lt;saml:SubjectConfirmation&lt;br /&gt;              Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches" /&amp;gt;&lt;br /&gt;      &amp;lt;/saml:Subject&amp;gt;&lt;br /&gt;      &amp;lt;saml:Conditions NotBefore="2011-11-09T16:17:36Z"&lt;br /&gt;          NotOnOrAfter="2011-11-09T16:22:36Z" /&amp;gt;&lt;br /&gt;      &amp;lt;saml:AuthnStatement AuthnInstant="2011-11-09T16:17:37Z"&amp;gt;&lt;br /&gt;          &amp;lt;saml:AuthnContext&amp;gt;&lt;br /&gt;              &amp;lt;saml:AuthnContextClassRef&amp;gt;&lt;br /&gt;                  urn:oasis:names:tc:SAML:2.0:ac:classes:Password&lt;br /&gt;              &amp;lt;/saml:AuthnContextClassRef&amp;gt;&lt;br /&gt;          &amp;lt;/saml:AuthnContext&amp;gt;&lt;br /&gt;      &amp;lt;/saml:AuthnStatement&amp;gt;&lt;br /&gt;      &amp;lt;saml:AttributeStatement&amp;gt;&lt;br /&gt;          &amp;lt;saml:Attribute Name="telephoneNumber"&lt;br /&gt;              NameFormat="urn:vordel:attribute:1.0"&amp;gt;&lt;br /&gt;              &amp;lt;saml:AttributeValue&amp;gt;123456&amp;lt;/saml:AttributeValue&amp;gt;&lt;br /&gt;          &amp;lt;/saml:Attribute&amp;gt;&lt;br /&gt;      &amp;lt;/saml:AttributeStatement&amp;gt;&lt;br /&gt;  &amp;lt;/saml:Assertion&amp;gt;&lt;br /&gt;&amp;lt;/wsse:Security&amp;gt;&lt;br /&gt;&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&lt;br /&gt;&amp;lt;Add xmlns="http://startvbdotnet.com/web/"&amp;gt;&lt;br /&gt;  &amp;lt;a&amp;gt;1&amp;lt;/a&amp;gt;&lt;br /&gt;  &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;&amp;lt;/Add&amp;gt;&lt;br /&gt;&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;So that's it! That's all you need to do to authenticate a user against an LDAP directory, look up attributes, and insert attributes into an Attribute Statement in a SAML Assertion. &lt;a href="http://www.vordel.com/products/index2.html"&gt;You can find out more about the Vordel Gateway here,&lt;/a&gt; or email us at &lt;a href="mailto://info@vordel.com"&gt;info@vordel.com &lt;/a&gt;to get a copy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7916181321109088801?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7916181321109088801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7916181321109088801'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/11/how-do-i-read-attribute-from-ldap.html' title='How do I read an attribute from an LDAP directory, and place it into a SAML Assertion?'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lUlBnvDFsk4/TrqsGR7sTvI/AAAAAAAABSM/nt6s2tJnsWc/s72-c/WSSecLDAP.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6741387074298466196</id><published>2011-11-02T05:37:00.004Z</published><updated>2011-11-02T14:51:06.126Z</updated><title type='text'>Protecting API Keys for Cloud Services</title><content type='html'>My colleague Hugh Carroll has a good piece in &lt;a href="http://www.businessreviewcanada.ca/"&gt;Business Review Canada &lt;/a&gt; today about &lt;a href="http://www.businessreviewcanada.ca/technology/cloud/api-keys-the-invisible-keys-to-unlock-your-cloud-riches-1"&gt;protecting API keys. &lt;/a&gt;Be sure to check it out. API keys are just as important to protect as other keys (e.g. SSL keys) but have not got nearly the same amount of awareness from security folks. How long before there is a major publicized API key breach?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6741387074298466196?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6741387074298466196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6741387074298466196'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/11/protecting-api-keys-for-cloud-serviecs.html' title='Protecting API Keys for Cloud Services'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6417581064508926393</id><published>2011-11-01T13:14:00.003Z</published><updated>2011-11-01T13:35:18.656Z</updated><title type='text'>How to configure load-balancing across services on the same host</title><content type='html'>&lt;div&gt;There is a neat feature in the&lt;a href="http://www.vordel.com/company/news/press/19_10_11.html"&gt; Vordel Gateway v6.2 &lt;/a&gt;which allows you to load-balance messages across endpoints that are &lt;em&gt;on the same host&lt;/em&gt;. In the configuration of a Vordel Gateway, we have had the concept of a "Remote Host" for a long time. A Remote Host allows you to assign an address to map to one or more addresses. This allows you to perform load-balancing across back-end machines which the Vordel Gateway routes to.&lt;br /&gt;&lt;br /&gt;You can see in the configuration below that I have setup a Remote Host using Policy Studio, and I have setup three addresses which differ only on the port they use. I am calling the Remote Host "LoadBalancedRequests". This is not a name of a real machine, but that doesn't matter (think of a hosts file). Now, when I route messages to this LoadBalancedRequests destination, the Gateway load-balances the requests across three addresses, which differ only based on port. You can see also that I have set the load-balancing algorithm to be "weighted by response time".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-73moq3FEM88/Tq_w-6N1scI/AAAAAAAABR0/CdoUD63unqs/s1600/LoadBalanced.png"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-73moq3FEM88/Tq_w-6N1scI/AAAAAAAABR0/CdoUD63unqs/s1600/LoadBalanced.png"&gt;&lt;p&gt;&lt;img style="margin: 0px auto 10px; width: 400px; height: 257px; text-align: center; display: block; cursor: pointer;" id="BLOGGER_PHOTO_ID_5670015419452600770" alt="" src="http://2.bp.blogspot.com/-73moq3FEM88/Tq_w-6N1scI/AAAAAAAABR0/CdoUD63unqs/s400/LoadBalanced.png" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/a&gt;&lt;p&gt;By the way, you might be thinking "why would someone have three different endpoints on the same machine to load-balance over?". One good reason is if they are running three different app server instances, to take efficient advantage of the available CPU and memory. This scenario is actually quite common. So now you know how to accomodate it on the Vordel Gateway :-)&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6417581064508926393?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6417581064508926393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6417581064508926393'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/11/how-to-configure-load-balancing-across.html' title='How to configure load-balancing across services on the same host'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-73moq3FEM88/Tq_w-6N1scI/AAAAAAAABR0/CdoUD63unqs/s72-c/LoadBalanced.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1497783779883567448</id><published>2011-10-26T19:15:00.003+01:00</published><updated>2011-10-26T19:24:01.428+01:00</updated><title type='text'>APIEvangelist.com covers Vordel</title><content type='html'>Kin Lane, over at APIEvangelist.com &lt;a href="http://www.apievangelist.com/2011/10/25/the-api-service-provider-i-missed-vordel/"&gt;covers Vordel as an example of an API Service Provider&lt;/a&gt;. He mentions that:&lt;br /&gt;&lt;blockquote&gt;Vordel has an impressive client list including the FBI, Coast Guard and Dunn &amp;amp; Bradstreet, and delivers some progressive integrations, like a deployment of their API gateway for Blackhawk Network, which extends REST services to their business partners like iTunes and Facebook.&lt;br /&gt;&lt;/blockquote&gt;Kin mentions the Blackhawk Network API: For more info on this API deployment, &lt;a href="http://www.vordel.com/resources/10Nov2010FacebookIphoneREST.html"&gt;check out the video of the API gateway deployment here &lt;/a&gt;(skip on to 14 minutes and 30 seconds in, to get to the core info about the API).&lt;a href="http://www.apievangelist.com/2011/10/25/the-api-service-provider-i-missed-vordel"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1497783779883567448?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1497783779883567448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1497783779883567448'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/10/apievangelistcom-covers-vordel.html' title='APIEvangelist.com covers Vordel'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2467006253426318392</id><published>2011-10-21T03:33:00.010+01:00</published><updated>2011-10-21T04:20:06.262+01:00</updated><title type='text'>IdP (Identity Provider) to SP (Service Provider) SAML with the Vordel Gateway</title><content type='html'>Signed SAML tokens are often used to propagate identity information in an API request. Although we're increasingly people using OAuth with the Vordel Gateway, SAML remains the established technology and is not going away anytime soon. Here is an overview of how you can create a signed SAML Assertion at the IdP (Identity Provider) then send this in an API request to a SP (Service Provider). As an extra architectural detail, I am issuing the SAML Assertion using a REST STS interface.&lt;br /&gt;&lt;br /&gt;You'll notice below that I'm using the &lt;a href="http://www.vordel.com/company/news/press/19_10_11.html"&gt;snazzy new Vordel 6.2 release&lt;/a&gt;, because of the new re-arranged search interface on the right, and the new "libraries" (blacklists, whitelists, etc) and "resources" (scripts, schemas, stylesheets, etc) groups on the left.&lt;br /&gt;&lt;br /&gt;Here is the IdP policy. It's very simple. I am firstly authenticating the browser client, then calling out to a REST STS to request a signed SAML Assertion for the user. I'm the validating the signature on the SAML assertion.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/--DdeVK12N_A/TqDdLMe8g9I/AAAAAAAABRA/GW92EXugv7o/s1600/PolicyStudio.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 188px;" src="http://3.bp.blogspot.com/--DdeVK12N_A/TqDdLMe8g9I/AAAAAAAABRA/GW92EXugv7o/s400/PolicyStudio.png" alt="" id="BLOGGER_PHOTO_ID_5665771515631403986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That request to the REST STS? If I hit it directly with a browser, it looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-MYoewIc6HQI/TqDgOWLBOBI/AAAAAAAABRM/5_xQGkMFDsA/s1600/REST-STS.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 334px;" src="http://1.bp.blogspot.com/-MYoewIc6HQI/TqDgOWLBOBI/AAAAAAAABRM/5_xQGkMFDsA/s400/REST-STS.png" alt="" id="BLOGGER_PHOTO_ID_5665774868306671634" border="0" /&gt;&lt;/a&gt;Notice the response is signed and the digital signature is inside the SAML assertion. This means that the XPath used to validate the signature must not take the signature itself into account. The XPath for this is: (//saml:Assertion)/descendant-or-self::node()[not(ancestor-or-self::dsig:Signature)] . This is one of the example XPaths provided with the Vordel Gateway.&lt;br /&gt;&lt;br /&gt;Now, I am placing the signed SAML Assertion into a form variable called SAMLResponse, as shown below. This is what I am sending to the Service Provider (SP):&lt;br /&gt;&lt;br /&gt;&amp;lt;form method="post" action="http://sp.example.org:8080/SAML2/POST" ...&amp;gt;&lt;br /&gt;   &amp;lt;input type="hidden" name="SAMLResponse" value="PHNhbWw6QXNzZXJ0aW9uIHhtbG5zOnNhbWw9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDph&lt;br /&gt;(truncated)&lt;br /&gt;Pg==" /&amp;gt;&lt;br /&gt;   &amp;lt;input type="submit" value="Connect to Service Provider"/&amp;gt;&lt;br /&gt; &amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;At the Service Provider, I Base64-decode the SAML Assertion in the Vordel Gateway, check its signature and the trust of its issuer, and then return the response from my service. I can see all this happening in the Traffic Monitor of the Vordel Gateway. I see the IdP service, the REST STS, and the Service  Provider.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-zvK5pL3-1BQ/TqDbsE4XBoI/AAAAAAAABQo/2Miwo1mfrNk/s1600/TrafficMonitor.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Y8aLp_9Z4AM/TqDbsf1ORhI/AAAAAAAABQw/WHqwNSsW4so/s1600/IdP-Monitoring.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 251px;" src="http://2.bp.blogspot.com/-Y8aLp_9Z4AM/TqDbsf1ORhI/AAAAAAAABQw/WHqwNSsW4so/s400/IdP-Monitoring.png" alt="" id="BLOGGER_PHOTO_ID_5665769888737543698" border="0" /&gt;&lt;/a&gt; I double-click on any of the services, I see the tracking of what happened step-by-step inside the policy. You'll notice that the steps here map to the steps in the first screenshot above. The Traffic Monitor shows the time for each step also, as it runs on my laptop.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-tRpBAwGQ3WQ/TqDinbhrauI/AAAAAAAABRk/hX9-3R8A_JU/s1600/IdP-Monitoring.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 251px;" src="http://3.bp.blogspot.com/-tRpBAwGQ3WQ/TqDinbhrauI/AAAAAAAABRk/hX9-3R8A_JU/s400/IdP-Monitoring.png" alt="" id="BLOGGER_PHOTO_ID_5665777498263874274" border="0" /&gt;&lt;/a&gt;So that shows how you can setup an IdP, SP, and REST STS all on the Vordel Gateway. Now, normally you would not be running all these components on the same machine. But it's certainly a useful exercise to learn about how it all works.--&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2467006253426318392?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2467006253426318392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2467006253426318392'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/10/idp-identity-provider-to-sp-service.html' title='IdP (Identity Provider) to SP (Service Provider) SAML with the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/--DdeVK12N_A/TqDdLMe8g9I/AAAAAAAABRA/GW92EXugv7o/s72-c/PolicyStudio.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4137595763296809049</id><published>2011-10-18T04:26:00.003+01:00</published><updated>2011-10-18T04:46:37.602+01:00</updated><title type='text'>Tablet-tastic new site</title><content type='html'>If I can prise my Android tablet out of my kids hands for a moment, I can show the &lt;a href="http://www.vordel.com/"&gt;new tablet-optimized Vordel site&lt;/a&gt;. Neat new layout, and everything fits nicely on the tablet's screen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-oePc2p29M30/TpzyFPQNuXI/AAAAAAAABQE/mfGvyhAg-tk/s1600/IMG_1206.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 259px;" src="http://4.bp.blogspot.com/-oePc2p29M30/TpzyFPQNuXI/AAAAAAAABQE/mfGvyhAg-tk/s400/IMG_1206.JPG" alt="" id="BLOGGER_PHOTO_ID_5664668603133049202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And here's a tip for Vordel Gateway customers who use tablet computers. If you log into the Gateway's web interface with a tablet, all of the functionality is available to you:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-9hr3xx9bfok/Tpz1pJ1CuZI/AAAAAAAABQc/Ejlxj55El-0/s1600/IMG_1210.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="http://1.bp.blogspot.com/-9hr3xx9bfok/Tpz1pJ1CuZI/AAAAAAAABQc/Ejlxj55El-0/s400/IMG_1210.JPG" alt="" id="BLOGGER_PHOTO_ID_5664672518687078802" border="0" /&gt;&lt;/a&gt;For example, here is the Real-Time Monitoring:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-44U4PuSLqRU/Tpz1ozTKxRI/AAAAAAAABQQ/DYBKbN9dHFc/s1600/IMG_1207.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-44U4PuSLqRU/Tpz1ozTKxRI/AAAAAAAABQQ/DYBKbN9dHFc/s400/IMG_1207.JPG" alt="" id="BLOGGER_PHOTO_ID_5664672512639419666" border="0" /&gt;&lt;/a&gt;Definitely an excuse to buy a tablet computer, if you don't have one already...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4137595763296809049?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4137595763296809049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4137595763296809049'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/10/tablet-tastic-new-site.html' title='Tablet-tastic new site'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-oePc2p29M30/TpzyFPQNuXI/AAAAAAAABQE/mfGvyhAg-tk/s72-c/IMG_1206.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1090417276518354408</id><published>2011-10-10T18:43:00.011+01:00</published><updated>2011-10-11T04:55:30.959+01:00</updated><title type='text'>Video: Three Cloud Computing Case Studies</title><content type='html'>When an organization says they are "using the cloud", it can mean a number of very different things. Using an IaaS service such as Amazon EC2 or Terremark is different from using Google Apps for outsourced email, which is different again from exposing an API into Facebook.&lt;br /&gt;&lt;br /&gt;So here is a video of three Cloud Computing case studies from &lt;a href="http://vordel.com/customers/index.html"&gt;Vordel&lt;/a&gt;&lt;a href="http://vordel.com/customers/index.html"&gt;'s customers&lt;/a&gt;. They cover one each of SaaS, IaaS, and PaaS. In first two examples, customers are connecting up to the Cloud; firstly to Google Apps (for single-sign-on to Google Apps email) and secondly to Terremark to manage virtual servers. In the third example, the connection is from the Cloud (a Facebook app) to a company's APIs. Here's the video, and see if you can spot the Animal House references :-)&lt;br /&gt;&lt;br /&gt;&lt;object width="416" height="345" class="BLOG_video_class" id="BLOG_video-414f9a680a50946" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v11.nonxt4.googlevideo.com/videoplayback?id%3D0414f9a680a50946%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7796CBAF0B687954CCCADD28BD3D1E9AD02F52AA.26020F6B190976BEBB61123A1A0D74B16F916B48%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D414f9a680a50946%26offsetms%3D5000%26itag%3Dw160%26sigh%3DRibSN845CFBuV8rJuQehOlD1MjM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="416" height="345" bgcolor="#FFFFFF"flashvars="flvurl=http://v11.nonxt4.googlevideo.com/videoplayback?id%3D0414f9a680a50946%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7796CBAF0B687954CCCADD28BD3D1E9AD02F52AA.26020F6B190976BEBB61123A1A0D74B16F916B48%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D414f9a680a50946%26offsetms%3D5000%26itag%3Dw160%26sigh%3DRibSN845CFBuV8rJuQehOlD1MjM&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I made the presentation using Prezi, so you can click through the presentation (minus the audio) &lt;a href="http://prezi.com/ev_r6vshvd69"&gt;up on Prezi.com. &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1090417276518354408?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1090417276518354408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1090417276518354408'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/10/video-three-cloud-computing-case.html' title='Video: Three Cloud Computing Case Studies'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-9075835281466048290</id><published>2011-10-04T14:52:00.003+01:00</published><updated>2011-10-04T14:58:05.605+01:00</updated><title type='text'>Today at Oracle Open World - Cloud SaaS, PaaS, and IaaS Case Studies</title><content type='html'>Today I'm presenting three Cloud case studies at 5pm in Room 3022 in Moscone West, here at Oracle Open World. The case studies are one each of:&lt;br /&gt;&lt;br /&gt;- SaaS (Software as a Service) for single sign-on to Google Apps&lt;br /&gt;- PaaS (Platform as a Service) exposing business services as an API&lt;br /&gt;- IaaS (Infrastructure as a Service) applying governance to the Cloud-based virtual machines&lt;br /&gt;&lt;br /&gt;I had originally called my presentation "How to cover your *aaS" but that title didn't make it past the Oracle Open World selection judges :-)&lt;br /&gt;&lt;br /&gt;Hope to see you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-9075835281466048290?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/9075835281466048290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/9075835281466048290'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/10/today-at-oracle-open-world-cloud-saas.html' title='Today at Oracle Open World - Cloud SaaS, PaaS, and IaaS Case Studies'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8517954747487559545</id><published>2011-09-29T04:53:00.003+01:00</published><updated>2011-09-29T05:17:41.192+01:00</updated><title type='text'>Automated API testing</title><content type='html'>If you download the&lt;a href="http://www.vordel.com/products/soapbox/index.html.en"&gt; free SOAPbox testing tool&lt;/a&gt;, you may not realize that (a) you can use it to test REST APIs, and (b) this testing can be automated.&lt;br /&gt;&lt;br /&gt;SOAPbox comes with a command-line tool called sr (Service Request) which will automate requests to an API or Web Service. Here is how you can use it to call the healthcheck API on the Vordel Gateway, when the Gateway is running on the same machine:&lt;br /&gt;&lt;br /&gt;sr -v GET -h localhost -u/healthcheck -s 8080 -p10 -d10&lt;br /&gt;&lt;br /&gt;The "-p 10" means to run ten parallel threads. "-d 10" means to run for ten seconds.&lt;br /&gt;&lt;br /&gt;Definitely a very useful tool to simulate and test API access.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8517954747487559545?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8517954747487559545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8517954747487559545'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/automated-api-testing.html' title='Automated API testing'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2021392535540427379</id><published>2011-09-27T05:30:00.005+01:00</published><updated>2011-09-27T06:25:50.213+01:00</updated><title type='text'>Issuing a SAML Assertion with a simple STS on the Vordel Gateway</title><content type='html'>Many different token formats are used in the world of SOA and Cloud. These include OAuth, UsernameTokens, X.509 Certificates, Kerberos tickets, and custom tokens such as the SiteMinder smsession. All these token types can cause confusion, and also introduce complexity if applications are expected to support them all.&lt;br /&gt;&lt;br /&gt;To deal with this issue, it's a common practice to convert these tokens into a common token type. And, often, this is SAML. How it works is that, following validation, a SAML assertion issued which &lt;span style="font-style: italic;"&gt;asserts &lt;/span&gt;that the token was validated. This means that the token itself no longer needs to be sent with the message. It also means that the recipient system only needs to understand SAML.&lt;br /&gt;&lt;br /&gt;The piece of infrastructure which converts tokens is called a &lt;span style="font-style: italic;"&gt;Security Token Service&lt;/span&gt;. Gunnar Peterson, in his &lt;a href="http://1raindrop.typepad.com/1_raindrop/2010/10/dont-trust-and-verify.html"&gt;Security Architecture for the Cloud, includes an STS as well as a Gateway as core components&lt;/a&gt;. In the case of the Vordel Gateway, a logical STS can be implemented with the Gateway. Let's look at how this is done...&lt;br /&gt;&lt;br /&gt;We'll focus on a common scenario in the field: How a SAML Assertion is in response to a Username Token. The policy below, configured in the &lt;a href="http://www.vordel.com/products/gateway/index.html.en"&gt;Vordel Gateway&lt;/a&gt;, takes in a UsernameToken, validates it, and issues a SAML Assertion in response.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-BclKx99rMi4/ToFRvds6PzI/AAAAAAAABPM/xlQH_wbBe6k/s1600/STS-Example.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 236px;" src="http://3.bp.blogspot.com/-BclKx99rMi4/ToFRvds6PzI/AAAAAAAABPM/xlQH_wbBe6k/s400/STS-Example.png" alt="" id="BLOGGER_PHOTO_ID_5656892482822750002" border="0" /&gt;&lt;/a&gt;Let's look at the chain of filters which are used to achieve this. Starting from the top in the screenshot above, we see:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Register Security Token Service for Monitoring. &lt;/span&gt;This is a "Set Service Name" filter, from the "Monitoring" group in Policy Studio, which I've configured to set the service name as "Security Token Service". Once this name is set, the service is visible in the "services" table of the Gateway's Real-Time Monitoring, as well as in any product which is monitoring the Gateway (e.g. Oracle Enterprise Manager).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Validate WS-Security UsernameToken. &lt;/span&gt;This is a "WS-Security UsernameToken" filter, from the "Authentication" group of Policy Studio. I've configured this to authenticate a user against the Local User Store in the Gateway, for simplicity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Process STS Request. &lt;/span&gt;This is an "STS Web Service" filter, from the "Security Services" group in Policy Studio. This filter processes the incoming RST (Request Security Token) message, and constructs the "scaffolding" of the RSTR (Request Security Token Response) for us to place the SAML assertion into.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Insert SAML Authentication Assertion. &lt;/span&gt;This is an "Insert SAML Authentication Assertion" filter, from the "Authentication" group in Policy Studio. It inserts a SAML Assertion, and the NameIdentifier it places into the SAML assertion is taken from the username in the WS-Security UsernameToken (specifically, it comes from the authentication.subject.id attribute). Note that if you wanted to place a different name in the SAML Assertion, you could, for example, read the value from the message using a "Retrieve from Message" filter and then configure that filter to write the value into the authentication.subject.id attribute.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XML Signature Generation&lt;/span&gt;. This is an "XML Signature Generation", taken from the "Integrity" group in Policy Studio. I've configured it, under the "What to Sign" tab, to sign the SAML Assertion using the pre-built XPath for this purpose. Under "Where to place signature", I've chosen to place it into the WS-Security header for "Current actor/role only".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Return STS response. &lt;/span&gt;This is simply a "Reflect" filter, from the "Utility" group in Policy Studio. I am using this to return a 200 response code to the client.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So let's see this STS policy in action....&lt;br /&gt;&lt;br /&gt;Here is an example message, which you can see is an RST (Request Security Token):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" standalone="no"?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;&lt;br /&gt;&amp;lt;wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-00000132a9381221-0000000001a99295-4"&amp;gt;&amp;lt;wsse:Username&amp;gt;Joe User&amp;lt;/wsse:Username&amp;gt;&amp;lt;wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;vordel&amp;lt;/wsse:Password&amp;gt;&amp;lt;wsu:Created&amp;gt;2011-09-27T04:50:16Z&amp;lt;/wsu:Created&amp;gt;&amp;lt;/wsse:UsernameToken&amp;gt;&lt;br /&gt;&amp;lt;/wsse:Security&amp;gt;&lt;br /&gt;&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&amp;lt;wst:RequestSecurityToken xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"&amp;gt;&amp;lt;wst:RequestType&amp;gt;http://schemas.xmlsoap.org/ws/2005/02/trust/Issue&amp;lt;/wst:RequestType&amp;gt;&amp;lt;wst:TokenType&amp;gt;SAML&amp;lt;/wst:TokenType&amp;gt;&amp;lt;/wst:RequestSecurityToken&amp;gt;&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;I've wired a path in the Gateway so that requests to the path /STS-Example hit this policy:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-pNolyHl817U/ToFZ9aReHFI/AAAAAAAABPU/URxzwYZibq0/s1600/wired.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 235px;" src="http://3.bp.blogspot.com/-pNolyHl817U/ToFZ9aReHFI/AAAAAAAABPU/URxzwYZibq0/s400/wired.png" alt="" id="BLOGGER_PHOTO_ID_5656901518513544274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So, next I use &lt;a href="http://www.vordel.com/products/soapbox/index.html.en"&gt;the free SOAPbox testing tool&lt;/a&gt; to send a request to this policy. As you can see below, I have loaded in my request on the left-hand side. I actually created the UsernameToken using the "Insert WS-Security UsernameToken" option under the "Security" menu. [Note that if you're inserting a UsernameToken to replace an existing one in the message, you must delete the existing one first]. I configured the UsernameToken as shown:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-Fr8bw8RgwM8/ToFeJBDAADI/AAAAAAAABPs/XmMwgjg7pqg/s1600/InsertUsernameToken.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 374px;" src="http://4.bp.blogspot.com/-Fr8bw8RgwM8/ToFeJBDAADI/AAAAAAAABPs/XmMwgjg7pqg/s400/InsertUsernameToken.png" alt="" id="BLOGGER_PHOTO_ID_5656906115946905650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I pressed the little green "play" button on the toolbar to send my request.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-Zflx0ySSZZY/ToFap5Xr3cI/AAAAAAAABPc/6abRoFMfir4/s1600/SOAPbox.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 213px;" src="http://2.bp.blogspot.com/-Zflx0ySSZZY/ToFap5Xr3cI/AAAAAAAABPc/6abRoFMfir4/s400/SOAPbox.png" alt="" id="BLOGGER_PHOTO_ID_5656902282775354818" border="0" /&gt;&lt;/a&gt;You can see on the right that the response back to me is a signed SAML Assertion. That's all that's involved in creating a simple STS with the Vordel Gateway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2021392535540427379?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2021392535540427379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2021392535540427379'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/issuing-saml-assertion-with-simple-sts.html' title='Issuing a SAML Assertion with a simple STS on the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-BclKx99rMi4/ToFRvds6PzI/AAAAAAAABPM/xlQH_wbBe6k/s72-c/STS-Example.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7126790732032360249</id><published>2011-09-26T02:58:00.003+01:00</published><updated>2011-09-26T03:48:08.124+01:00</updated><title type='text'>Authentication using custom tokens with the Vordel Gateway</title><content type='html'>Although standards like WS-Security exist, it's a fact of life that many organizations use custom authentication tokens to authenticate clients. This happens for a variety of reasons, such as the fact that WS-Security presupposes the usage of SOAP, and that just isn't an option for many people in the world of lightweight REST-based APIs.&lt;br /&gt;&lt;br /&gt;Supporting custom authentication tokens is simple with the Vordel Gateway. It  consists of two steps in Policy Studio:&lt;br /&gt;&lt;br /&gt;1) Read in the username and password into two variables (called "attributes" in the Vordel Gateway).&lt;br /&gt;&lt;br /&gt;If you want to read in a username from a HTTP header, for example, then drag in a "Retrieve from HTTP Header" filter, and type in the header name (e.g. "Username"), and then the attribute ID you want the value to be read into (e.g. "authentication.subject.id"). If you want the value to come from the Query-String (i.e. from the name-value pairs after the "?" in the URL), the check the box called "Use Query String Parameters".&lt;br /&gt;&lt;br /&gt;If you want to read in a username from the message itself, use a "Retrieve from Message" filter, and then configure it with the XPath used to find the value. &lt;span style="font-weight: bold;"&gt;Tip&lt;/span&gt;: Save a copy of a message, then use the XPath Wizard (hit the little "magic wand" icon) to open it and tell the Gateway where your custom token is.&lt;br /&gt;&lt;br /&gt;Then a similar procedure to read in the password from the message header (the "Retrieve from HTTP Header" filter) or message body (the "Retrieve from Message" filter). Usually I read this into the attribute "authentication.subject.password".&lt;br /&gt;&lt;br /&gt;2) Drag in an "Attribute Authentication" filter (you can find this in the "Authentication" group) and chain it after the filters you setup before. In the example below, you can see that I've read the username and password into the attributes "authentication.subject.id" and "authentication.subject.password" respectively. I now ask the Gateway to validate these credentials.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-eVPmhtpveq4/Tn_cZHkeziI/AAAAAAAABPE/Ji6bL0B0e9A/s1600/customauth.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/-eVPmhtpveq4/Tn_cZHkeziI/AAAAAAAABPE/Ji6bL0B0e9A/s400/customauth.jpg" alt="" id="BLOGGER_PHOTO_ID_5656481981087534626" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7126790732032360249?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7126790732032360249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7126790732032360249'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/authentication-using-custom-tokens-with.html' title='Authentication using custom tokens with the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-eVPmhtpveq4/Tn_cZHkeziI/AAAAAAAABPE/Ji6bL0B0e9A/s72-c/customauth.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3950186980304204682</id><published>2011-09-23T23:36:00.003+01:00</published><updated>2011-09-23T23:57:59.155+01:00</updated><title type='text'>Catch the Vordel and Forrester Webinar next week: The Expanding role of the Gateway in a Modern IT Architecture</title><content type='html'>Randy Heffner, Forrester analyst, and Vordel are presenting a webinar next Thursday at 11am Eastern on "&lt;a href="http://www.vordel.com/research/The%20Expanding%20role%20of%20the%20Gateway%20in%20a%20Modern%20IT%20Architecture.html"&gt;The Expanding role of the Gateway in a Modern IT Architecture&lt;/a&gt;". It's a good chance to see how APIs and the Cloud are changing the game, and how Gateways apply now more than ever.&lt;br /&gt;&lt;br /&gt;Attendees will learn how to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Deploy Enterprise Applications Beyond The Network Perimeter&lt;/li&gt;&lt;li&gt;    Consume Cloud Services Without Losing Control or Compromising Security&lt;/li&gt;&lt;li&gt;    Secure All Application Connections Using Enterprise Security Infrastructure&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.vordel.com/research/The%20Expanding%20role%20of%20the%20Gateway%20in%20a%20Modern%20IT%20Architecture.html"&gt;Here is the free registration page.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3950186980304204682?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3950186980304204682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3950186980304204682'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/catch-vordel-and-forrester-webinar-next.html' title='Catch the Vordel and Forrester Webinar next week: The Expanding role of the Gateway in a Modern IT Architecture'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2237018778459117568</id><published>2011-09-22T09:48:00.005+01:00</published><updated>2011-09-22T10:06:46.689+01:00</updated><title type='text'>Free Vordel Workshop next month - Hotel Nikko, San Francisco - week of Oracle Open World</title><content type='html'>If you're in San Francisco for Oracle Open World next month, you can catch the wave, get your feet wet, and partake of other surfing metaphors at the free Vordel Workshop. This workshop will cover many Vordel tricks+tips,  with a particular focus on Oracle interop. &lt;a href="http://www.vordel.com/research/immerse.html"&gt;Here's the link to register&lt;/a&gt;, and here's the run-down:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hands-on &lt;/b&gt;exercises and demonstration of using Vordel Application Gateway to:  &lt;ul id="nested"&gt;&lt;li&gt;Convert SOAP services to REST to enable mobile and Web 2.0 applications&lt;/li&gt;&lt;li&gt;Connect Cloud Applications to enterprise identity management for single sign-on&lt;/li&gt;&lt;li&gt;Leverage Oracle Access Manager to control access to Cloud based services&lt;/li&gt;&lt;li&gt;Enforce fine-grained authorization policies from Oracle Entitlements Server &lt;/li&gt;&lt;li&gt;Protect Oracle Service Bus from message level threats&lt;/li&gt;&lt;li&gt;Speed up your Oracle SOA applications by offloading XML processing and security tasks&lt;/li&gt;&lt;li&gt;Throttle service traffic and manage quota in real-time&lt;/li&gt;&lt;li&gt;Protect and audit Siebel's SOAP and REST service interfaces&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Oh, and you get free stuff:&lt;br /&gt;&lt;ul id="nested"&gt;&lt;li&gt;A free developer license to Vordel Application Gateway  &lt;/li&gt;&lt;li&gt;Entry into a prize draw for a Pico Projector&lt;/li&gt;&lt;li&gt;A 16Gb USB 2.0 Hard drive&lt;/li&gt;&lt;li&gt;A limited edition Vordel Immerse T-shirt.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2237018778459117568?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2237018778459117568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2237018778459117568'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/free-vordel-workshop-next-month-hotel.html' title='Free Vordel Workshop next month - Hotel Nikko, San Francisco - week of Oracle Open World'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8917504862799370862</id><published>2011-09-21T09:46:00.009+01:00</published><updated>2011-09-21T10:41:17.488+01:00</updated><title type='text'>Content-based routing, with conversion for SOAP to REST, in the Vordel Gateway</title><content type='html'>The &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Vordel Gateway &lt;/a&gt;has some really neat features which make it very easy to do content-based routing based on parameters in a SOAP message, and to use these parameters to construct a REST request. Here is an example of how this is setup. First, I register the WSDL service (a &lt;a href="http://docbox.etsi.org/TISPAN/Open/OSA/ParlayX21.html"&gt;Parlay-X&lt;/a&gt; AmountCharging Service) in the Web Service Repository in the Vordel Policy Studio, as shown below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-N_jPKrVznnE/Tnmr5wgfUZI/AAAAAAAABOU/xgnogJd_j5s/s1600/RegisterInWebServiceRepository.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 207px;" src="http://2.bp.blogspot.com/-N_jPKrVznnE/Tnmr5wgfUZI/AAAAAAAABOU/xgnogJd_j5s/s400/RegisterInWebServiceRepository.png" alt="" id="BLOGGER_PHOTO_ID_5654739815902433682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Next, in the policy which is called in the Gateway for this service, I drag in a "Retrieve attributes" filter. I the used the XPath wizard to open an example of the Parlay-X message, and I choose the "EndUserIdentifier" value by navigating to it. This is shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-32rWzO8bkfQ/Tnmk6F_wNwI/AAAAAAAABN0/862MHi9c-V8/s1600/XPathWizard.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 318px;" src="http://4.bp.blogspot.com/-32rWzO8bkfQ/Tnmk6F_wNwI/AAAAAAAABN0/862MHi9c-V8/s400/XPathWizard.png" alt="" id="BLOGGER_PHOTO_ID_5654732125089314562" border="0" /&gt;&lt;/a&gt;What happens now is that the value from the endUserIdentifier XML element is read into an attibute called "EndUserIdentifier". I then follow this with a "Switch on Attribute Value" filter, to switch based on the content of this attribute. You can see in the circuit view below that I am switching on the attribute value after I read in the attribute value:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-9Wj4IqDZyyw/Tnmm6hqmaoI/AAAAAAAABOM/oAx4pamWfu4/s1600/SwitchOnContent.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://4.bp.blogspot.com/-9Wj4IqDZyyw/Tnmm6hqmaoI/AAAAAAAABOM/oAx4pamWfu4/s400/SwitchOnContent.png" alt="" id="BLOGGER_PHOTO_ID_5654734331540040322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here is a view of the "Switch on Attribute Value" filter. I am looking at the value of the "EndUserIdentifier" value, and checking does it start with certain values. In this case, I am looking at the zip code value from a phone number in this element.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-wtWVukC7B_0/Tnmk50hMJlI/AAAAAAAABNs/WZHtZZENOzg/s1600/switch.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://3.bp.blogspot.com/-wtWVukC7B_0/Tnmk50hMJlI/AAAAAAAABNs/WZHtZZENOzg/s400/switch.jpg" alt="" id="BLOGGER_PHOTO_ID_5654732120397719122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Finally, I am placing the EndUserIdentifier into a REST request to be sent to a REST API (in this case, the GSMA API):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-cZ7ll0AAHA4/Tnmk59BY1_I/AAAAAAAABNk/Zr7Cvij6d6g/s1600/SendRESTrequest.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 292px; height: 400px;" src="http://3.bp.blogspot.com/-cZ7ll0AAHA4/Tnmk59BY1_I/AAAAAAAABNk/Zr7Cvij6d6g/s400/SendRESTrequest.png" alt="" id="BLOGGER_PHOTO_ID_5654732122680252402" border="0" /&gt;&lt;/a&gt;The API parameters are created in a "Create REST Request" filter, as shown below. This is a very convenient way to construct a REST API request in the Vordel Gateway. As you can see, the EndUserIdentifier is being populated dynamically:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-vJv8AVD9T-A/Tnmk5jba15I/AAAAAAAABNc/hNySoi09KRI/s1600/CreateRESTrequest.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 389px; height: 400px;" src="http://4.bp.blogspot.com/-vJv8AVD9T-A/Tnmk5jba15I/AAAAAAAABNc/hNySoi09KRI/s400/CreateRESTrequest.jpg" alt="" id="BLOGGER_PHOTO_ID_5654732115810113426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I then use &lt;a href="http://vordel.com/products/soapbox/index.html"&gt;Vordel SOAPbox (free download)&lt;/a&gt; to test this, by sending messages to the SOAP service:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-zT11pawR0dQ/Tnml5tGC68I/AAAAAAAABN8/EqUiA8zxosI/s1600/SOAPbox.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 260px;" src="http://4.bp.blogspot.com/-zT11pawR0dQ/Tnml5tGC68I/AAAAAAAABN8/EqUiA8zxosI/s400/SOAPbox.png" alt="" id="BLOGGER_PHOTO_ID_5654733217916447682" border="0" /&gt;&lt;/a&gt;In the Real-Time Monitoring of the Vordel Gateway, you can see the Gateway is now dynamically reading the value of the EndUserIdentifier element:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-dtTySg_l5gQ/TnmmkTN_nMI/AAAAAAAABOE/KGauajDehq0/s1600/RealTimeMonitoring.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 181px;" src="http://4.bp.blogspot.com/-dtTySg_l5gQ/TnmmkTN_nMI/AAAAAAAABOE/KGauajDehq0/s400/RealTimeMonitoring.png" alt="" id="BLOGGER_PHOTO_ID_5654733949704838338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Contact &lt;a href="mailto://info@vordel.com"&gt;info@vordel.com &lt;/a&gt;to get a copy of the Vordel Gateway to test this out for yourself...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-32rWzO8bkfQ/Tnmk6F_wNwI/AAAAAAAABN0/862MHi9c-V8/s1600/XPathWizard.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8917504862799370862?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8917504862799370862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8917504862799370862'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/content-based-routing-with-conversion.html' title='Content-based routing, with conversion for SOAP to REST, in the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-N_jPKrVznnE/Tnmr5wgfUZI/AAAAAAAABOU/xgnogJd_j5s/s72-c/RegisterInWebServiceRepository.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8340545714501309112</id><published>2011-09-16T06:18:00.003+01:00</published><updated>2011-09-16T06:42:37.716+01:00</updated><title type='text'>How to authenticate then issue a SAML assertion in the Vordel Gateway</title><content type='html'>Issuing a SAML assertion into a message with the &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Vordel Gateway &lt;/a&gt;is quite straightforward. If you follow an authentication filter with an "Insert SAML Authentication Assertion" filter, then a SAML assertion will be placed into the message after you've authenticated the client. Then, to call the target Web Service, you can use a "Connect to URL" filter, which results in the Gateway calling the target Web Service, with the client message which now includes the SAML assertion.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Sab7bs4ShtI/TnLexW_fLFI/AAAAAAAABNM/MpbDX_e9JKY/s1600/AuthNthenSAML.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://1.bp.blogspot.com/-Sab7bs4ShtI/TnLexW_fLFI/AAAAAAAABNM/MpbDX_e9JKY/s400/AuthNthenSAML.png" alt="" id="BLOGGER_PHOTO_ID_5652825421870214226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What about putting SAML attributes in that assertion? If you have authenticated the client against SiteMinder or Oracle Access Manager, for example, then you can check the "Insert SAML Attribute Statement" checkbox on the "advanced" tab of the SAML filter, and it results in the Gateway inserting in the SiteMinder smsession, or the Oracle obsso token, into an attribute statement in the SAML assertion.&lt;br /&gt;&lt;br /&gt;Below you can see an example of a message sent into the Vordel Gateway, and following that you see the message after the SAML assertion has been inserted:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;soapenv:envelope soapenv="http://schemas.xmlsoap.org/soap/envelope/" tem="http://tempuri.org/"&amp;gt;&lt;br /&gt;&amp;lt;soapenv:header&amp;gt;&lt;br /&gt;&amp;lt;soapenv:body&amp;gt;&lt;br /&gt;&amp;lt;tem:getdata&amp;gt;&lt;br /&gt;   &amp;lt;tem:value&amp;gt;123&amp;lt;/tem:value&amp;gt;&lt;br /&gt;&amp;lt;/tem:getdata&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:body&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:header&amp;gt;&amp;lt;/soapenv:envelope&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&amp;lt;!--?xml version="1.0" encoding="utf-8"?--&amp;gt;&lt;br /&gt;&amp;lt;soapenv:envelope soapenv="http://schemas.xmlsoap.org/soap/envelope/" tem="http://tempuri.org/"&amp;gt;&lt;br /&gt;&amp;lt;soapenv:header&amp;gt;&lt;br /&gt;  &amp;lt;wsse:security wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;&lt;br /&gt;      &amp;lt;saml:assertion saml="urn:oasis:names:tc:SAML:2.0:assertion" id="Id-0001316150618498-71f75ed54e72dd5a12116c6c-2" issueinstant="2011-09-16T05:23:38Z" version="2.0"&amp;gt;&lt;br /&gt;          &amp;lt;saml:issuer format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"&amp;gt;&lt;br /&gt;              MyCompany&lt;br /&gt;          &amp;lt;/saml:issuer&amp;gt;&lt;br /&gt;          &amp;lt;saml:subject&amp;gt;&lt;br /&gt;              &amp;lt;saml:nameid format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"&amp;gt;&lt;br /&gt;                  demo&lt;br /&gt;              &amp;lt;/saml:nameid&amp;gt;&lt;br /&gt;              &amp;lt;saml:subjectconfirmation method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches"&amp;gt;&lt;br /&gt;          &amp;lt;/saml:subjectconfirmation&amp;gt;&amp;lt;/saml:subject&amp;gt;&lt;br /&gt;          &amp;lt;saml:conditions notbefore="2011-09-16T05:23:37Z" notonorafter="2011-09-16T05:28:37Z"&amp;gt;&lt;br /&gt;          &amp;lt;saml:authnstatement authninstant="2011-09-16T05:23:38Z"&amp;gt;&lt;br /&gt;              &amp;lt;saml:authncontext&amp;gt;&lt;br /&gt;                  &amp;lt;saml:authncontextclassref&amp;gt;&lt;br /&gt;                      urn:oasis:names:tc:SAML:2.0:ac:classes:Password&lt;br /&gt;                  &amp;lt;/saml:authncontextclassref&amp;gt;&lt;br /&gt;              &amp;lt;/saml:authncontext&amp;gt;&lt;br /&gt;          &amp;lt;/saml:authnstatement&amp;gt;&lt;br /&gt;      &amp;lt;/saml:conditions&amp;gt;&amp;lt;/saml:assertion&amp;gt;&lt;br /&gt;  &amp;lt;/wsse:security&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:header&amp;gt;&lt;br /&gt;&amp;lt;soapenv:body&amp;gt;&lt;br /&gt;  &amp;lt;tem:getdata&amp;gt;&lt;br /&gt;      &amp;lt;tem:value&amp;gt;123&amp;lt;/tem:value&amp;gt;&lt;br /&gt;  &amp;lt;/tem:getdata&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:body&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:envelope&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;How does this relate to an &lt;a href="http://vordel.com/solutions/security_token_services.html"&gt;STS (Security Token Service)&lt;/a&gt;? The answer is that you can certainly see the issuance of that SAML assertion in the Vordel Gateway as an example of a security token being issued. Do you need to call out to an STS to do this? No. In this case the Gateway itself is issuing the SAML assertion, without any needs for callouts to anywhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8340545714501309112?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8340545714501309112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8340545714501309112'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/how-to-authenticate-then-issue-saml.html' title='How to authenticate then issue a SAML assertion in the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Sab7bs4ShtI/TnLexW_fLFI/AAAAAAAABNM/MpbDX_e9JKY/s72-c/AuthNthenSAML.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5337667087722754237</id><published>2011-09-12T21:51:00.002+01:00</published><updated>2011-09-12T21:54:40.496+01:00</updated><title type='text'>You know you're a geek when...</title><content type='html'>You know you're a geek when the rental car company offers you a free upgrade to the 2012 Ford Mustang, and you agree primarily because you know it comes with a handy USB charger in the center console...&lt;br /&gt;&lt;br /&gt;[You also know you're a Droid user when you're constantly on the lookout for ways to keep your phone charged].&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5337667087722754237?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5337667087722754237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5337667087722754237'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/you-know-youre-geek-when.html' title='You know you&apos;re a geek when...'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5759201727141052401</id><published>2011-09-03T22:34:00.003+01:00</published><updated>2011-09-03T22:48:03.658+01:00</updated><title type='text'>Speaking at Oracle Open World - Tuesday October 4th in San Francisco</title><content type='html'>It's not often I am on the same roster as Sting and Tom Petty, but at Oracle Open World I am. Admittedly Sting and Tom Petty will be &lt;a href="http://www.oracle.com/openworld/connect/face-to-face/appreciation-event/index.html"&gt;performing to tens of thousands of people on Treasure Island,  &lt;/a&gt;whereas I will be speaking at the much less dramatic setting of a Moscone Center auditorium the previous day.&lt;br /&gt;&lt;br /&gt;My presentation is titled "Cloud Security Case Studies of SaaS, PaaS, and IaaS". The talk comes under the "&lt;a href="http://www.oracle.com/openworld/oow11-focuson-im-459795.pdf"&gt;Focus on Identity Management&lt;/a&gt;" list talks, and on that list I see a whole bunch of talks which I hope I will have the opportunity to attend. The conference is always very busy with many customers present, so that may be difficult, but I will try.&lt;br /&gt;&lt;br /&gt;If you're going to be at OOW, please let me know, and I hope to see you there!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5759201727141052401?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5759201727141052401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5759201727141052401'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/speaking-at-oracle-open-world-tuesday.html' title='Speaking at Oracle Open World - Tuesday October 4th in San Francisco'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3051233334173190764</id><published>2011-09-02T04:45:00.001+01:00</published><updated>2011-09-02T05:25:30.363+01:00</updated><title type='text'>CRLs and browsers, and how a Gateway can help</title><content type='html'>&lt;a href="http://www.bgr.com/author/zachepstein/"&gt;Zack Epstein &lt;/a&gt;reports on the DigiNotar certificate breach, noting that:&lt;br /&gt;&lt;blockquote&gt;The compromised certificates have all revoked by DigiNotar, but not all  Web browsers check for revoked certificates so the impact of this breach  will likely be ongoing for some time.&lt;br /&gt;&lt;a href="http://www.bgr.com/2011/09/01/ssl-certificate-breach-extends-beyond-google-over-200-certificates-compromised/"&gt;http://www.bgr.com/2011/09/01/ssl-certificate-breach-extends-beyond-google-over-200-certificates-compromised/&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;It is an understatement to say that "not all  Web browsers check for revoked certificates". Very few do. If you're using Firefox, take a look at Tools -&amp;gt; Options, then under the Advanced tab (not the "Security" tab as you might expect) click on "Revocation Lists". How many Certification Revocation Lists (CRLs) are listed there? Zero, right? Hint: You can add some CRLs from Verisign by clicking on the links on this page: &lt;a href="http://www.verisign.com/repository/crl.html"&gt;http://www.verisign.com/repository/crl.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Newly minted browser versions have the problematic certs removed from their trust lists. But, if browser manufacturers made it easier for people to use CRLs by default in their browsers, then that would not matter.&lt;br /&gt;&lt;br /&gt;But are people really likely to manually add these CRLs? Probably not. Users should not have to know about the difference between the root certificate trust list in the browser, and a CRL. All of this conspires to make security hard for users.&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Gateway &lt;/a&gt;can help. When web traffic passes through a Gateway, &lt;span style="font-style: italic;"&gt;it &lt;/span&gt;can check the CRL lists, and disallow traffic to a host using a revoked certificate. In the &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Vordel Gateway&lt;/a&gt;, configuring CRL checking is a matter of dragging-and-dropping  CRL filter onto the canvas of a default policy. Now it checks the SSL certs against the CRLs, without changing anything on your users browsers. With the current situation where setting up CRL checking in a browser is not there by default, and way more complex than it needs to be, a Gateway is a pragmatic solution to address this problem.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3051233334173190764?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3051233334173190764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3051233334173190764'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/09/zack-epstein-reports-on-diginotar.html' title='CRLs and browsers, and how a Gateway can help'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-775387438082920571</id><published>2011-08-30T17:32:00.002+01:00</published><updated>2011-08-30T18:06:05.591+01:00</updated><title type='text'>Enabling Single Sign-On across Hybrid Clouds Managed by VMware vCloud Director 1.5</title><content type='html'>We're very excited here at Vordel to announce, around VMworld 2011, that Vordel provides the capability to seamlessly log users into Cloud-based systems managed by VMware vCloud Director 1.5.&lt;br /&gt;&lt;br /&gt;Single Sign-on is one of those things where the user's point of view is very different from the implementer. From the user's point of view, it "just works". A user logs in, clicks on a link, and does not have to log in a second time. From an implementer's point out view, there is a whole raft of underlying technologies in play. This Single Sign-on functionality which Vordel provides for VMware vCloud Director makes use of the long of identity management integrations provided by Vordel, including: CA SiteMinder, Oracle Identity Management, RSA, Entrust, Microsoft ADFS, and many others. But all of that underlying technology is in order to enable simplicity for the user.&lt;br /&gt;&lt;br /&gt;Read more about it here:&lt;a href="http://vordel.com/news/press/30_08_11.html"&gt;&lt;br /&gt;http://vordel.com/news/press/30_08_11.html&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-775387438082920571?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/775387438082920571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/775387438082920571'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/enabling-single-sign-on-across-hybrid.html' title='Enabling Single Sign-On across Hybrid Clouds Managed by VMware vCloud Director 1.5'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3177457637782860165</id><published>2011-08-30T17:18:00.003+01:00</published><updated>2011-08-30T17:25:41.040+01:00</updated><title type='text'>Cloud Computing webinar presentation... using the Cloud</title><content type='html'>I'm listening to Wolfgang Kandek (CTO at Qualys) give an excellent overview of Cloud Computing on&lt;a href="http://web2present.com/upcoming-webinars-details.php?id=10"&gt; today's webinar series &lt;/a&gt;.  I am speaking in an hour's time on this same series. Take a look at how Wolfgang is showing his presentation, in the screenshot below. Notice something? It's itself using the Cloud itself: Using Google Apps. Not Powerpoint. The cloud even permeates my desktop below, since I am running a VMware Micro Cloud Foundary VM in VMware Player. Many times when we talk about a trend, there can be a certain amount of hype. But in this case, it's very real since we're all using the Cloud, even for a presentation about the Cloud :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-0ZPU5hYhxgU/Tl0N6oHn4mI/AAAAAAAABM8/XzAKslVOImU/s1600/CloudComputing.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;" src="http://1.bp.blogspot.com/-0ZPU5hYhxgU/Tl0N6oHn4mI/AAAAAAAABM8/XzAKslVOImU/s400/CloudComputing.png" alt="" id="BLOGGER_PHOTO_ID_5646684808645436002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-0YuM7_iCFRY/Tl0Nel1xv1I/AAAAAAAABM0/JdTRSapqhSI/s1600/CloudComputing.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3177457637782860165?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3177457637782860165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3177457637782860165'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/cloud-computing-webinar-presentation.html' title='Cloud Computing webinar presentation... using the Cloud'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-0ZPU5hYhxgU/Tl0N6oHn4mI/AAAAAAAABM8/XzAKslVOImU/s72-c/CloudComputing.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5418121609467257907</id><published>2011-08-29T13:14:00.009+01:00</published><updated>2011-12-03T04:33:56.943Z</updated><title type='text'>Upcoming webinar with Qualys and CSA: "Cloud Computing: Security, compliance and Implementation Aspects"</title><content type='html'>I'm speaking on a webinar tomorrow (August 30) alongside Wolfgang Kandek from Qualys and Steve Markey from the Cloud Security Alliance. The topic is "Cloud Computing: Security, compliance and Implementation Aspects".  The full session starts at 12pm Eastern and my section is at 1.30pm Eastern. The topics we're covering are:&lt;br /&gt;&lt;br /&gt;■Who owns the Security problem?&lt;br /&gt;■What Cloud Computing security aspects should you consider?&lt;br /&gt;■What is the purpose of these cloud computing security aspects and which solutions are available?&lt;br /&gt;■Will I still be in control of the cloud computing security aspects?&lt;br /&gt;■How about Cloud data assurance and compliance?&lt;br /&gt;&lt;br /&gt;Table of Speakers:&lt;br /&gt;&lt;br /&gt;Wolfgang Kandek: Chief Technical Officer at Qualys&lt;br /&gt;&lt;img style="width: 71px; height: 95px;" src="http://3.bp.blogspot.com/-F0FzEF_ng4I/TluDZjH3V4I/AAAAAAAABMc/fu0kDLBoU4k/s400/Wolfgang_Kandek_%2528CTO%2529.jpg" alt="" id="BLOGGER_PHOTO_ID_5646251032787244930" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Steve Markey: Chapter Officer at Cloud Security Alliance (US)&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 80px; height: 80px;" src="http://1.bp.blogspot.com/-rMgYWuT2bkc/TluDlapCP-I/AAAAAAAABMs/q1frH35-aMo/s400/Steve%2BMarkey.jpg" alt="" id="BLOGGER_PHOTO_ID_5646251236668882914" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Mark O’Neill: CTO at Vordel and author of book "Web Services Security"&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 80px; height: 87px;" src="http://2.bp.blogspot.com/-Sf3LTqquFCw/TtmmUiq0VHI/AAAAAAAABWs/kdPHlVAZJhY/s400/MarkONeill-Twitter.png" alt="" id="BLOGGER_PHOTO_ID_5681755276738581618" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Sign up here: &lt;a href="http://web2present.com/upcoming-webinars-details.php?id=10"&gt;http://web2present.com/upcoming-webinars-details.php?id=10&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5418121609467257907?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5418121609467257907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5418121609467257907'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/upcoming-webinar-with-qualys-and-csa.html' title='Upcoming webinar with Qualys and CSA: &quot;Cloud Computing: Security, compliance and Implementation Aspects&quot;'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-F0FzEF_ng4I/TluDZjH3V4I/AAAAAAAABMc/fu0kDLBoU4k/s72-c/Wolfgang_Kandek_%2528CTO%2529.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4092033482984002248</id><published>2011-08-24T08:56:00.002+01:00</published><updated>2011-08-24T09:00:43.830+01:00</updated><title type='text'>Request throttling and concurrent connection throttling</title><content type='html'>My colleague Ian Marsh has &lt;a href="http://enterprisegateway.wordpress.com/2011/08/23/throttling-a-variation/"&gt;a really useful new post on request throttling and concurrent connection throttling (not the same thing, as Ian explains).&lt;/a&gt; Check it out, it includes info on how the Vordel Gateway works with an Oracle product for providing a non-blocking lock on the count of concurrently executing requests: &lt;a href="http://enterprisegateway.wordpress.com/2011/08/23/throttling-a-variation/"&gt;http://enterprisegateway.wordpress.com/2011/08/23/throttling-a-variation/&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4092033482984002248?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4092033482984002248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4092033482984002248'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/request-throttling-and-concurrent.html' title='Request throttling and concurrent connection throttling'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7371491849358522975</id><published>2011-08-12T12:52:00.002+01:00</published><updated>2011-08-12T12:57:02.790+01:00</updated><title type='text'>Lightning strikes the cloud (or does it?)</title><content type='html'>&lt;a href="http://www.siliconrepublic.com/"&gt;Silicon Republic&lt;/a&gt; covers the recent outage at Amazon's Dublin (EU-West) data center for Amazon Web Services. Initially it was blamed on lightning, but it looks like that was not the full story:&lt;br /&gt;&lt;blockquote&gt;In the hours following the incident, Amazon originally blamed a lightning strike and an explosion which knocked out a generator leading to loss of power, which disrupted service for Amazon customers for up to 48 hours in some cases.&lt;br /&gt;&lt;br /&gt;Electricity provider ESB Networks has provided a different version of events. A spokesperson told Siliconrepublic.com that the problem was due to a fault in one of its substations at Citywest and that power would have been available from an alternate source within a millisecond.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.siliconrepublic.com/strategy/item/23084-mystery-surrounds-outage-at/"&gt;http://www.siliconrepublic.com/strategy/item/23084-mystery-surrounds-outage-at/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7371491849358522975?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7371491849358522975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7371491849358522975'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/lightning-strikes-cloud-or-does-it.html' title='Lightning strikes the cloud (or does it?)'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7072903953275711006</id><published>2011-08-11T17:24:00.006+01:00</published><updated>2011-08-11T22:26:29.461+01:00</updated><title type='text'>A second chance to catch the "Bridging Security from the Enterprise to the Cloud" webinar</title><content type='html'>Missed the "Bridging Security from the Enterprise to the Cloud" webinar earlier today? Watch it below:&lt;br /&gt;&lt;br /&gt;&lt;object type='application/x-shockwave-flash' data='http://www.brighttalk.com/clients/flashplatform/viewerdefault/loader.swf' width='415' height='365'&gt;&lt;param name='movie' value='http://www.brighttalk.com/clients/flashplatform/viewerdefault/loader.swf'&gt;&lt;/param&gt;&lt;param name='allowscriptaccess' value='always'&gt;&lt;/param&gt;&lt;param name='allowfullscreen' value='true'&gt;&lt;/param&gt;&lt;param name='wmode' value='transparent'&gt;&lt;/param&gt;&lt;param name='flashvars' value='channelid=679&amp;commid=33165&amp;autoStart=false&amp;fromdc=false&amp;css='&gt;&lt;/param&gt;&lt;a href='http://www.brighttalk.com/channel/679'&gt;A BrightTALK Channel&lt;/a&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7072903953275711006?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7072903953275711006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7072903953275711006'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/second-chance-to-catch-bridging.html' title='A second chance to catch the &quot;Bridging Security from the Enterprise to the Cloud&quot; webinar'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3747214267366389269</id><published>2011-08-10T01:53:00.004+01:00</published><updated>2011-08-10T02:11:36.984+01:00</updated><title type='text'>Upcoming Webcast - Bridging security from the enterprise to the cloud</title><content type='html'>&lt;div&gt;This Thursday there is not one but &lt;em&gt;two &lt;/em&gt;Vordel webinars, one on &lt;a href="https://www2.gotomeeting.com/register/741348594"&gt;BNSF's migration of their Cisco Ace XML Gateway (AXG) appliances to Vordel&lt;/a&gt;, and one on &lt;a href="http://www.brighttalk.com/webcast/679/32827"&gt;how to bridge security from the enterprise to the cloud.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've already &lt;a href="http://www.soatothecloud.com/2011/07/mapping-cloud-cisco-ace-upgrade-to.html"&gt;blogged about the first webinar, which will cover the process by which BNSF (Burlington Northern Santa Fe) Railway chose Vordel to replace its Cisco AXG gateways.  &lt;/a&gt;So here's the scoop on the second one:&lt;br /&gt;&lt;br /&gt;In the "How to bridge security from the enterprise to the cloud" webinar, I'll be talking about the pattern of "bring your own identity" for Cloud access. We are all familiar with leveraging existing identities (login with Facebook, login with Google ID) for cloud-based apps. In the enterprise world, the challenge is to allow employees to leverage their existing on-premise identities, such as their logins into Active Directory or other IdM (identity management) infrastructure. It is "bring your own enterprise identity". This is an important aspect of what it means, in practice, to bridge security from the enterprise to the cloud.&lt;br /&gt;&lt;br /&gt;Follow this link to register, and look forward to seeing you on the webinar this Thursday: &lt;a href="http://www.brighttalk.com/webcast/679/32827"&gt;http://www.brighttalk.com/webcast/679/32827&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3747214267366389269?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3747214267366389269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3747214267366389269'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/upcoming-webcast-bridging-security-from.html' title='Upcoming Webcast - Bridging security from the enterprise to the cloud'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7012229918449778296</id><published>2011-08-03T13:32:00.009+01:00</published><updated>2011-08-03T14:05:21.705+01:00</updated><title type='text'>How to filter SOAP MTOM/SWA attachments in the Vordel Gateway</title><content type='html'>Filtering SOAP attachments is something which is a very common feature implemented on a &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Gateway such as the Vordel Gateway&lt;/a&gt;. Here is a step-by-step guide to how to set this up:&lt;br /&gt;&lt;br /&gt;If you've already registered a WSDL, skip forward to step 4.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step  1:&lt;/span&gt; Open the Vordel Policy Studio. Connect to the Gateway you wish to configure  your policy on. Either connect directly or login through Policy Director (which allows you to push configuration to multiple Gateways at once).&lt;br /&gt;&lt;br /&gt;Once you connect, choose "Edit Active Configuration".&lt;br /&gt;&lt;br /&gt;You  will see the screen below. New Web Services are  registered in the "Web Service Repository" which is accessed under the  "Policies" group on the left-hand-side.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-c9J4uWagx-4/TjlAiUH7OdI/AAAAAAAABL0/QwyTjhZ6B10/s1600/OpenPolicyStudio.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 186px;" src="http://4.bp.blogspot.com/-c9J4uWagx-4/TjlAiUH7OdI/AAAAAAAABL0/QwyTjhZ6B10/s400/OpenPolicyStudio.jpg" alt="" id="BLOGGER_PHOTO_ID_5636607366892566994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2:&lt;/span&gt; Right-click on  the "Web Service Repository" and choose "Register Web Service". Note  that the Web Services are arranged in groups, and you can rename these  groups.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3:&lt;/span&gt; Select  your WSDL (either via URL, file, or UDDI) and then walk through the  wizard. Choose the location to deploy your virtualized service. Out of  the box, there is a set of services called "Default Services" on port  8080 in the Vordel  Gateway, but you can rename this or change the port. You can also  add a new service group (e.g. called "SSL Services") with a different  listening interface, such as SSL (create the new services, then right-click and  choose "Add interface"). You can even add a JMS listener, or a file folder scanner.&lt;br /&gt;&lt;br /&gt;Don't check the box right now to "Secure  this Web Service". You'll then see a "Summary" screen in the wizard,  which says what path the Virtual Service has been deployed on. Take note  of this path. Press OK and then press the "Deploy" button on Policy  Studio to deploy. Now open the WSDL in the browser. Note that &lt;a href="http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html"&gt;the Vordel Gateway will  automatically virtualize the service hostname in the WSDL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 4: &lt;/span&gt;Right-click on "Policies" in the Vordel Studio and  select "Add Policy". If you already have created a contained to contain  your policies, you can right-click on your container and make your  policy there. Note that containers are a way to group policies together,  e.g. for importing and exporting them together, but don't affect the  running of the policies.&lt;br /&gt;&lt;br /&gt;Call your new policy "Filter Attachments"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step  5. &lt;/span&gt;Drag in a "Content Type" filter, which you can find in the "Content  Filtering" group. We are filtering the message based on its content  type. Configure it as shown in the  screenshot below, where only XML and PDFs are allowed (i.e. a SOAP/XML message  with a PDF attachment).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-uHwQRVb-epM/TjlBa_w1mgI/AAAAAAAABL8/3-EbqOfHTnw/s1600/FilterAttachmentType.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 348px; height: 400px;" src="http://4.bp.blogspot.com/-uHwQRVb-epM/TjlBa_w1mgI/AAAAAAAABL8/3-EbqOfHTnw/s400/FilterAttachmentType.jpg" alt="" id="BLOGGER_PHOTO_ID_5636608340679563778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Note that you must have "multipart/*" selected  also, because that is used by the SOAP-with-Attachments standard to  deliniate attachments. If you have not got this selected, all SOAP  attachments will be blocked (note: this may be intended in some use  cases).&lt;br /&gt;&lt;br /&gt;When you drag in the filter on to the policy canvas, it  is initially gray because it is not being used yet. Right-click on this  filter and choose "Set as start". Now it is no longer grayed out.  However, it is outlined in red because it requires an input (the message  itself) which it is not getting at the moment. For it to get this  input, it must be "wired up" to policy that is receiving a message  through a listening interface.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 6:&lt;/span&gt; In Policy Studio,  look under "Policies" and then "Generated Circuits" to find the service  you've registered in Step 3. Double-click on the filter called "Service  Handler for '&lt;your service="" name=""&gt;'. Then open the "Message  Interception Points" tab. Under "Before Operation-specific Policy" press  on the "..." button to choose the policy you made in step 5 to filter  attachments. Once it is mapped, you should see the mapping set as in the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;/your&gt;&lt;a href="http://3.bp.blogspot.com/-UQc0Z7hFG9w/TjlEeM4HRzI/AAAAAAAABME/N1iSsvyOF4g/s1600/MappedPolicy.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 219px;" src="http://3.bp.blogspot.com/-UQc0Z7hFG9w/TjlEeM4HRzI/AAAAAAAABME/N1iSsvyOF4g/s400/MappedPolicy.jpg" alt="" id="BLOGGER_PHOTO_ID_5636611694274234162" border="0" /&gt;&lt;/a&gt;&lt;your service="" name=""&gt;&lt;br /&gt;Make sure you press the "Deploy" button on  the Studio toolbar to deploy this policy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 7:&lt;/span&gt;  Open &lt;a href="http://vordel.com/products/soapbox/index.html"&gt;SOAPbox (grab your free copy from Vordel)&lt;/a&gt;. We will be using SOAPbox to test  our attachments policy. Open the Virtual Service WSDL which you  obtained from Step 3. [Tip: The Service Manager interface, under  &lt;oeg&gt;:8090/ , also allows you to see the Virtual Service WSDL, if  you connect with a role which allows you to use Service Manager]. In SOAPbox, press on the import WSDL and import the Virtualized  WSDL (note: not the actual WSDL from the back-end service you've  registered, otherwise you'll simply send your messages to the back-end  services and not through the Vordel Gateway).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 8: &lt;/span&gt;You'll see a sample  message created for you in SOAPbox. Click on the "Attachments"  tab on the botton of &lt;/oeg&gt;&lt;/your&gt;SOAPbox &lt;your service="" name=""&gt;&lt;oeg&gt;. Choose to add an attachment which  is not allowed (i.e. something other than a PDF, since in Step 5 you  chose that a PDF was the only allowable attachment. Send the message  through to the Vordel Gateway in  SOAPbox, by pressing the green triangular  "play" button. These steps are shown in below.&lt;br /&gt;&lt;br /&gt;&lt;/oeg&gt;&lt;/your&gt;&lt;a href="http://1.bp.blogspot.com/-2Qe4q6_8PIU/TjlFM2NK-GI/AAAAAAAABMM/wdmK1WOQgxM/s1600/AddAttachmentServiceExplorer.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 379px; height: 400px;" src="http://1.bp.blogspot.com/-2Qe4q6_8PIU/TjlFM2NK-GI/AAAAAAAABMM/wdmK1WOQgxM/s400/AddAttachmentServiceExplorer.jpg" alt="" id="BLOGGER_PHOTO_ID_5636612495642392674" border="0" /&gt;&lt;/a&gt;&lt;your service="" name=""&gt;&lt;oeg&gt;&lt;br /&gt;The message will be blocked. Note  that you can customize the response message, since in a production  system it is not usual to return a SOAP Fault to clients.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step  9: &lt;/span&gt;View the blocked message in the Vordel Gateway's Real-Time Monitoring by pointing a  browser to &lt;oeg&gt;:8090/ and then clicking on "Real-Time  Monitoring". Note that you'll have to login as a user with a role which  allows viewing of Real-Time Monitoring (e.g. an "operator" or "auditor" role):&lt;br /&gt;&lt;br /&gt;&lt;/oeg&gt;&lt;/oeg&gt;&lt;/your&gt;&lt;a href="http://3.bp.blogspot.com/-EfQU1ykJuHw/TjlFeZ1-2QI/AAAAAAAABMU/6U9fmKw-qqg/s1600/RealTimeMonitoring.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 181px;" src="http://3.bp.blogspot.com/-EfQU1ykJuHw/TjlFeZ1-2QI/AAAAAAAABMU/6U9fmKw-qqg/s400/RealTimeMonitoring.jpg" alt="" id="BLOGGER_PHOTO_ID_5636612797266581762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;your service="" name=""&gt;&lt;oeg&gt;&lt;oeg&gt;&lt;span style="font-weight: bold;"&gt;Step 10: &lt;/span&gt;Import the WSDL  into SOAPbox and send it through the Gateway without the  SOAP Attachment. Note that &lt;/oeg&gt;&lt;/oeg&gt;&lt;/your&gt;SOAPbox &lt;your service="" name=""&gt;&lt;oeg&gt;&lt;oeg&gt;allows you to have multiple  messages saved, which you can see if you click on the small down-arrow  button beside the green "play" button, and choose "Request Settings".&lt;br /&gt;&lt;br /&gt;Other  steps: Note that the Vordel Gateway includes a filter called "Remove Attachment"  which you can use to remove attachments. You may use it similar to the  process outlined above. In addition, the Message Size filter will block  large messages based on (optionally) attachments as well as the message  itself.&lt;br /&gt;&lt;/oeg&gt;&lt;/oeg&gt;&lt;/your&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7012229918449778296?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7012229918449778296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7012229918449778296'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/how-to-filter-soap-mtomswa-attachments.html' title='How to filter SOAP MTOM/SWA attachments in the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-c9J4uWagx-4/TjlAiUH7OdI/AAAAAAAABL0/QwyTjhZ6B10/s72-c/OpenPolicyStudio.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4424332220665078818</id><published>2011-08-02T13:49:00.004+01:00</published><updated>2011-08-02T14:01:53.033+01:00</updated><title type='text'>Enter the Entitlements Server</title><content type='html'>It is always striking that so much work is done on authentication technologies, but so little on authorization. Usually authorization (the decision on "who can do what") is baked into code in applications. This makes it difficult to change these rules later, or to audit the rules. Entitlements Servers fill this gap, by externalizing authorization from applications. Marc Chanliau has written&lt;a href="http://soa.sys-con.com/node/1923919"&gt; a really useful article on entitlements servers&lt;/a&gt;, which provide this service exactly.&lt;br /&gt;&lt;br /&gt;He gives a good example of when an entitlements server is vital:&lt;br /&gt;&lt;blockquote&gt;Suppose a homegrown portal application must present a sensitive piece of customer information such as a Social Security Number (SSN) when a service representative views a customer's profile. It is determined that in order to ensure compliance with various privacy regulations, only directors and senior managers may be able to view a customer's SSN. A decision has to be dynamically made whenever the application must show an SSN as to whether the current user may view the actual data or some default value (e.g., "XXX-XX-XXXX"). The decision must take into account the user's job title. A dozen parts of the application that can display a customer's SSN mean a dozen places for this business logic to be applied.&lt;br /&gt;&lt;br /&gt;Now assume that the policy needs to be changed after the application has been in production for some time. The business has determined that senior managers in California may not view an SSN. This is an exceptional situation that requires another piece of information to be considered as part of the entitlement decision. But what if we take the example even further? Suppose that only directors above a certain salary grade can view SSNs. Now the entitlement logic has been split into multiple decisions based on runtime attributes. So the business logic must be adapted.&lt;br /&gt;&lt;br /&gt;You can see that authorization or entitlement policies evolve very differently from application requirements. Having the entitlement logic "hard wired" into the business logic means changing code each time there is a policy change.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://soa.sys-con.com/node/1923919"&gt;http://soa.sys-con.com/node/1923919&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;He then goes on to explain how an Entitlements Server works in the framework of RBAC (Role-Based Access Control) and the PEP/PDP/PIP model.&lt;a href="http://vordel.com/products/gateway/index.html"&gt; Gateways like the Vordel Gateway&lt;/a&gt; are often deployed as the PEP part of this model, and &lt;a href="http://www.soatothecloud.com/2011/07/vordel-and-oracle-entitlements-server.html"&gt;I've written recently about the benefits of integration between the PEP and the Entitlements Server&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4424332220665078818?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4424332220665078818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4424332220665078818'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/enter-entitlements-server.html' title='Enter the Entitlements Server'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6247814085637471699</id><published>2011-08-01T14:13:00.002+01:00</published><updated>2011-08-01T14:17:59.315+01:00</updated><title type='text'>Rock 'n' Roll</title><content type='html'>&lt;p&gt;Here is &lt;a href="http://www.irishtimes.com/newspaper/features/2011/0721/1224301052864.html"&gt;a section from Prince's rider for a recent concert (scroll down to the bottom of the article)&lt;/a&gt;. I guess Prince is a fan of Windows (and Google):&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Please provide a laptop computer (Windows Operating System) with large screen in the suite.&lt;/li&gt;&lt;li&gt;Please have the computer powered on with the web browser displaying the Google home page.&lt;/li&gt;&lt;li&gt;High-quality flower arrangements in suite&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6247814085637471699?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6247814085637471699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6247814085637471699'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/rock-n-roll.html' title='Rock &apos;n&apos; Roll'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3470720864850660849</id><published>2011-08-01T13:29:00.005+01:00</published><updated>2011-08-01T13:36:50.804+01:00</updated><title type='text'>Job posting: Vordel, Oracle, and CA SiteMinder skills in San Diego</title><content type='html'>&lt;a href="https://jobs.qualcomm.com/public/jobDetails.xhtml?requisitionId=1887524"&gt;Qualcomm in San Diego is looking for someone with Vordel, CA SiteMinder, and Oracle skills.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/#%21/Vordel/status/97028059978399744"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3470720864850660849?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3470720864850660849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3470720864850660849'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/08/job-posting-vordel-oracle-and-ca.html' title='Job posting: Vordel, Oracle, and CA SiteMinder skills in San Diego'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1849409035310286024</id><published>2011-07-29T19:56:00.005+01:00</published><updated>2011-07-29T20:14:19.112+01:00</updated><title type='text'>Vordel and Oracle Entitlements Server - The power of direct integration</title><content type='html'>"Interoperability" and "Integration" are two words which are often used interchangeably. However, in systems architecture they have different meanings. "Interoperability" means that products will talk to each other, usually over the network or through shared understanding of a file format. "Integration" means something closer.&lt;br /&gt;&lt;br /&gt;In the case of Oracle Entitlements Server (OES), this distinction is important. In &lt;a href="http://www.oracle.com/technetwork/middleware/oes/oes-product-white-paper-405854.pdf"&gt;Oracle's OES Product White Paper&lt;/a&gt;, a number of Gateways are listed as being able to use OES to manage authorization for Web Services. i.e. "interoperability". But only two are mentioned as being able to have OES &lt;span style="font-style: italic;"&gt;directly embedded &lt;/span&gt;into the Gateway&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;"To reduce latency, OES can be directly embedded into XML Gateways such as Oracle Enterprise Gateway and Vordel."&lt;br /&gt;&lt;a href="http://www.oracle.com/technetwork/middleware/oes/oes-product-white-paper-405854.pdf"&gt;http://www.oracle.com/technetwork/middleware/oes/oes-product-white-paper-405854.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;This direct embedding of OES into the Gateway is true integration. It reduces latency for customers, which is vital in environments such as financial transaction processing and telecoms. To see how this works in practice, check out the video below which shows how the enforcement of OES authorization policies is directly embedded into the Vordel Gateway:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-aadc9dc3a90264f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v23.nonxt2.googlevideo.com/videoplayback?id%3D0aadc9dc3a90264f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D498892185AC9476857217F2B70CAEF9A47007901.3C69A9823C85C3755335EBEB472423CA40DA49A7%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Daadc9dc3a90264f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DMjqAsLmfkEosWY1J0dI0XTpRRwk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v23.nonxt2.googlevideo.com/videoplayback?id%3D0aadc9dc3a90264f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D498892185AC9476857217F2B70CAEF9A47007901.3C69A9823C85C3755335EBEB472423CA40DA49A7%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Daadc9dc3a90264f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DMjqAsLmfkEosWY1J0dI0XTpRRwk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1849409035310286024?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1849409035310286024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1849409035310286024'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/vordel-and-oracle-entitlements-server.html' title='Vordel and Oracle Entitlements Server - The power of direct integration'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2184007377995946169</id><published>2011-07-29T00:53:00.008+01:00</published><updated>2011-07-29T01:47:57.792+01:00</updated><title type='text'>How to configure XML Signature on the Vordel Gateway</title><content type='html'>Validating XML Signature is relatively simple to setup on the Vordel Gateway. Here are the steps:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Step 1: &lt;/span&gt;Open the Vordel Policy Studio. Connect to the Gateway you wish to configure your policy on. Either connect directly or login through Policy Director (Policy Director allows you to push out policies to a number of Gateways at once).&lt;br /&gt;&lt;br /&gt;Once you connect, choose "Edit Active Configuration".&lt;br /&gt;&lt;br /&gt;You will see the screen below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/--kLMHFUcC8E/TjH9DhoJ0lI/AAAAAAAABLU/yrexreCYdXA/s1600/OpenPolicyStudio.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 186px;" src="http://3.bp.blogspot.com/--kLMHFUcC8E/TjH9DhoJ0lI/AAAAAAAABLU/yrexreCYdXA/s400/OpenPolicyStudio.jpg" alt="" id="BLOGGER_PHOTO_ID_5634562845825421906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-YX0R9ugE78w/TjH7C9FKmsI/AAAAAAAABK0/NqSVLPt5uWM/s1600/OpenPolicyStudio.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;New Web Services are registered in the "Web Service Repository" which is accessed under the "Policies" group on the left-hand-side.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 2:&lt;/span&gt; Right-click on the "Web Service Repository" and choose "Register Web Service". Note that the Web Services are arranged in groups, and you can rename these groups. In the screenshot below you can see that we've created a group called "B2B Web Services" and one called "Internal Web Services".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-XlgtqruG6Mk/TjH9DXa5s4I/AAAAAAAABLM/tTBWSMUCFSs/s1600/RegisterWebService.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 185px;" src="http://2.bp.blogspot.com/-XlgtqruG6Mk/TjH9DXa5s4I/AAAAAAAABLM/tTBWSMUCFSs/s400/RegisterWebService.jpg" alt="" id="BLOGGER_PHOTO_ID_5634562843085484930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 3: &lt;/span&gt;Select your WSDL (either via URL, file, or use&lt;a href="http://www.soatothecloud.com/2010/10/xml-gateway-and-registryrepository.html"&gt; the UDDI interop with registries such as HP Systinet&lt;/a&gt;) and then walk through the wizard. Choose the location to deploy your virtualized service. Out of the box, there is a set of services called "Default Services" on port 8080 in the Vordel Gateway, but you can rename this or change the port. You can also add a new service group (e.g. called "SSL Services") with a different listening interface (create the new services, then right-click and choose "Add interface").&lt;br /&gt;&lt;br /&gt;Don't check the box right now to "Secure this Web Service" (that's what we'll do next). You'll then see a "Summary" screen in the wizard, which says what path the Virtual Service has been deployed on. Take note of this path, but note that you can always see it again by right-clicking on the service and choosing to "Quick Edit" it. Press OK and then press the "Deploy" button on Policy Studio to deploy. Now open the WSDL in the browser. Note that &lt;a href="http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html"&gt;the Vordel Gateway will automatically virtualize the service hostname in the WSDL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 4:&lt;/span&gt; Right-click on "Policies" in the Vordel Studio and select "Add Policy". If you already have created a contained to contain your policies, you can right-click on your container and make your policy there. Note that containers are a way to group policies together, e.g. for importing and exporting them together, but don't affect the running of the policies.&lt;br /&gt;&lt;br /&gt;Call your new policy "Validate Signature"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 5.&lt;/span&gt; Drag in a "XML Signature Verification" filter, which you can find in the "Integrity" group in Policy Studio [tip: in the searchbox above the list of filters in Policy Studio, start typing "Signature" and it will narrow down your choices to just those which include signature functionality). Configure it as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-48D52hmScgs/TjH9DLJOsZI/AAAAAAAABLE/mgnUuVKIoDM/s1600/ConfigureSignatureValidation.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 395px;" src="http://2.bp.blogspot.com/-48D52hmScgs/TjH9DLJOsZI/AAAAAAAABLE/mgnUuVKIoDM/s400/ConfigureSignatureValidation.jpg" alt="" id="BLOGGER_PHOTO_ID_5634562839790137746" border="0" /&gt;&lt;/a&gt;When you drag in the filter on to the policy canvas, it is initially gray because it is not being used yet. Right-click on this filter and choose "Set as start". Now it is no longer grayed out. However, it is outlined in red because it requires an input (the messages) which it is not getting at the moment. For it to get this input, it must be "wired up" to policy that is receiving a message through a listening interface.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 6:&lt;/span&gt; In Policy Studio, look under "Policies" and then "Generated Circuits" to find the service you've registered in Step 3. Double-click on the filter called "Service Handler for '&lt;your service="" name=""&gt;'. Then open the "Message Interception Points" tab. Under "Before Operation-specific Policy" press on the "..." button to choose the policy you made in step 5 to do Signature Validation. Once it is mapped, you should see the mapping set. Make sure you press the "Deploy" button on the  Studio toolbar to deploy this policy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 7:&lt;/span&gt; To test this service, we'll use SOAPbox, which is &lt;a href="http://vordel.com/products/soapbox/index.html"&gt;Vordel's free Web Service testing tool&lt;/a&gt;.  We will import the Virtual Service WSDL which you obtained from Step 3. In&lt;oeg&gt; SOAPbox, press on the Import WSDL button (on the toolbar) and import the Virtualized WSDL  from the Gateway.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 8: &lt;/span&gt;You'll see a sample message created for you in SOAPbox. Send the message through to the Vordel Gateway, by pressing the green triangular "play" button on the toolbar of SOAPbox. This message will be blocked because it has no signature. Note that you can customize the response message, since in a production system it is not usual to return a SOAP Fault to clients.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 9&lt;/span&gt;: View the blocked message in the Vordel Gateway's Real-Time Monitoring by pointing a browser to &lt;oeg&gt;:8090/ and then clicking on "Real-Time Monitoring". Note that you'll have to login as a user with a role which allows viewing of Real-Time Monitoring. The screen is shown  below:&lt;br /&gt;&lt;br /&gt;&lt;/oeg&gt;&lt;/oeg&gt;&lt;/your&gt;&lt;a href="http://4.bp.blogspot.com/-K1YpjaxBZHU/TjIA0WRO21I/AAAAAAAABLc/6vCvjw0cx_Q/s1600/MessageBlockedNoSignature.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 181px;" src="http://4.bp.blogspot.com/-K1YpjaxBZHU/TjIA0WRO21I/AAAAAAAABLc/6vCvjw0cx_Q/s400/MessageBlockedNoSignature.jpg" alt="" id="BLOGGER_PHOTO_ID_5634566983124966226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;your service="" name=""&gt;&lt;oeg&gt;&lt;oeg&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Step 10:&lt;/span&gt; In SOAPbox, choose "Security" then "Sign Request" on the menu. Under "Signing Key" you can simply choose the sample key which ships with SOAPbox (called "CN=SOAPBoxConfig"). Under the "What to Sign" tab, choose the "Xpath" sub-tab and then choose "The SOAP 11 or SOAP 12 Body". Leave the other settings as they are, and press "Finish". You should now see the signature in your message in SOAPbox. Send the signed message through and it will be validated successfully , as shown below:&lt;br /&gt;&lt;br /&gt;&lt;/oeg&gt;&lt;/oeg&gt;&lt;/your&gt;&lt;a href="http://1.bp.blogspot.com/-XXp8gDQ8bsg/TjIC61MpZDI/AAAAAAAABLk/y9ytC3e1804/s1600/SuccessfulSignatureValidation.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 180px;" src="http://1.bp.blogspot.com/-XXp8gDQ8bsg/TjIC61MpZDI/AAAAAAAABLk/y9ytC3e1804/s400/SuccessfulSignatureValidation.jpg" alt="" id="BLOGGER_PHOTO_ID_5634569293529703474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;your service="" name=""&gt;&lt;oeg&gt;&lt;oeg&gt;&lt;br /&gt;Other steps: In  Studio, note in the "certificates" group that you can then check the trust of the certificate from the signature (i.e. check that its issuing CA is trusted). you can also validate the certificate against a CRL, an OCSP responder, or an XKMS service. To do these steps, drag one or more of these filters after your Validate XML Signature filter and drag a green line from the Validate XML Signature filter to it, indicating that you wish to check the certificate after you have checked the signature. Note that the "certificate" attribute is populated after the signature filter runs, and it then is passed to the certificate validation filters which require it.&lt;br /&gt;&lt;/oeg&gt;&lt;/oeg&gt;&lt;/your&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2184007377995946169?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2184007377995946169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2184007377995946169'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/how-to-configure-xml-signature-on.html' title='How to configure XML Signature on the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/--kLMHFUcC8E/TjH9DhoJ0lI/AAAAAAAABLU/yrexreCYdXA/s72-c/OpenPolicyStudio.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5428879565393479091</id><published>2011-07-28T02:35:00.002+01:00</published><updated>2011-07-28T02:41:48.551+01:00</updated><title type='text'>Signing and inserting SAML Tokens at the Vordel Gateway for Oracle OSB</title><content type='html'>Oracle OSB embeds the Oracle OWSM functionality for security features such as SAML and WS-Security. When using a Gateway in front of Oracle OSB, it is important to configure it so that the Gateway inserts and signs SAML tokens in such a way that Oracle OSB can successfully consume them. Usually the simplest way to do this is to import the WSDL of the service into the Vordel Gateway, and it will see the "advertised" WS-Policy inside the WSDL and kick off the wizard setup the appropriate policy. But if you find yourself setting this up manually, here are the details:&lt;br /&gt;&lt;div class="wiki"&gt;    &lt;p&gt;1) Insert the SAML Token and choose SAML Version 1.0 (assuming that is what is being expected at the OSB side), Sender Vouches, and choose to &lt;strong&gt;not&lt;/strong&gt; insert the SAML Token into a Security Token Reference (STR). [the STR is made at the signing point, which comes next...].&lt;/p&gt;    &lt;p&gt;then...&lt;/p&gt;    &lt;p&gt;2) Sign the SAML Token, and under "What to Sign", choose "Use WSU  Ids", "Use SAML Ids for SAML Elements", and "Add and dereference  Security Token Reference for SAML". Under "Node Locations" in "What to  Sign" choose the SAML 1.0 assertion and the SOAP body. Under "Signing  Key" and "Key Info" choose "x509vs", and "include TokenType".&lt;/p&gt;&lt;p&gt;This works great and allows a SAML token to be used to propagate identity from the Vordel Gateway through to Oracle OSB.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5428879565393479091?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5428879565393479091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5428879565393479091'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/signing-and-inserting-saml-tokens-at.html' title='Signing and inserting SAML Tokens at the Vordel Gateway for Oracle OSB'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7006052672014558865</id><published>2011-07-22T17:03:00.005+01:00</published><updated>2011-07-22T17:21:52.382+01:00</updated><title type='text'>Mapping the Cloud: Cisco ACE upgrade to Vordel Gateway</title><content type='html'>Vordel is presenting &lt;a href="https://www2.gotomeeting.com/register/741348594"&gt;a webinar next month about how BNSF Railway upgraded their Cisco ACE XML Gateway to the Vordel Gateway&lt;/a&gt;. We're pretty excited about this, and it looks like other people are, because it's been retweeted a lot.&lt;br /&gt;&lt;br /&gt;One particular tweet piqued my interested, and I click on it. It's the tweet below:&lt;br /&gt;&lt;br /&gt;&lt;a com="" cloudwebinars="" status=""&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;width: 400px; height: 178px;" src="http://3.bp.blogspot.com/-YIBaR61cxzA/TimgJ7MAfTI/AAAAAAAABKs/MlN5S35zLNg/s400/Tweet.jpg" alt="" id="BLOGGER_PHOTO_ID_5632208901370838322" border="0" /&gt;&lt;/a&gt;&lt;a href="http://twitter.com/#%21/CloudWebinars"&gt;CloudWebinars&lt;/a&gt; provides a useful service on Twitter by placing upcoming cloud webinars into Google Calendar. So, when I clicked the link, I noticed that the calendar entry links to a map of where the webinar is located. I could not resist clicking on the Map link below. I was wondering "How would Google map the Cloud?"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-tOcQ5EGwq64/TimgJVeSOoI/AAAAAAAABKc/ILUoUkdlW18/s1600/MapCloud.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 190px;" src="http://3.bp.blogspot.com/-tOcQ5EGwq64/TimgJVeSOoI/AAAAAAAABKc/ILUoUkdlW18/s400/MapCloud.png" alt="" id="BLOGGER_PHOTO_ID_5632208891246951042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And sure enough, when I clicked on the link, I see that Google tries to map where "The Cloud" is located in Boston:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-HFj_ZabIWtA/TimgJWWh_XI/AAAAAAAABKk/W2bsqzykgL0/s1600/TheCloudNearBoston.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 191px;" src="http://2.bp.blogspot.com/-HFj_ZabIWtA/TimgJWWh_XI/AAAAAAAABKk/W2bsqzykgL0/s400/TheCloudNearBoston.png" alt="" id="BLOGGER_PHOTO_ID_5632208891482865010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But, rather than following Google's attempt to locate The Cloud in Boston, here's the correct link :-)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-tOcQ5EGwq64/TimgJVeSOoI/AAAAAAAABKc/ILUoUkdlW18/s1600/MapCloud.png"&gt;https://www2.gotomeeting.com/register/741348594&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-YIBaR61cxzA/TimgJ7MAfTI/AAAAAAAABKs/MlN5S35zLNg/s1600/Tweet.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7006052672014558865?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7006052672014558865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7006052672014558865'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/mapping-cloud-cisco-ace-upgrade-to.html' title='Mapping the Cloud: Cisco ACE upgrade to Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-YIBaR61cxzA/TimgJ7MAfTI/AAAAAAAABKs/MlN5S35zLNg/s72-c/Tweet.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1108805104188293586</id><published>2011-07-15T23:10:00.006+01:00</published><updated>2011-07-15T23:22:34.161+01:00</updated><title type='text'>How to convert XML to SOAP on the Vordel Gateway</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;When you think about converting XML in general, it's natural to think "use XSLT". But it's important to note that the Vordel Gateway actually supports conversion of XML to SOAP out-of-the-box without having to resort to using xslt. Simply use a "Set Message" with a SOAP Envelope and inside the  SOAP Body put a ${content.body} attribute and then the incoming XML  will be automatically placed into a SOAP envelope on-the-fly. Like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-A4eakq2LlLA/TiC8LYYbCeI/AAAAAAAABKU/aReRsbeC-B0/s1600/SetMessage.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 390px;" src="http://3.bp.blogspot.com/-A4eakq2LlLA/TiC8LYYbCeI/AAAAAAAABKU/aReRsbeC-B0/s400/SetMessage.png" alt="" id="BLOGGER_PHOTO_ID_5629706437922589154" border="0" /&gt;&lt;/a&gt;... and, as they say in the UK, "Bob's your uncle".&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;But if you want to do this using an XSLT transformation, here is one you can use (import it using the "Stylesheet Conversion" filter):&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&lt;br /&gt;&amp;amp;lt;&amp;lt;/xsl:text&amp;gt;SOAP-ENV:Envelope&lt;br /&gt;xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"&lt;br /&gt;xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xmlns:xsd="http://www.w3.org/2001/XMLSchema"&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;lt;&amp;lt;/xsl:text&amp;gt;SOAP-ENV:Body&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:copy-of select="*" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;lt;&amp;lt;/xsl:text&amp;gt;/SOAP-ENV:Body&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;lt;&amp;lt;/xsl:text&amp;gt;/SOAP-ENV:Envelope&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1108805104188293586?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1108805104188293586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1108805104188293586'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/how-to-convert-xml-to-soap-on-vordel.html' title='How to convert XML to SOAP on the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-A4eakq2LlLA/TiC8LYYbCeI/AAAAAAAABKU/aReRsbeC-B0/s72-c/SetMessage.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3497443222632393813</id><published>2011-07-14T09:02:00.004+01:00</published><updated>2011-07-14T09:34:03.929+01:00</updated><title type='text'>How to configure Throttling on the Vordel Gateway</title><content type='html'>Here's a guide to setting up throttling in the Vordel Gateway:&lt;br /&gt;&lt;br /&gt;If you've already registered a WSDL, skip forward to step 4.&lt;br /&gt;&lt;br /&gt;Step 1: Open  Policy Studio. Connect to the Gateway you wish to configure your policy on.&lt;br /&gt;&lt;br /&gt;Once you connect, choose "Edit Active Configuration".&lt;br /&gt;&lt;br /&gt;New Web Services are registered in the "Web Service Repository" which is accessed under the "Policies" group on the left-hand-side.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-_Df4t5-lKd8/Th6ogRIgsgI/AAAAAAAABJ8/boNr2yS-9as/s1600/OpenPolicyStudio.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 186px;" src="http://2.bp.blogspot.com/-_Df4t5-lKd8/Th6ogRIgsgI/AAAAAAAABJ8/boNr2yS-9as/s400/OpenPolicyStudio.jpg" alt="" id="BLOGGER_PHOTO_ID_5629121856568078850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Step 2: Right-click on the "Web Service Repository" and choose "Register Web Service". Note that the Web Services are arranged in groups, and you can rename these groups. In the screenshot below you can see that we've created a group called "B2B Web Services".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-NMck292ZG-k/Th6ogp8Cs6I/AAAAAAAABKE/sWkwZL4qiWc/s1600/RegisterWebService.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 185px;" src="http://1.bp.blogspot.com/-NMck292ZG-k/Th6ogp8Cs6I/AAAAAAAABKE/sWkwZL4qiWc/s400/RegisterWebService.jpg" alt="" id="BLOGGER_PHOTO_ID_5629121863226667938" border="0" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-vJHaekhEmSI/Th6kQ1UZ6wI/AAAAAAAABJU/BAob-9c2MwI/s1600/RegisterWebService.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Step 3: Select your WSDL (either via URL, file, or UDDI) and then walk through the wizard. Choose the location to deploy your virtualized service. Out of the box, there is a set of services called "Default Services" on port 8080 in , but you can rename this or change the port. You can also add a new service group (e.g. called "SSL Services") with a different listening interface (create the new services, then right-click and choose "Add interface").&lt;br /&gt;&lt;br /&gt;Don't check the box right now to "Secure this Web Service". You'll then see a "Summary" screen in the wizard, which says what path the Virtual Service has been deployed on. Take note of this path. Press OK and then press the "Deploy" button on Policy Studio to deploy. Now open the WSDL in the browser. Note that  will automatically virtualize the service hostname in the WSDL (as explained here: &lt;a href="http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html"&gt;http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;Step 4: Right-click on "Policies" in  Policy Studio and select "Add Policy". If you already have created a contained to contain your policies, you can right-click on your container and make your policy there. Note that containers are a way to group policies together, e.g. for importing and exporting them together, but don't affect the running of the policies.&lt;br /&gt;&lt;br /&gt;Call your new policy "Throttling"&lt;br /&gt;&lt;br /&gt;Step 5. Drag in a "Throttling" filter, which you can find in the "Content Filtering" group. Configure with "10 messages in 1 minute" as shown in the screenshot below. Note that the  Gateway must retain state for the messages, because it stores the message count. So, this is stored in a cache [called "Maximum Messages" in the screenshot]. You can add another cache, or edit the cache name, under "External Connections" in  Policy Studio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-W4zKwRy7IW8/Th6ogqym5PI/AAAAAAAABKM/oxmV-k5vB3A/s1600/ThrottlingSettings.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 348px; height: 400px;" src="http://1.bp.blogspot.com/-W4zKwRy7IW8/Th6ogqym5PI/AAAAAAAABKM/oxmV-k5vB3A/s400/ThrottlingSettings.jpg" alt="" id="BLOGGER_PHOTO_ID_5629121863455532274" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-WtesyWQ687E/Th6kR7MwkNI/AAAAAAAABJs/qXVbgjrCYko/s1600/ThrottlingSettings.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;When you drag in the filter on to the policy canvas, it is initially gray because it is not being used yet. Right-click on this filter and choose "Set as start". Now it is no longer grayed out. However, it is outlined in red because it requires an input (the messages) which it is not getting at the moment. For it to get this input, it must be "wired up" to policy that is receiving a message through a listening interface.&lt;br /&gt;&lt;br /&gt;Step 6: In Policy Studio, look under "Policies" and then "Generated Circuits" to find the service you've registered in Step 3. Double-click on the filter called "Service Handler for '&lt;your service="" name=""&gt;'. Then open the "Message Interception Points" tab. Under "Before Operation-specific Policy" press on the "..." button to choose the policy you made in step 5 to do throttling. Once it is mapped, you should see the mapping set. Make sure you press the "Deploy" button on the  Policy Studio toolbar to deploy this policy.&lt;br /&gt;&lt;br /&gt;Step 7: Open the &lt;/your&gt;SOAPbox testing tooll (&lt;a href="http://www.vordel.com/products/soapbox/index.html"&gt;a free download from here&lt;/a&gt;)  &lt;your service="" name=""&gt;. We will be using SOAPbox  to test our throttling policy. Open the Virtual Service WSDL which you obtained from Step 3. [Tip: The Service Manager interface, under &lt;yourgatewayaddress&gt;:8090/ , also allows you to see the Virtual Service WSDL, if you connect with a role which allows you to use Service Manager]. In SOAPbox , press on the import WSDL and import the Virtualized WSDL (note: not the actual WSDL from the back-end service you've registered, otherwise you'll simply send your messages to the back-end services and not through ).&lt;br /&gt;&lt;br /&gt;Step 8: You'll see a sample message created for you in &lt;/yourgatewayaddress&gt;&lt;/your&gt;SOAPbox&lt;your service="" name=""&gt;. Send the message through to  with SOAPbox, by pressing the green triangular "play" button. Keep pressing the button until you reach the throttling limit. This message will be blocked. Note that you can customize the response message, since in a production system it is not usual to return a SOAP Fault to clients.&lt;/your&gt;&lt;a href="http://3.bp.blogspot.com/-KSfBpu2XAKk/Th6ogGPKopI/AAAAAAAABJ0/Q-VnK6APhQU/s1600/BlockedThrottling.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;your service="" name=""&gt;&lt;br /&gt;Step 9: View the blocked message in the Vordel Gateway's Real-Time Monitoring by pointing a browser to &lt;yourgatewayadddress&gt;:8090/ and then clicking on "Real-Time Monitoring". Note that you'll have to login as a user with a role which allows viewing of Real-Time Monitoring. The screen is shown in the  screenshot below:&lt;br /&gt;&lt;br /&gt;&lt;/yourgatewayadddress&gt;&lt;/your&gt;&lt;a href="http://3.bp.blogspot.com/-KSfBpu2XAKk/Th6ogGPKopI/AAAAAAAABJ0/Q-VnK6APhQU/s1600/BlockedThrottling.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 180px;" src="http://3.bp.blogspot.com/-KSfBpu2XAKk/Th6ogGPKopI/AAAAAAAABJ0/Q-VnK6APhQU/s400/BlockedThrottling.jpg" alt="" id="BLOGGER_PHOTO_ID_5629121853643203218" border="0" /&gt;&lt;/a&gt;&lt;your service="" name=""&gt;&lt;br /&gt;Other steps: If you add a Distributed Cache (under "External Connections" then "caches" then "Add" in the botton-right) then you can set two or more  Gateways to use the same cache. This means that if the traffic is being distributed across them, then the throttling count is cumulative over them (e.g. if 5 requests come to  1, and 5 to  2, then the value in the cache will be 10).&lt;br /&gt;&lt;/your&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3497443222632393813?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3497443222632393813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3497443222632393813'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/how-to-configure-throttling-on-vordel.html' title='How to configure Throttling on the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-_Df4t5-lKd8/Th6ogRIgsgI/AAAAAAAABJ8/boNr2yS-9as/s72-c/OpenPolicyStudio.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4020407664100378993</id><published>2011-07-11T16:11:00.002+01:00</published><updated>2011-07-11T16:29:25.354+01:00</updated><title type='text'>Getting started with the Vordel Gateway</title><content type='html'>My colleague Ian Marsh has written some really useful blog posts about &lt;a href="http://enterprisegateway.wordpress.com/2011/06/07/hello-world/"&gt;how to get started with the Vordel Gateway&lt;/a&gt;, including the ubiquitous "Hello World" and then some really useful pointers to how to create policies inside the Gateway. Definitely useful and worth following Ian over at &lt;a href="http://enterprisegateway.wordpress.com/"&gt;http://enterprisegateway.wordpress.com/&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4020407664100378993?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4020407664100378993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4020407664100378993'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/getting-started-with-vordel-gateway.html' title='Getting started with the Vordel Gateway'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8928814129711470660</id><published>2011-07-08T06:28:00.004+01:00</published><updated>2011-07-08T06:53:12.050+01:00</updated><title type='text'>OAuth, SAML, Query APIs, oh my - Finding the right Cloud integration standard</title><content type='html'>I've written &lt;a href="http://www.sdtimes.com/link/35707"&gt;an article for SD Times about the proliferation of standards for Cloud security&lt;/a&gt;. In the article I mention the Amazon Query API method of authentication, which although not an actual standard, has become something of an "industry standard" for authentication to Cloud-based APIs. It is widely used, not least for Amazon's own APIs of course.&lt;br /&gt;&lt;br /&gt;The article didn't allow space for message examples, but here in this blog I can show an example of the Amazon Query API. This request is generated by a &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Vordel Gateway&lt;/a&gt;, acting as a client in this case. You can see that the request contains an "Authorization" header which is an HMAC signature computed over data including the URL, the timestamp, and the nonce ("number once" - a value which changes with each request, to combat capture-replay attacks). The signature is created using a shared secret key. An advantage of the Query API is that it is *much* smaller than using XML Signature, for example. It is also RESTful, because the request is a regular HTTP POST with the parameters passed as HTTP parameters. In effect it mimics a HTML Form POST. Here is the example below:&lt;br /&gt;&lt;br /&gt;GET /ProcessAPIRequest HTTP/1.1&lt;br /&gt;Connection: keep-alive&lt;br /&gt;Transfer-Encoding: chunked&lt;br /&gt;User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0&lt;br /&gt;timestamp: 110708054739159GMT&lt;br /&gt;Nonce: Id-0000013108497d0e-0000000001bed3d1-57&lt;br /&gt;encryption_type: HmacSHA1&lt;br /&gt;client_ref_id: client&lt;br /&gt;Authorization: MGJ4aVdxeTIwWXltNTNSSUIvQW9vT2xOOE1BPQ==&lt;br /&gt;Accept-Language: en-us,en;q=0.5&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&lt;br /&gt;Via: 1.1 Dell-PC (Gateway)&lt;br /&gt;Host: 127.0.0.1:7071&lt;br /&gt;Content-Type: application/x-www-form-urlencoded&lt;br /&gt;&lt;br /&gt;firstname=fname&amp;amp;lastname=lname&amp;amp;id=xyz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8928814129711470660?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8928814129711470660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8928814129711470660'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/oauth-saml-query-apis-oh-my-finding.html' title='OAuth, SAML, Query APIs, oh my - Finding the right Cloud integration standard'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-371007720569710220</id><published>2011-07-01T06:42:00.004+01:00</published><updated>2011-07-01T07:01:55.143+01:00</updated><title type='text'>Halt: Who goes there? [... and what are their attributes?]</title><content type='html'>Access control is not only about identity, it's also about attributes. In the government/defense area, an access control decision may be made on rank, for example. A rank (e.g. an army captain) is an example of an attribute.&lt;br /&gt;&lt;br /&gt;These attributes have to come from somewhere, and thanks to hard work by &lt;a href="http://blog.aniltj.org/"&gt;Anil John &lt;/a&gt;and others, &lt;span style="font-style: italic;"&gt;&lt;/span&gt;there is a specification explaining how to look up these attributes. Vordel implements this specification, which is called the BAE (Backend Attribute Exchange) profile. &lt;a href="http://blog.aniltj.org/2011/06/update-on-federal-icam-profiles-for.html"&gt;Anil has a write-up on BAE v2 here, including how it uses SAML and SPML. &lt;/a&gt;If you're interested in seeing a demo of how Vordel implements BAE, give us a shout on &lt;a href="mailto://info@vordel.com"&gt;info@vordel.com&lt;/a&gt;. We're proud to implement this spec which makes access control more "joined up", and always happy to show it in action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-371007720569710220?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/371007720569710220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/371007720569710220'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/07/halt-who-goes-there-and-what-are-their.html' title='Halt: Who goes there? [... and what are their attributes?]'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4119746196636452038</id><published>2011-06-21T15:16:00.005+01:00</published><updated>2011-06-21T15:48:34.016+01:00</updated><title type='text'>How to enable Service Virtualization across hosts</title><content type='html'>One of the core patterns for a Gateway is "Service Virtualization". Service Virtualization means that an organization can expose &lt;span style="font-style: italic;"&gt;virtual services &lt;/span&gt;in front of its infrastructure. These virtual services can take the form of lightweight REST APIs or heavyweight SOAP Web Services. The Service Virtualization pattern enables you to do neat things, like expose a REST service in front of a SOAP service, and &lt;a href="http://www.soatothecloud.com/2008/11/how-to-convert-from-rest-to-soap.html"&gt;convert REST to SOAP &lt;/a&gt;dynamically at the Gateway. You can also use the Gateway to deploy a virtual service in front of a database, or a message queue, or an ESB.&lt;br /&gt;&lt;br /&gt;But how does it work? The answer comes down to how the virtual service is advertised to the client. Remember that service interfaces are generally advertised using WSDL (and as of WSDL 2.0, this applies to REST API interfaces as well as SOAP). WSDL includes the address of the service provider host. When the Gateway exposes a virtual service, it must replace this address with the address of the Gateway. Otherwise, clients would simply try to connect to the back-end service, thus attempting to bypass the Gateway.&lt;br /&gt;&lt;br /&gt;Here we see an example where the client is pulling down the WSDL of a virtual service from the &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Vordel Gateway&lt;/a&gt;. Notice that the address of the service has been changed to the address of the Gateway:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-psfBGZ6mrNM/TgCrzVOWdMI/AAAAAAAABI8/bQWNmSO0kNY/s1600/WSDL1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/-psfBGZ6mrNM/TgCrzVOWdMI/AAAAAAAABI8/bQWNmSO0kNY/s400/WSDL1.jpg" alt="" id="BLOGGER_PHOTO_ID_5620681233317393602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But what if a client from the outside world accesses the virtual service, via a public Fully-Qualified Domain Name like services.mycompany.com ? Will the WSDL still say "VordelGateway" in it? If so, this would not work.&lt;br /&gt;&lt;br /&gt;A neat feature of the Vordel Gateway is that it &lt;span style="font-style: italic;"&gt;dynamically virtualizes its services based on how the client calls it. &lt;/span&gt;So, when we call the virtual service using the hostname services.mycompany.com , this is what happens:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-UMCt5MdI-Rw/TgCsoOzrSMI/AAAAAAAABJE/P0GB-hQ7gVk/s1600/WSDL2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/-UMCt5MdI-Rw/TgCsoOzrSMI/AAAAAAAABJE/P0GB-hQ7gVk/s400/WSDL2.jpg" alt="" id="BLOGGER_PHOTO_ID_5620682142127966402" border="0" /&gt;&lt;/a&gt;Notice that the Vordel Gateway has dynamically virtualized the service with the hostname used by the client. If we'd pulled down the WSDL by its IP address, it would have placed the IP address in there. This is a very neat feature.&lt;br /&gt;&lt;br /&gt;The SSL-savvy of you may be thinking "hmm.... those WSDL addresses use SSL but that's going to throw a warning if the hostname changes, and it'll also cause some Java clients not to connect". Well, that points to another neat feature that enables Service Virtualization. The Vordel Gateway implements SSL Server Name Identifier (SNI) which means that when it's called using a particular hostname, it will dynamically use the appropriate SSL certificate (and private key) for that connection. If you right-click on an SSL interface in Policy Studio, you can see this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-QqfKn3ciyq8/TgCtN6YWTNI/AAAAAAAABJM/x9yRZqExB5I/s1600/ConfigureHTTPS.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 384px;" src="http://4.bp.blogspot.com/-QqfKn3ciyq8/TgCtN6YWTNI/AAAAAAAABJM/x9yRZqExB5I/s400/ConfigureHTTPS.png" alt="" id="BLOGGER_PHOTO_ID_5620682789479664850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Notice in the screenshot above that there are two certificates set. Both must have corresponding private keys (since that's essential for SSL). When the Gateway is called using the name "vordelgateway", it &lt;span style="font-style: italic;"&gt;assumes identity &lt;/span&gt;"CN=VordelGateway" (CN means "Common Name", in X.509 Certificate jargon). When the Gateway is called using "services.mycompany.com", like in the second screenshot above, it &lt;span style="font-style: italic;"&gt;assumes identity &lt;/span&gt;"CN=services.mycompany.com". This is all done on the fly. Without this feature, many clients would not connect because the SSL certificate would not match the hostname. But with this feature, it "just works".&lt;br /&gt;&lt;br /&gt;For more info, you can register for a live demo of the Vordel Gateway at: &lt;a href="http://www.vordel.com/demo.html"&gt;http://www.vordel.com/demo.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4119746196636452038?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4119746196636452038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4119746196636452038'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html' title='How to enable Service Virtualization across hosts'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-psfBGZ6mrNM/TgCrzVOWdMI/AAAAAAAABI8/bQWNmSO0kNY/s72-c/WSDL1.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-640480581819484597</id><published>2011-06-06T15:48:00.004+01:00</published><updated>2011-06-06T16:03:39.168+01:00</updated><title type='text'>The value of an Audit Trail for blocked REST API calls</title><content type='html'>An often-overlooked aspect of security is the Audit Trail. In the case of a REST API, we want to know not only that a REST API call was blocked, but &lt;span style="font-style: italic;"&gt;why &lt;/span&gt;it was blocked.&lt;br /&gt;&lt;br /&gt;Let's take a look at the Real-Time Monitoring from the Vordel Gateway, deployed to manage a REST API. We see the orange spike indicating that an API call was blocked:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-E29-2DzDE84/Tezo86CPDFI/AAAAAAAABIc/k8U_8dzSDLY/s1600/AuditTrailView1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 127px;" src="http://1.bp.blogspot.com/-E29-2DzDE84/Tezo86CPDFI/AAAAAAAABIc/k8U_8dzSDLY/s400/AuditTrailView1.png" alt="" id="BLOGGER_PHOTO_ID_5615118968492592210" border="0" /&gt;&lt;/a&gt;The key to looking up the Audit Trail is the message ID. Vordel users will be familiar with this ID as the ${id} attribute which is automatically created for each message in the Gateway. In this case, I highlight the message ID for the offending message and copy it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-4F2Nk4uUq_4/TezpuEpKJaI/AAAAAAAABI0/OzeCerv0iTg/s1600/AuditTrailView4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;" src="http://1.bp.blogspot.com/-4F2Nk4uUq_4/TezpuEpKJaI/AAAAAAAABI0/OzeCerv0iTg/s400/AuditTrailView4.jpg" alt="" id="BLOGGER_PHOTO_ID_5615119813153793442" border="0" /&gt;&lt;/a&gt;Then I tab over to the Audit Trail and paste the Message ID into the search form:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-1FypaXeF9Jk/Tezo9L6QiOI/AAAAAAAABIk/0B7C22NVlOY/s1600/AuditTrailView2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;" src="http://3.bp.blogspot.com/-1FypaXeF9Jk/Tezo9L6QiOI/AAAAAAAABIk/0B7C22NVlOY/s400/AuditTrailView2.png" alt="" id="BLOGGER_PHOTO_ID_5615118973290973410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When I press the Search button, I can see the message content, including the SQL Injection attempt which I have circled. The Vordel Gateway detected and blocked this attack against the REST API.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-4a6kNfOJIls/Tezo9sE2z0I/AAAAAAAABIs/5Ti4Znk2IqI/s1600/AuditTrailView3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 127px;" src="http://3.bp.blogspot.com/-4a6kNfOJIls/Tezo9sE2z0I/AAAAAAAABIs/5Ti4Znk2IqI/s400/AuditTrailView3.jpg" alt="" id="BLOGGER_PHOTO_ID_5615118981925359426" border="0" /&gt;&lt;/a&gt;So, it's important to know not only that a REST API call was blocked, but &lt;span style="font-style: italic;"&gt;why it was blocked &lt;/span&gt;and what the REST API call actually was. This is the value of an audit trail. In addition, the Audit Trail logs may be signed, and the key used to sign them may be stored on a HSM (Hardware Security Module). All of the screenshots were taken from the Vordel evaluation image, which you can request from &lt;a href="mailto:info@vordel.com"&gt;info@vordel.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-640480581819484597?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/640480581819484597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/640480581819484597'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/06/value-of-audit-trail-for-blocked-rest.html' title='The value of an Audit Trail for blocked REST API calls'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-E29-2DzDE84/Tezo86CPDFI/AAAAAAAABIc/k8U_8dzSDLY/s72-c/AuditTrailView1.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6587786433042410901</id><published>2011-06-05T07:05:00.004+01:00</published><updated>2011-06-05T07:09:00.091+01:00</updated><title type='text'>The REST Doggy Door</title><content type='html'>&lt;img style="width: 272px; height: 204px;" src="http://1.bp.blogspot.com/-v2Tg7mY-bfM/TesdCDjntlI/AAAAAAAABIU/vs6KY2NWXJM/s400/DoggyDoor.JPG" alt="" id="BLOGGER_PHOTO_ID_5614613281599108690" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;It's often a good thought experiment to read something with a  "developer" hat on, and then read the same thing with a "security" hat  on. There is a classic example of this in&lt;a href="http://www.zdnet.com/tb/1-98110-1897138?tag=talkback-river;1_98110_1897138"&gt; a comment today on the Service Oriented blog:&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;REST  is so simple to implement, that its like a doggie door...  something  that will let anything in, when you want to provide open  interfaces.   When you don't know what you're going to be hooking up,  REST is good!                    &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.zdnet.com/tb/1-98110-1897138?tag=talkback-river;1_98110_1897138"&gt;http://www.zdnet.com/tb/1-98110-1897138?tag=talkback-river;1_98110_1897138&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;A  REST API is indeed a great way to allow a multitude of devices and apps  to consume a service. Almost any app can create a simple HTTP GET and  pass some parameters with it because, as people say, "it's just a wget".&lt;br /&gt;&lt;br /&gt;But  wait, what about security? In the doggy door analogy, what if a snake or, if  you're in Florida, a lizard comes in through that doggy door? In the  REST world, the snakes and lizards are malicious users, who want to use  REST services for data-mining or denial of service. For this reason it  is important that REST APIs are protected and managed. However, back to  the doggy door analogy, it is just as important  to not make that doggy  door so complex that the dog gives up and goes elsewhere. In that case,  you'd be locking the dog out with the snakes and lizards.&lt;br /&gt;&lt;br /&gt;For all  these reasons, REST API management has to enable the right apps and  devices to connect, without placing onerous requirements on them.  Remember that REST exists to be easy to use, so if you force clients to  suddenly place honking great security assertions into each request, they  will be turned off.&lt;br /&gt;&lt;br /&gt;So what is the solution? I've written about&lt;a href="http://www.soatothecloud.com/2011/02/securing-apis.html"&gt; the options for securing REST API's&lt;/a&gt; before, and I recommend checking out &lt;a href="http://www.vordel.com/research/10Nov2010FacebookIphoneREST.html"&gt;this 40-minute video explaining how REST APIs can be deployed safely&lt;/a&gt;.  The key is to choose an authentication scheme which can be supported by  the widest variety of clients, leveraging open standards and best  practices. Wind &lt;a href="http://www.vordel.com/research/10Nov2010FacebookIphoneREST.html"&gt;the video on to minute 20&lt;/a&gt; to see how the "REST doggy door" can be secured.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6587786433042410901?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6587786433042410901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6587786433042410901'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/06/rest-doggy-door_05.html' title='The REST Doggy Door'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-v2Tg7mY-bfM/TesdCDjntlI/AAAAAAAABIU/vs6KY2NWXJM/s72-c/DoggyDoor.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6913898420981124379</id><published>2011-06-05T02:03:00.000+01:00</published><updated>2011-06-05T06:01:53.811+01:00</updated><title type='text'>Projecting Identity to the Cloud - Cloud Expo New York</title><content type='html'>I'm on the other side of the world, working with partners and customers this week on some pretty exciting stuff, so my colleague &lt;a href="http://cloudcomputingexpo.com/event/session/1193"&gt;Isabelle Mauny will be ably giving the presentation on Single Sign-On to Cloud Services over in New York at the Cloud Expo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So what is the reason for Single Sign-On to Cloud services? It's all part of "Bring Your Own Identity" (BYOI). BYOI is a major trend for Cloud services. Witness the many "Log in with Facebook" and "Log in with Google" buttons on sites like TripIt. In the enterprise, it's about "Identity Projection" where users log in as usual (e.g. with Active Directory, or to a corporate portal) and then are seamlessly logged into Cloud-based services such as a corporate Google Mail account. This means &lt;span style="font-style: italic;"&gt;projecting &lt;/span&gt;your corporate identity up to the Cloud service. It's "Bring Your Own Corporate Identity". And Single Sign-On is what enables this.&lt;br /&gt;&lt;br /&gt;The most obvious benefit of this is that is saves the user the hassle of keying in another password. That is a good benefit, but there are a lot more:&lt;br /&gt;&lt;br /&gt;- As Nik Cubrilovic put it in his detailed treatise on the "&lt;a href="http://techcrunch.com/2009/07/19/the-anatomy-of-the-twitter-attack/"&gt;The Anatomy Of The Twitter Attack&lt;/a&gt;", &lt;span style="font-style: italic;"&gt;"Bad human habit #1: Using the same passwords everywhere. We are all guilty of it."&lt;/span&gt; If you ask users to log in to multiple services in order to get their work done, they will most likely &lt;span style="font-style: italic;"&gt;use the same password everywhere. &lt;/span&gt;This provides an attacker with a "find once, use anywhere" approach to passwords. But if Single Sign-On is used, no password is ever sent up to the Cloud service. This is all part of the trend to minimize password use, for good reasons.&lt;br /&gt;&lt;br /&gt;- It is costly to manage all those passwords. Over the years, it has been proven that password resets cost a lot of money. They waste productivity (users can't get to the information they need for their work), and tie up IT helpdesk people. As mentioned in the point above, in the Cloud world all those password resets create a security threat.&lt;br /&gt;&lt;br /&gt;- Agility. The word is over-used, but in the case of Single Sign-on to the Cloud, it means that new Cloud-based services can be brought on-stream for employees (TripIt for travel management is a good example), without having to provision all those employees with new passwords.&lt;br /&gt;&lt;br /&gt;I think that this "Projection of identity to the Cloud" is going to be an important topic going forward. The session is at 3.15pm on Wednesday June 8th at the Javits Center. &lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6913898420981124379?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6913898420981124379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6913898420981124379'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/06/projecting-identity-to-cloud-cloud-expo.html' title='Projecting Identity to the Cloud - Cloud Expo New York'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6625733181246121934</id><published>2011-05-31T09:05:00.000+01:00</published><updated>2011-05-31T10:48:26.035+01:00</updated><title type='text'>BYOA - Turtles all the way down</title><content type='html'>&lt;a href="http://www.zdnet.com/blog/service-oriented/byoa-and-productivity-is-build-your-own-app-now-a-reality/7084"&gt;Joe McKendrick has a post this week on BYOA: Bring Your Own App&lt;/a&gt;. He cites the example of &lt;a href="http://www.podio.com/"&gt;Podio&lt;/a&gt;. It's effectively a way to create a mobile or Web-based app, without the need to learn programming. A very neat service, nicely executed. As Joe McKendrick notes, this has been a much-promised dream for a while now. But it's getting closer to reality.&lt;br /&gt;&lt;br /&gt;He notes optimistically that:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;IT managers can do what they do best — worry about scalability, uptime, security and standards compliance on the back end or in the backbone — and leave many of the use cases for users themselves to sort out.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.zdnet.com/blog/service-oriented/byoa-and-productivity-is-build-your-own-app-now-a-reality/7084"&gt;http://www.zdnet.com/blog/service-oriented/byoa-and-productivity-is-build-your-own-app-now-a-reality/7084&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;I saw "optimistically" because of the worry many IT managers would have that BYOA is simply a way for employees to circumnavigate IT departments, and avoid their pesky concerns about security and standards compliance. But surely IT departments should embrace BYOA. How? By ensuring that the BYOA apps run through an on-premises &lt;a href="http://www.vordel.com/products/cloud_service_broker/beta.html"&gt;Cloud Service Broker .  &lt;/a&gt;The CSB layers on the attributes which may be lacking from from a BYOA app. These are rules for monitoring scalability and uptime (see the piece on "&lt;a href="http://www.ctoedge.com/content/its-4-am-%E2%80%94-do-you-know-where-your-cloud-provider"&gt;It's 4am - do you know where your Cloud provider is&lt;/a&gt;"), as well as security and standards compliance. And what about mobile BYOA apps that aren't run from inside the enterprise? Those BYOA apps can be run through a Cloud-based infrastructure, leveraging "reachback" into the enterprise, &lt;a href="http://www.vordel.com/news/events/Enabling%20Mobile%20Applications%20%E2%80%93%20Easily%20and%20Securely.html"&gt;as described here in this webinar.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;One fascinating aspect of Podio is how it is a Cloud app, itself built on a stack of Cloud apps (Amazon CloudFront, on Amazon Web Services, with Zendesk). So you can built your own BYOA Cloud app on top of a Cloud service (Podio), which itself is on top of Cloud services (Amazon's). It's &lt;a href="http://en.wikipedia.org/wiki/Turtles_all_the_way_down"&gt;turtles all the way down&lt;/a&gt;, and I think we'll see apps like this increasingly in the future. Clouds on top of clouds. Podio is on Amazon, so an Amazon outage affects it. Its customer management is with Zendesk, so ditto. A Cloud Service Broker can monitor and manage this.&lt;br /&gt;&lt;br /&gt;By the way, the next trend? BYOI: Bring Your Own Identity. A future post on that...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6625733181246121934?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6625733181246121934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6625733181246121934'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/byoa-turtles-all-way-down.html' title='BYOA - Turtles all the way down'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8626146994071447706</id><published>2011-05-31T03:00:00.000+01:00</published><updated>2011-05-31T03:06:00.426+01:00</updated><title type='text'>CTOEdge - It's 4am, do you know where your Cloud provider is?</title><content type='html'>I wrote an article about how to control for the reliability of third-party Cloud services. There is an old quote about distributed systems which I always think of, in relation to Cloud services:&lt;br /&gt;&lt;blockquote&gt;...it is worth being mindful of the famous quote (by Leslie Lamport) that &lt;span style="font-style: italic;"&gt;"a distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.”&lt;/span&gt; In the case of an organization using cloud services, the failure of a computer you didn't even know existed and isn’t under your control and may not even be in the same country as you can render your business inoperable...&lt;br /&gt;&lt;a href="http://www.ctoedge.com/content/its-4-am-%E2%80%94-do-you-know-where-your-cloud-provider"&gt;http://www.ctoedge.com/content/its-4-am-%E2%80%94-do-you-know-where-your-cloud-provider&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://www.ctoedge.com/content/its-4-am-%E2%80%94-do-you-know-where-your-cloud-provider"&gt;Check out the article over at CTOEdge&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8626146994071447706?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8626146994071447706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8626146994071447706'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/ctoedge-its-4am-do-you-know-where-your.html' title='CTOEdge - It&apos;s 4am, do you know where your Cloud provider is?'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3454221209573623574</id><published>2011-05-27T08:54:00.000+01:00</published><updated>2011-05-27T09:07:12.414+01:00</updated><title type='text'>Alternatives to OpenSSL: How to graphically create an X.509 Certificate with a private key</title><content type='html'>There are many ways to generate an X.509 Certificate, including using OpenSSL on the command line. However, mastering the OpenSSL command-line options can be tough for people who only need to create a certificate now and again. If you'd like a free tool which can an X.509 certificate graphically, no command-line needed, then take a look at the Vordel SOAPbox. It's a &lt;a href="http://vordel.com/products/soapbox/free_download.html"&gt;free download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once you download it, here is how to generate a certificate:&lt;br /&gt;&lt;br /&gt;1) Go to the Security menu item, then "View Certificates"&lt;br /&gt;&lt;br /&gt;2) Click on "Create/Import"&lt;br /&gt;&lt;br /&gt;3) Click the "Edit" button and input the various attributes for your certificate (e.g. Common Name, stateOrProvinceName, countryName). Once you're done, press "OK".&lt;br /&gt;&lt;br /&gt;4) Press "Sign Certificate" and choose whether you want to Self-Sign the certificate. Note that making a CSR (Certificate Signing Request) isn't an option in SOAPbox so you can either self-sign the certificate or sign it with a local CA certificate.&lt;br /&gt;&lt;br /&gt;5) Then press "Export Certificate" to export the certificate as a .pem file. Or press "Export Certificate and Key" to export your certificate along with its private key (but note you'll have to enter a password for this, and remember the password).&lt;br /&gt;&lt;br /&gt;Once you've done these five steps, you have your certificate. It's as simple as that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3454221209573623574?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3454221209573623574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3454221209573623574'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/alternatives-to-openssl-how-to.html' title='Alternatives to OpenSSL: How to graphically create an X.509 Certificate with a private key'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4649292266305783837</id><published>2011-05-27T01:17:00.001+01:00</published><updated>2011-06-16T16:48:02.824+01:00</updated><title type='text'>Mobile reach, and reachback: Enabling Mobile Apps</title><content type='html'>There was a lot of great interested in the webinar last week about enabling mobile apps, including a lot of discussion of the "Reachback" architecture which enables mobile apps to connect back into the enterprise apps, through a Cloud-based "border Gateway" as Scott Matsumoto put it.&lt;br /&gt;&lt;br /&gt;I'm happy to say that the &lt;a href="http://www.vordel.com/research/Enabling_Mobile_Applications_-_Easily_and_Securely.html"&gt;recorded webinar is now online, and you can view it here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4649292266305783837?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4649292266305783837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4649292266305783837'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/mobile-reach-and-reachback-enabling.html' title='Mobile reach, and reachback: Enabling Mobile Apps'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-363585168113596843</id><published>2011-05-19T04:15:00.000+01:00</published><updated>2011-05-19T04:37:03.475+01:00</updated><title type='text'>Webinar on 19 May - Enabling Secure Mobile Applications</title><content type='html'>Tomorrow, 19 May, &lt;a href="http://www.cigital.com/about/team/thoughtleaders/scott-matsumoto.php"&gt;Scott Matsumoto &lt;/a&gt;from &lt;a href="http://www.cigital.com"&gt;Cigital &lt;/a&gt;and I are presenting a webinar on the topic of secure mobile applications. In particular, we focus on the question of how to deploy mobile applications which must make use of internal systems behind the firewall. This is a common problem, since organizations understandably do not want to punch inbound holes in their firewalls. Additionally, the worlds of mobile apps (REST, JSON) and the enterprise world (SOAP/WSDL, message queues) must be bridged.&lt;br /&gt;&lt;br /&gt;The webinar is at 12pm Eastern, Thursday 19 May. Register at the link below:&lt;br /&gt;&lt;a href="https://www2.gotomeeting.com/register/382089859"&gt;&lt;br /&gt;https://www2.gotomeeting.com/register/382089859&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-363585168113596843?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/363585168113596843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/363585168113596843'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/webinar-on-19-may-enabling-secure.html' title='Webinar on 19 May - Enabling Secure Mobile Applications'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-122913056109532413</id><published>2011-05-09T18:01:00.000+01:00</published><updated>2011-05-09T18:10:08.106+01:00</updated><title type='text'>PCI-DSS for credit card payments with Vordel</title><content type='html'>There is a new customer case study up on the Vordel website, explaining how the Vordel Gateway &lt;a href="http://vordel.com/customers/cetrel.html"&gt;manages credit card data, supporting PCI-DSS, and providing monitoring in conjunction with HP. The case study is for Cetrel in Luxembourg&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is the background:&lt;br /&gt;&lt;ul id="nested"&gt;&lt;li&gt;Cetrel had to create over 600 different Web Services to meet the many and varied needs of its individual customers. &lt;/li&gt;&lt;li&gt;Fine-grained and customized security controls (such as crypto  settings for confidentiality and integrity) specific to each Web Service  and customer needed to be replicated and enforced. &lt;/li&gt;&lt;li&gt;The new solution needed to be deployed without disrupting the  continued delivery of the service and be able to go live into production  within 4 weeks of delivery.&lt;/li&gt;&lt;li&gt;Cetrel required a solution offering a broad range of security policy  support; ranging from existing legacy standards to the very latest  versions of WS-Security policy.&lt;/li&gt;&lt;li&gt;The solution also had to be compliant with Mastercard and VISA rules  and regulations (especially PCI-DSS) and be capable of integrating all  relevant compliance amendments.&lt;/li&gt;&lt;li&gt;Reduce as much as possible the configuration changes required to the  new backend system, keeping in mind that the rollout of customers will  be completed over several months.&lt;/li&gt;&lt;li&gt;Finally, Cetrel required a solution offering very stable performance  levels. Cetrel needs to be able to respond quickly at all times to any  service outage. They sought a solution to monitor the Web Services  traffic and that could report into their HP monitoring solution.&lt;/li&gt;&lt;/ul&gt;And here is the outcome:&lt;br /&gt;&lt;p&gt; With Vordel, Cetrel addresses all its technical concerns and is  successfully delivering on its overall stated business objectives.  Benefits derived from the Vordel Gateway appliance include:  &lt;/p&gt;&lt;ul id="nested"&gt;&lt;li&gt;An improvement in the overall performance and efficiency of the SOA  infrastructure. The gateway is dedicated to the tasks of accelerating  the processing of XML and other data formats and security protocols  whilst the application server infrastructure is focused on processing  business logic.&lt;/li&gt;&lt;li&gt;Easier and faster on-boarding of new customers via the flexibility  of the security standards supported by the Vordel Gateway and  versatility of applying different dedicated per user policies for the  very same Web Service.&lt;/li&gt;&lt;li&gt;Improved operational efficiencies via the segregation of team  duties; the application support team can focus on the business logic  coding whilst the infrastructure support team can focus on security and  monitoring.&lt;/li&gt;&lt;li&gt;Cetrel reduces the risk of security weaknesses via in-house  development; now the developers can focus on business and functionality  integration.&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-122913056109532413?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/122913056109532413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/122913056109532413'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/pci-dss-for-credit-card-payments-with.html' title='PCI-DSS for credit card payments with Vordel'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6191830898278951108</id><published>2011-05-04T14:02:00.000+01:00</published><updated>2011-05-06T18:56:38.812+01:00</updated><title type='text'>Speaking next week at the European Identity Conference</title><content type='html'>I'm speaking next week on a panel at Kupinger Cole's European Identity Conference (EIC) in Munich. The session is entitled &lt;a href="http://www.id-conf.com/sessions/867"&gt;How to do Authentication for the Private, Hybrid, and Public Cloud - Secure, Unified, Flexible&lt;/a&gt;. Also on the panel are Judith Littel from CloudID, Travis Spencer from Ping Identity and Thomas C Stewart from SecureAuth. Sebastian Rohr from Kupinger Cole is moderating. It looks to be an interesting session and I'm very much looking forward to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6191830898278951108?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6191830898278951108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6191830898278951108'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/05/speaking-next-week-at-european-identity.html' title='Speaking next week at the European Identity Conference'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4776610713764347064</id><published>2011-04-23T16:27:00.000+01:00</published><updated>2011-04-23T17:15:27.692+01:00</updated><title type='text'>Inaugural Boston Cloud Security Alliance meeting on April 27</title><content type='html'>My colleague Josh has organized the &lt;a href="http://xmlgateway.blogspot.com/2011/04/finalized-agenda-for-first-meeting-of.html"&gt;first Boston CSA meet at CA's offices in Framingham next Wednesday at 6pm.&lt;/a&gt; There are two great speakers lined up: &lt;a href="http://www.linkedin.com/pub/bhargav-shah/3/748/b24"&gt;Bhargav Shah from KPMG &lt;/a&gt;will talk about risks and controls for cloud models, and &lt;a href="http://www.linkedin.com/pub/robert-levine/0/b9b/4b7"&gt;Robert Levine from SENA Systems &lt;/a&gt;will talk about the impact of  Identity and Access Management (IAM) on cloud computing (in the immortal words of Gloria Estevan, IAM "cuts both ways" with cloud computing, since you can host IAM in the cloud, but also use IAM to control access to cloud-based resources).&lt;br /&gt;&lt;br /&gt;I suspect that some of the discussion at the CSA meet will focus on the recent travails at the Amazon Web Services datacenter beside Dulles Airport. How can such outages be mitigated? &lt;a href="http://www.nytimes.com/2011/04/23/technology/23cloud.html"&gt;Lew Moorman of Rackspace said&lt;/a&gt; it's like the equivalent of a plane crash, which is alarming but doesn't call all of air travel into question. Where the air travel analogy breaks down is that a person can't travel on two planes at once. The large cloud customers like Netflix who spread their cloud usage across centers were not brought down. As &lt;a href="http://www.govtech.com/blogs/lohrmann-on-infrastructure/Amazon-Gets-Rocked-in-042311.html"&gt;Dan Lohrman says on the Govtech website&lt;/a&gt;, it's a reason "You need a backup for your cloud provider's backup". The big guys like Netflix were able to organize (and pay for) this spread. But this is difficult for the smaller guys, like Quora who were brought down, but it's a further pointer to a broker model &lt;a href="http://www.zdnet.com/blog/gardner/cloud-brokering-building-a-cloud-of-clouds/4140"&gt;where off-the-shelf brokers open up the "cloud of clouds" &lt;/a&gt;to the mass market.&lt;br /&gt;&lt;br /&gt;See you next Wednesday!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4776610713764347064?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4776610713764347064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4776610713764347064'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/inaugural-boston-cloud-security.html' title='Inaugural Boston Cloud Security Alliance meeting on April 27'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1340205082205505950</id><published>2011-04-22T13:11:00.000+01:00</published><updated>2011-04-22T13:14:24.244+01:00</updated><title type='text'>Cloud Security Alliance blog - Protect the keys to you API Kingdom</title><content type='html'>I've a new post up on the &lt;a href="http://blog.cloudsecurityalliance.org/2011/04/18/protect-the-api-keys-to-your-cloud-kingdom/"&gt;Cloud Security Alliance blog &lt;/a&gt;on how to "Protect the API Keys to your Cloud Kingdom". It talks about the Cloud Service Broker pattern, and how this can be brought to bear on the problem. I've tried to gear the article toward practical advice, because there is so much theoretical information out there on Cloud security. Check it out at:&lt;br /&gt;&lt;a href="http://blog.cloudsecurityalliance.org/2011/04/18/protect-the-api-keys-to-your-cloud-kingdom/"&gt;&lt;br /&gt;http://blog.cloudsecurityalliance.org/2011/04/18/protect-the-api-keys-to-your-cloud-kingdom/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1340205082205505950?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1340205082205505950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1340205082205505950'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/cloud-security-alliance-blog-protect.html' title='Cloud Security Alliance blog - Protect the keys to you API Kingdom'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5909157280896877912</id><published>2011-04-12T16:42:00.001+01:00</published><updated>2011-04-12T20:36:42.925+01:00</updated><title type='text'>As goes the Cisco ACE XML Gateway, so goes the Flip</title><content type='html'>Roman Stanek pithily tweets today that "&lt;a href="http://twitter.com/RomanStanek/status/57795009486921728"&gt;The Flip flopped&lt;/a&gt;", and Cisco is discontinuing it (rather than selling the business unit, thus denying the opportunity to use the headline "Cisco flips the Flip"). I guess the irony is that, as &lt;a href="http://arstechnica.com/gadgets/news/2011/04/two-years-after-buying-pure-digital-cisco-ditches-the-flip.ars"&gt;Ars Technica reports&lt;/a&gt;,&lt;span style="font-style: italic;"&gt; &lt;/span&gt;far from actually flopping,&lt;span style="font-style: italic;"&gt; "the Flip was still holding its ground against competition like Kodak  with its own line of small, pocketable video cameras. Pure Digital  offered one of the cleanest and easiest to use non-phone video  solutions."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So Cisco purchases and discontinues a product. Nothing fundamentally wrong with the product, but Cisco refocuses and does what it does best. It reminds me of the Cisco ACE XML Gateway, discontinued and being replaced by customers with the Vordel Gateway through the &lt;a href="http://www.soatothecloud.com/2010/10/replacing-ace-cisco-ace-xml-gateway.html"&gt;Cisco ACE XML Gateway Replacement Program&lt;/a&gt;. Cisco refocuses, customers still get the functionality through other means, and overall life goes on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5909157280896877912?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5909157280896877912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5909157280896877912'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/as-goes-cisco-ace-xml-gateway-so-goes.html' title='As goes the Cisco ACE XML Gateway, so goes the Flip'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3730094750608290150</id><published>2011-04-08T16:29:00.000+01:00</published><updated>2011-04-08T17:13:25.271+01:00</updated><title type='text'>Getting your hands on Vordel 6.0.3</title><content type='html'>Since I posted a &lt;a href="http://www.soatothecloud.com/2011/04/video-registering-and-managing-web.html"&gt;video demo of the Vordel Gateway v6.0.3&lt;/a&gt; a couple of days ago, I've been getting emails asking how to get a copy. I can confirm that the Vordel Gateway is&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;as my German-speaking colleagues say,&lt;span style="font-style: italic;"&gt; &lt;a href="http://howtocloudsecurity.blogspot.com/2011/02/version-603-ist-verfugbar.html"&gt;verfügbar &lt;/a&gt;&lt;/span&gt;(meaning "available" in German, though the word sounds a lot less positive to non-German ears). &lt;a href="http://www.vordel.com/demo.html"&gt; The first step is to contact Vordel from this page&lt;/a&gt;. We'll show you a live demo (the next step from the video demo on this blog) and get you started with the Gateway. Happy Gateway-ing (if that is a word, in any language :~) ).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3730094750608290150?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3730094750608290150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3730094750608290150'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/getting-your-hands-on-vordel-603.html' title='Getting your hands on Vordel 6.0.3'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3758950202137208564</id><published>2011-04-07T09:05:00.000+01:00</published><updated>2011-04-07T16:52:05.624+01:00</updated><title type='text'>Steve Coplan from 451 Group on Vordel</title><content type='html'>Steve Coplan, Senior Analyst with &lt;a href="http://www.the451group.com"&gt;the 451 Group&lt;/a&gt;'s Enterprise Security Practice, has produced a report on Vordel. Follow the&lt;a href="http://twitter.com/the451group/status/55777585568821248"&gt; link from his tweet&lt;/a&gt;.&lt;br /&gt;&lt;img style="width: 300px; height: 123px;" src="http://1.bp.blogspot.com/-OmfVct42dMQ/TZ1wqNtVA8I/AAAAAAAABFs/pToMPmnD7K0/s400/the451group.jpg" alt="" id="BLOGGER_PHOTO_ID_5592750182800622530" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3758950202137208564?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3758950202137208564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3758950202137208564'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/steve-coplan-from-451-group-on-vordel.html' title='Steve Coplan from 451 Group on Vordel'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-OmfVct42dMQ/TZ1wqNtVA8I/AAAAAAAABFs/pToMPmnD7K0/s72-c/the451group.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1577803222793672166</id><published>2011-04-06T08:57:00.000+01:00</published><updated>2011-04-06T09:48:13.544+01:00</updated><title type='text'>Video: Registering and managing a Web Service: Vordel 6.0.3 in Action</title><content type='html'>This demo shows the &lt;a href="http://www.vordel.com/products/gateway/index.html"&gt;Vordel Gateway &lt;/a&gt;v6.0.3 in action, covering the common case of (a) Registering a service, (b) applying policies, (c) showing the Gateway in action enforcing the policies, (d) reporting on service usage, (e) showing why messages are blocked. Finally we see the Policy Studio in action, this is what is used to make and edit policies.&lt;br /&gt;&lt;br /&gt;If you want to see more specific video demos, check out the&lt;a href="http://www.vordel.com/oracle/"&gt; demos of the Vordel Gateway working with Oracle Entitlements Server and Oracle Access Manager here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note: Increase to full-screen to see the detail (or, if you're using a phone or tablet, simply pinch and zoom the video to see more).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="427" height="353" class="BLOG_video_class" id="BLOG_video-12b26bcb710d91d0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt6.googlevideo.com/videoplayback?id%3D12b26bcb710d91d0%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D672698E8EB4DE1B85320C671325F701B9FB90B8A.3CC06AFB71B3C916D57552EDDBED0441122A99E5%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D12b26bcb710d91d0%26offsetms%3D5000%26itag%3Dw160%26sigh%3Df7bNMd7WAN1MEfch9HwU8NHB45I&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="427" height="353" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt6.googlevideo.com/videoplayback?id%3D12b26bcb710d91d0%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D672698E8EB4DE1B85320C671325F701B9FB90B8A.3CC06AFB71B3C916D57552EDDBED0441122A99E5%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D12b26bcb710d91d0%26offsetms%3D5000%26itag%3Dw160%26sigh%3Df7bNMd7WAN1MEfch9HwU8NHB45I&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1577803222793672166?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1577803222793672166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1577803222793672166'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/video-registering-and-managing-web.html' title='Video: Registering and managing a Web Service: Vordel 6.0.3 in Action'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-9195109260060813565</id><published>2011-04-05T16:48:00.000+01:00</published><updated>2011-04-05T16:53:23.100+01:00</updated><title type='text'>Webinar on SOA and Cloud auf Deutsch</title><content type='html'>Last week Vordel ran a case study webinar with Badenia AG (a German bank) on SOA and Cloud security. The information is below (auf Deutsch), and &lt;a href="http://www.vordel.com/research/29March_Sicherheit_bei_der_Verwendung_von_Webservices_und_XML.html"&gt;here is a link to view the Webinar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Webinar: Sicherheit bei der Verwendung von Webservices und XML&lt;/h3&gt;  &lt;strong&gt;&lt;em&gt;Es werden die wichtigsten Security Maßnahmen beim Einsatz  von Webservice (XML) an einem Beispiel aus der Praxis, der "Deutsche  Bausparkasse Badenia AG ",  gezeigt. &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Webservices (XML) werden immer häufiger eingesetzt! Hierbei wird  zwischen der Inhouse Kommunikation und der über die Unternehmensgrenzen  hinausgehenden externen Kommunikation unterschieden. Bei externer  Kommunikation werden heute Firewalls verwendet, diese aber Schauen in  der Regel nicht in die jeweiligen XML Ströme hinein und lassen eine  Kommunikation zu. Bei der Integration von Backendservices wird  üblicherweise auf Security Maßnahmen verzichtet, was zur Folge hat, dass  die Risiken der Inhouse Kommunikation nicht identifiziert werden. Bei  der Absicherung von Webservices (XML) wird am Beispiel des Vordel  Gateways aufgezeigt das Security nicht einen Performance Verlust   bedeutet. Eine wichtige Komponente ist der zentrale Policy Enforcement  Point,  der in Verbindung mit einem Zertifikate Store die XML Ströme  absichern kann. Dabei besteht die Möglichkeit, mittels einer Script  Engine,  die Standard Funktionalitäten zu erweitern und Ihren speziellen  Anforderungen anzupassen.&lt;br /&gt;&lt;br /&gt;Die Deutsche Bausparkasse Badenia setzt für die Erfüllung ihrer  Webservice Security Anforderungen bereits seit dem Jahr 2004 Produkte  von Vordel ein. Inzwischen ist das Vordel XML Gateway zu einem zentralen  Bestandteil der Anwendungssicherheit geworden, was zu einer guten  Bewertung der Infrastruktur in mehreren Security Reviews führte. Im  Webinar wird gezeigt, wie das XML Gateway in die bestehende  Infrastrukturlandschaft integriert ist, und welche Policies für die  Herstellung der Webservice Security konfiguriert wurden. Es wird anhand  eines Beispiels aus der Praxis gezeigt, wie flexibel das Gateway an  spezielle kundenspezifische Anforderungen angepasst werden kann.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-9195109260060813565?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/9195109260060813565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/9195109260060813565'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/webinar-on-soa-and-cloud-auf-deutsch.html' title='Webinar on SOA and Cloud auf Deutsch'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-2347989289770576374</id><published>2011-04-02T22:01:00.000+01:00</published><updated>2011-04-02T22:18:36.526+01:00</updated><title type='text'>Cloud API Single Sign-On at Cloud Expo in NYC</title><content type='html'>In June I'm going to be speaking at the&lt;a href="http://cloudcomputing.sys-con.com/node/1767311"&gt; Cloud Expo in NYC on Single Sign-On to Cloud APIs&lt;/a&gt;. I'll be expanding on the points I made in my &lt;a href="http://blog.cloudsecurityalliance.org/2011/02/01/extend-the-enterprise-into-the-cloud-with-single-sign-on-to-cloud-based-services/"&gt;Cloud Security Alliance blog post back in February, &lt;/a&gt;namely that:&lt;br /&gt;&lt;br /&gt;- API Keys must be protected (and an interesting side-note here is that HSM vendors have a lot to gain from this, as they have been in the key management business for years)&lt;br /&gt;&lt;br /&gt;- A broker model allows you to use local sign-in (to a PC, or to a portal) and leverage this into  sign-in to a Cloud service (such as Gmail).&lt;br /&gt;&lt;br /&gt;- Standards such as SAML and OAuth are certainly important, but so are "de facto standards" like how Amazon's "Query API" authentication.&lt;br /&gt;&lt;br /&gt;And, as ever, I believe that the most valuable part of a talk like this are practical case studies. I'll include a number, including an education provider using Vordel to manage Single Sign-On to Google Apps for its students, and an organization which needed to choose which access management options use for its API.&lt;br /&gt;&lt;br /&gt;See you in New York!&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px; height: 61px;" src="http://2.bp.blogspot.com/-HdVLJQ9uox0/TZePc7KxoqI/AAAAAAAABFk/J6lsSg4L5P0/s400/CloudExpoNewYork2011.jpg" alt="" id="BLOGGER_PHOTO_ID_5591095189485757090" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-2347989289770576374?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2347989289770576374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/2347989289770576374'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/04/cloud-api-single-sign-on-at-cloud-expo.html' title='Cloud API Single Sign-On at Cloud Expo in NYC'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-HdVLJQ9uox0/TZePc7KxoqI/AAAAAAAABFk/J6lsSg4L5P0/s72-c/CloudExpoNewYork2011.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7688815785587094598</id><published>2011-03-31T17:42:00.000+01:00</published><updated>2011-03-31T18:22:24.004+01:00</updated><title type='text'>Tip: Hostnames and Common Names</title><content type='html'>In the latest release of the Vordel Gateway, v6.0.3, we added the option for the Gateway to check if a certificate's Common Name matches the hostname of the machine using it. What does this mean?&lt;br /&gt;&lt;br /&gt;Sometimes internal machines are setup with SSL certificates which don't  match their hostnames. Usually the reason is because the organization  has bought a block of certs from Verisign, doesn't want to order more,  and doesn't want to use self-signed certificates.  So if you are putting the Vordel Gateway in front of a machine which (for one reason or another) is using an SSL certificate which doesn't match its hostname, then you can tell the Gateway to either (a)  flag this as an issue with the service and block the request, or (b) ignore  the problem.&lt;br /&gt;&lt;br /&gt;The setting is under the "Remote Hosts" setting in Policy Studio, and the checkbox is "Verify server's certificate matches requested hostname".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7688815785587094598?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7688815785587094598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7688815785587094598'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/tip-hostnames-and-common-names.html' title='Tip: Hostnames and Common Names'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6329955224240192563</id><published>2011-03-30T11:19:00.000+01:00</published><updated>2011-03-30T20:15:25.134+01:00</updated><title type='text'>APIs and Services come full circle</title><content type='html'>Back in 1996 when I joined an EDI company as a programmer, the first thing a colleague did was put the definitive Windows API reference, &lt;a href="http://www.charlespetzold.com/pw5/ProgWinEditions.html"&gt;Programming Windows by Charles Petzold&lt;/a&gt;, on my desk. At the time we programmed for Windows 3.1 (and for something called "DOS Windows" - don't ask...). Then Windows 95 and NT. I can remember the excitement in our small programming group when the &lt;a href="http://www.charlespetzold.com/pw5/"&gt;5th edition of "Petzold"&lt;/a&gt;, as we called it, came out. This heavy tome was "The definitive guide to the Win32 API".&lt;br /&gt;&lt;br /&gt;At the time, an API was understood as being for C++ or Visual Basic. MAPI (the Mail API for Windows) is a good example. At the time I would write EDI clients using ISOCOR products, and one in particular, Personal ISOTrade, implemented the MAPI API. So, with that product, all we had to do was implement that API to send EDI messages (EDIFACT and HL7) over X.400. I also did Java programming at the time, and used Java toolkits (e.g. J/Crypto which was a full-strength JCA/JCE implementation) but these were toolkits or implementations of interfaces, not quite the same as "APIs".&lt;br /&gt;&lt;br /&gt;Fast forward ten years. Service Oriented Architecture principles took hold, even if the name "SOA" remained controversial. The notion of &lt;span style="font-style: italic;"&gt;Services &lt;/span&gt;replaced APIs. You may still use actual programmatic APIs, but the understanding was that what you were really using is a &lt;span style="font-style: italic;"&gt;service &lt;/span&gt;which shouldn't be tied to a particular language. This kind of thinking was liberating, and opened up all kinds of possibilities. Gradually the APIs could be exposed in a more widely-usable way. This is how we started to talk about "services" not "APIs".&lt;br /&gt;&lt;br /&gt;Daryl Plummer put it well that&lt;a href="http://blogs.gartner.com/daryl_plummer/2010/11/08/cloudstreams-the-next-cloud-integration-challenge/"&gt;&lt;span style="font-style: italic;"&gt; "someone  told me, “if you’re over 30 you call it an ‘API’, and if you are under  30 you call it a ‘service’”)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But then what happened? It came full circle. In 2011 when we talk about "API's", we mean Web APIs like the ones on this &lt;a href="http://www.programmableweb.com/apis"&gt;huge list of Web APIs&lt;/a&gt;. The kids are now talking about APIs again, but not in the way that we did 15 years ago. Take for example the &lt;a href="http://developer.usatoday.com/docs/read/salaries"&gt;USA Today Sports Salaries API&lt;/a&gt;. Are you interested in finding out how much a particular US sports player earns? Then this API will get the info, using a HTTP request and receiving the response in JSON or RSS (XML).&lt;br /&gt;&lt;br /&gt;One big difference between the C++/VB APIs of old and the Web APIs of today is that API management and security wasn't something that was considered 15 years ago. There were exceptions, such as crypto APIs which included controls against attackers swapping in their own implementation of the API as an attack. But mostly the APIs were called under the context of the user's application, and security was at that level (i.e. "The user must have logged in to use the app"). And usage of the API was usually not tracked.&lt;br /&gt;&lt;br /&gt;But now, API management and security is important. To see why, check out that &lt;a href="http://developer.usatoday.com/docs/read/salaries"&gt;USA Today Sports Salary API page &lt;/a&gt;again. Access to this API is managed using an API Key:&lt;br /&gt;&lt;blockquote&gt;Every call to the USA TODAY Salaries API must be authenticated with the programmer's unique API key, as in this sample request.  &lt;pre&gt;http://api.usatoday.com/open/salaries?api_key=XXXXXX&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;USA Today uses this developer key to limit access to their valuable sports salaries database to just 1000 requests per day. However, the API key in the example above is sent over (yikes) plain HTTP, so an imposter could sniff someone else's API key from a message and then use it to suck down sports salaries on their account. All of this points to the need for API management and security. Fortunately there are &lt;a href="http://www.soatothecloud.com/2011/02/securing-apis.html"&gt;options for API security&lt;/a&gt;, so that exposing a Web API doesn't have to mean hanging your data out for the world to access over plain HTTP. With a &lt;a href="http://vordel.com/products/gateway/index.html"&gt;service gateway&lt;/a&gt; it is quite trivial to create a policy that enforces SSL, enforces usage limits, and provides API monitoring.&lt;/p&gt;&lt;p&gt;One of my favorite Web APIs to use in demos is SalesForce.com . SalesForce has a ton of information about their API on their &lt;a href="http://www.salesforce.com/us/developer/docs/api/index.htm"&gt;developer site&lt;/a&gt;. Vordel can be used to connect up to  SalesForce, including protecting API Key and caching the Session  Identifier which is returned back by SalesForce.&lt;br /&gt;&lt;br /&gt;One of the neat  things about this is that all traffic from the app to the SalesForce API is now authenticated and monitored, and shown in the browser, as shown below:&lt;/p&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-c8OVI2UAHZw/TZMTkijoE5I/AAAAAAAABFA/REpistEqYuA/s1600/SalesForce1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 359px;" src="http://4.bp.blogspot.com/-c8OVI2UAHZw/TZMTkijoE5I/AAAAAAAABFA/REpistEqYuA/s400/SalesForce1.jpg" alt="" id="BLOGGER_PHOTO_ID_5589833080969368466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-aYwpviAdt5Q/TZMTku0BNoI/AAAAAAAABFI/cFWuTvFw0aU/s1600/SalesForce2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 338px;" src="http://1.bp.blogspot.com/-aYwpviAdt5Q/TZMTku0BNoI/AAAAAAAABFI/cFWuTvFw0aU/s400/SalesForce2.jpg" alt="" id="BLOGGER_PHOTO_ID_5589833084259350146" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This type of API usage monitoring wasn't possible with the APIs of the past.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So APIs and services have come full circle. 15 years ago, it was all about APIs. Then it was all about services. Now, we talk about APIs again, but mean something different than we did back then. Security and management of these new APIs has reared its head, but the good news is that there are solutions to this.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6329955224240192563?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6329955224240192563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6329955224240192563'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/apis-and-services-come-full-circle.html' title='APIs and Services come full circle'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-c8OVI2UAHZw/TZMTkijoE5I/AAAAAAAABFA/REpistEqYuA/s72-c/SalesForce1.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4580482838099495639</id><published>2011-03-29T11:59:00.000+01:00</published><updated>2011-03-29T14:44:33.041+01:00</updated><title type='text'>Speaking XACML</title><content type='html'>Over the past few weeks Gunnar Peterson has been running an interview with Gerry Gebel and his colleagues from Axiomatics, and now he's on to &lt;a href="http://1raindrop.typepad.com/1_raindrop/2011/03/security-140-conversation-with-gerry-gebel-part-3-a-visit-from-madame-toctou.html"&gt;Part 3 of the conversation&lt;/a&gt;. I've known Gerry since his Burton Group days, and I know the importance he places on products natively speaking XACML (&lt;a href="http://www.vordel.com/downloads/sdaolnwod/solution_axiomatics.pdf"&gt;at Vordel we support XACML&lt;/a&gt;, but we also &lt;a href="http://xmlgateway.blogspot.com/2011/01/how-to-enforce-fine-grained.html"&gt;support native AuthZ connectors &lt;/a&gt;too). But I didn't realize that Gerry &lt;span style="font-style: italic;"&gt;himself &lt;/span&gt;speaks XACML. As in, verbalizes is in conversation. In the interview below, Gerry doesn't skip a beat in moving from English to XACML. I'd love to hear a recording of the conversation. I wonder did Gerry say &lt;span style="font-style: italic;"&gt;"In terms of XML schema, it is defined as follows: Open angle bracket, xs, colon, element, space, name equals quote attributedesigner (all one word), space type..." :~)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-sWP3am4w5dE/TZG8hMPKNKI/AAAAAAAABE4/QFR2opUrp94/s1600/GunnarPetersonGerryGebel.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/-sWP3am4w5dE/TZG8hMPKNKI/AAAAAAAABE4/QFR2opUrp94/s400/GunnarPetersonGerryGebel.jpg" alt="" id="BLOGGER_PHOTO_ID_5589455890950010018" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-nH7o8AVfIjk/TZG7ts7SRBI/AAAAAAAABEo/bF8VzfXRCns/s1600/GunnarPetersonGerryGebel.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4580482838099495639?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4580482838099495639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4580482838099495639'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/speaking-xacml.html' title='Speaking XACML'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-sWP3am4w5dE/TZG8hMPKNKI/AAAAAAAABE4/QFR2opUrp94/s72-c/GunnarPetersonGerryGebel.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4835114893470059220</id><published>2011-03-28T23:27:00.000+01:00</published><updated>2011-03-28T23:42:37.993+01:00</updated><title type='text'>Beyond security - Monitoring and diagnosis</title><content type='html'>It is often thought that one of the chief benefits of a &lt;a href="http://www.vordel.com/products/gateway/index.html"&gt;SOA Appliance &lt;/a&gt;is security. Well, security is vital, certainly, but on a day-to-day basis a SOA Appliance is mostly used for keeping track of service usage, and for diagnosing problems with client messages. Security is taken as a given, but the monitoring provides immediate actionable information which helps clients troubleshoot their messages, and allows service providers to tailor their offerings. It also provides a path towards billing for web services, turning applications into profit centers.&lt;br /&gt;&lt;br /&gt;Following up from yesterday's video, here are some pointers to using &lt;a href="http://www.vordel.com/products/reporter/index.html"&gt;Vordel Reporter &lt;/a&gt;for monitoring service usage. In the screenshot below, you can see the client Web Service usage lookup, showing how our clients (in this case "East Industries", "Central Industries", and "West Industries") have been accessing services through the &lt;a href="http://www.vordel.com/products/gateway/index.html"&gt;Vordel Gateway.&lt;/a&gt; The information is shown simply as totals, but if you want to see running graphs, hit the "clients" button (to choose clients to view) then the "Aggregated Metrics" button:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-zBuw84KTN6I/TZELcKBqztI/AAAAAAAABEY/hd9QPy71kvI/s1600/ClientReport.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/-zBuw84KTN6I/TZELcKBqztI/AAAAAAAABEY/hd9QPy71kvI/s400/ClientReport.jpg" alt="" id="BLOGGER_PHOTO_ID_5589261190899093202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;See the "Audit Trail" button in the top-right? Click on this to construct queries over Vordel Reporter. Let's say an admin from East Industries is on the phone saying "Why did you guys block our message?". You can construct a search to find out if East Industry's messages are falling foul of Schema Validation, indicating a problem with their messages. In the search results below, we see that is indeed the case:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Iut-z2ex224/TZELcGMl09I/AAAAAAAABEQ/fo2yaJ2WGCg/s1600/AuditTrailSearch.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://1.bp.blogspot.com/-Iut-z2ex224/TZELcGMl09I/AAAAAAAABEQ/fo2yaJ2WGCg/s400/AuditTrailSearch.jpg" alt="" id="BLOGGER_PHOTO_ID_5589261189871162322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When we double-click on one of the messages, we see the message itself, and the path it took through the policy on the Vordel Gateway. We see that East Industries was authenticated, but then their message failed Schema Validation. For good measure, we see the message in the report, which we can then download and test using the &lt;a href="http://www.vordel.com/products/soapbox/index.html"&gt;SOAPbox testing tool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-o0Us05joVSE/TZELcbST_gI/AAAAAAAABEg/sI90x2I_QkM/s1600/FailedSchemaValidationAuditTrail.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://4.bp.blogspot.com/-o0Us05joVSE/TZELcbST_gI/AAAAAAAABEg/sI90x2I_QkM/s400/FailedSchemaValidationAuditTrail.jpg" alt="" id="BLOGGER_PHOTO_ID_5589261195532303874" border="0" /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" class="" style="display: block;" id="formatbar_CreateLink" title="Link"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Link" class="gl_link" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;The upshot is that the organization can troubleshoot their client's messages quickly and easily. This is one of the key day-to-day benefits of a &lt;a href="http://www.vordel.com/products/gateway/index.html"&gt;SOA Appliance&lt;/a&gt;. If you want to schedule a live demo of this feature in action, you can do that on &lt;a href="http://www.vordel.com/demo.html"&gt;the live demo page on the Vordel website&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4835114893470059220?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4835114893470059220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4835114893470059220'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/beyond-security-monitoring-and-root.html' title='Beyond security - Monitoring and diagnosis'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-zBuw84KTN6I/TZELcKBqztI/AAAAAAAABEY/hd9QPy71kvI/s72-c/ClientReport.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4948162460262290917</id><published>2011-03-25T05:35:00.000Z</published><updated>2011-03-25T12:45:50.833Z</updated><title type='text'>Searching the Vordel Reporter Audit Trail</title><content type='html'>&lt;a href="http://vordel.com/products/reporter/index.html"&gt;Vordel Reporter&lt;/a&gt; is used to view usage of Web APIs and SOAP services. It is a Web-based tool, so there is nothing to install. API and service response times are shown, as well as information on which clients are using the services.&lt;br /&gt;&lt;br /&gt;One of the neat things about Vordel Reporter is that you can drill in on messages and see the same kind of "Path through the policies" information as you see in the &lt;a href="http://vordel.com/products/gateway/index.html"&gt;Vordel Gateway&lt;/a&gt;'s Real-Time Monitoring. In the video below, I first run a report to see the clients which are accessing my services through the Vordel Gateway. Then I drill in on the Audit Trail, to see which messages from particular clients are failing schema validation, and I can take a copy of the messages themselves. The Message IDs allow me to cross-reference with the Vordel Gateway trace files. In the example, I'm checking to see which messages from "East Industries" have failed Schema Validation, and then I click on the message to see how it was processed in the Gateway. The neatest piece is at the end: The pass through the policy in the Audit Trail maps to the path through the policy shown in the Gateway's Real-Time Monitoring.&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-weight: bold;"&gt;Note: Click on the little "expand full screen" button by the video below so that you see the detail properly):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="399" height="331" class="BLOG_video_class" id="BLOG_video-1709bbe71677bbdd" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v14.nonxt3.googlevideo.com/videoplayback?id%3D1709bbe71677bbdd%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2E1BD1D6E27BA4368B48239C879C52CDE80D1F2.2D02AF17EEFA64D0C61A3690EEEB0012008ED4A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1709bbe71677bbdd%26offsetms%3D5000%26itag%3Dw160%26sigh%3DFZ3XnZeJuG0clZ3BCYfQWcSrjtY&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="399" height="331" bgcolor="#FFFFFF"flashvars="flvurl=http://v14.nonxt3.googlevideo.com/videoplayback?id%3D1709bbe71677bbdd%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2E1BD1D6E27BA4368B48239C879C52CDE80D1F2.2D02AF17EEFA64D0C61A3690EEEB0012008ED4A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1709bbe71677bbdd%26offsetms%3D5000%26itag%3Dw160%26sigh%3DFZ3XnZeJuG0clZ3BCYfQWcSrjtY&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4948162460262290917?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4948162460262290917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4948162460262290917'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/searching-vordel-reporter-audit-trail.html' title='Searching the Vordel Reporter Audit Trail'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6765529446719064325</id><published>2011-03-16T04:48:00.000Z</published><updated>2011-03-16T04:52:39.092Z</updated><title type='text'>Using SOAPbox for XPath Injection</title><content type='html'>XPath Injection is an attack which is applied to applications which consume XML. It attempts to subvert XML processing by injecting XPath, similar to how SQL Injection works.&lt;br /&gt;&lt;br /&gt;You can use the &lt;a href="http://vordel.com/products/soapbox/index.html"&gt;free SOAPbox testing tool &lt;/a&gt;to test for vulnerability to XPath Injection. This is configured in the Design Mode of SOAPbox, as shown below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0uRIEyKmo_g/TYBBH2pACFI/AAAAAAAABEI/9wEGPsRzqF0/s1600/XPathInjection.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 260px;" src="http://2.bp.blogspot.com/-0uRIEyKmo_g/TYBBH2pACFI/AAAAAAAABEI/9wEGPsRzqF0/s400/XPathInjection.jpg" alt="" id="BLOGGER_PHOTO_ID_5584535141121787986" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6765529446719064325?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6765529446719064325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6765529446719064325'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/using-soap-for-xpath-injection.html' title='Using SOAPbox for XPath Injection'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0uRIEyKmo_g/TYBBH2pACFI/AAAAAAAABEI/9wEGPsRzqF0/s72-c/XPathInjection.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5664495980888697460</id><published>2011-03-07T14:19:00.000Z</published><updated>2011-03-07T16:34:58.119Z</updated><title type='text'>Great Customer Service</title><content type='html'>At Vordel we pride ourselves on great customer support, providing 24-hour phone and email service, our &lt;a href="https://support.vordel.com/"&gt;Vordel support portal&lt;/a&gt; filled with solutions, and valuing &lt;a href="http://twitter.com/jaapgorjup/status/23422013842399233"&gt;comments like this from customers&lt;/a&gt;. We also know that our products are used for important tasks, like monitoring shipping and signing doctors into medical records. However, try as we might, no vendor can approach the level of fanatical appreciation displayed by Apple  customers, as &lt;a href="http://tech.fortune.cnn.com/2011/03/03/steve-jobs-reality-distortion-takes-its-toll-on-truth/"&gt;this classic comment yesterday on Forbes.com shows. &lt;/a&gt; Not only do Apple products help this guy with his home lighting and home security, and cause him to not care one iota about more RAM or faster processors (but still fork out cash for the new faster products anyway), but he actually &lt;span style="font-style: italic;"&gt;conceived a child &lt;/span&gt;with an app:&lt;br /&gt;&lt;blockquote&gt;Thing is, there are apps I can only get from the app store that control my home lighting, and my home security. I own hundreds of apps that help me through out my work day. Also, I use my iPhone to project family pictures or videos on to my TV screen through the air and on top of that every time I have ever had any kind of issue with Apple, when I call them, they not only make it right, they go the extra mile. There store staff is trained and friendly and all my books, music, and movies, all sync so easily with my iPhone and iPad. Why would I ever want to switch to a different tablet. And Steve Job's job is to come out and be a salesperson. Sales people always tell you what you want to hear. Why would they come out and say something negative like, "And RAM, well, it just stays the same." That would be plain stupid. So who cares? The specs are clearly on the the Apple website. I have a child because of an app and we had been trying for two years. I guess what I am saying is. With my iPhone, iPad, and iTouch, they have always been fast enough for me. I have had every single one of the iPhones since they first came out. I don't need a faster processor or more RAM. Granted, I do feel that the product is faster when I get a new iPhone but ...I would have never known how that felt until I had the new one in my hand. So all of that is just icing on the cake. I love my iPhone because it comes with great customer service, is a well made product, and ties my whole life together very easily and is very easy to use. A kid can use an iPhone. Why would I switch? I have no problems and a great product that works perfectly. It is obvious that this guys just wants to hate on Apple.&lt;br /&gt;&lt;br /&gt;Read for yourself on:&lt;br /&gt;&lt;a href="http://tech.fortune.cnn.com/2011/03/03/steve-jobs-reality-distortion-takes-its-toll-on-truth/"&gt;http://tech.fortune.cnn.com/2011/03/03/steve-jobs-reality-distortion-takes-its-toll-on-truth/&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5664495980888697460?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5664495980888697460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5664495980888697460'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/great-customer-service.html' title='Great Customer Service'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8235076903898658110</id><published>2011-03-06T14:36:00.000Z</published><updated>2011-03-06T15:34:54.439Z</updated><title type='text'>Monitoring and securing REST Services on the Vordel demo image</title><content type='html'>Vordel provides a demo "sandbox" Virtual Machine everything you need to familiarize yourself with the Vordel products, including sample Web Services which you can apply policies to. The demo VM can be opened in Oracle VirtualBox or in VMware Player or Workstation.&lt;br /&gt;&lt;br /&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; width: 306px; height: 162px;" src="http://1.bp.blogspot.com/-wucmzFCxtBg/TXOcnP4jbpI/AAAAAAAABD4/2-3qq3fw2nM/s400/SandBox.png" alt="" id="BLOGGER_PHOTO_ID_5580976561334742674" border="0" /&gt;&lt;br /&gt;The sample  "StockQuote" service on the Sandbox  image has HTTP GET interface, as well as the SOAP  1.1 and SOAP 1.2 interface. This makes it useful for REST/SOAP protocol conversion scenarios.&lt;br /&gt;&lt;br /&gt;First, make sure the demo services are running (double-click on the shortcut for the sample Web Services on the demo image's desktop). Then if you point browser to this URL on the sandbox, you'll see the stock quote for the ticker "VRDL":&lt;br /&gt;&lt;br /&gt;http://webservices:8000/axis2/services/StockQuoteService/getPrice?symbol=VRDL&lt;br /&gt;&lt;br /&gt;[ Note that "webservices" is mapped to the local loopback address using the hosts file. So you could use "localhost" instead of "webservices" in the URL if you like].&lt;br /&gt;&lt;br /&gt;There is also an "update" method on this same Web Service, also called with a REST interface. This is for updating the stock price. Calling the following with a GET from a browser will result in some stock price manipulation:&lt;br /&gt;&lt;br /&gt;http://webservices:8000/axis2/services/StockQuoteService/update?symbol=VRDL&amp;amp;price=84.0&lt;br /&gt;&lt;br /&gt;Now once again call getPrice for VRDL, and see what happens. The stock price has doubled.&lt;br /&gt;&lt;br /&gt;But hang on: One of the principle of REST is that a GET should not have "side effects" (and updating a stock price is clearly is a side effect). Also, pure REST shouldn't involve the use of HTTP QueryString parameters like we just used, even though that is how the majority of people understand REST is used (in pure REST the parameters are contained in the URL itself, not "after the question mark").&lt;br /&gt;&lt;br /&gt;So let's use the Vordel Gateway to apply some policies to these services, and make them more RESTful.&lt;br /&gt;&lt;br /&gt;Firstly, it makes sense to only allow certain authenticated clients to change the stock price using "update", while allowing anyone to view the stock price using "getPrice". It also makes sense to force clients to use "PUT" to put up a new stock price, and not violate the principles of REST by using a "GET" for this purpose. This is a classic example of how the Vordel  is used to apply different policies to different REST services. We do this by applying different authentication policies in the Vordel Gateway to "getPrice" and "update", by mapping the URIs for these REST calls to different policies at the Vordel Gateway.&lt;br /&gt;&lt;br /&gt;In this way, we avoid the wrath of angry RESTafarians by ensuring that the "update" operation can *only* be called with a HTTP PUT (not using a GET), while still allowing "getPrice" to be called with a HTTP GET.&lt;br /&gt;&lt;br /&gt;In addition, we want to make sure that the usage of these operations is tracked, so that we can see how many people are using "getPrice" versus "update".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How to detect if a client has accessed our REST service using a HTTP PUT verb:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;The following script will detect is a client is trying to access the REST service using a HTTP PUT:&lt;br /&gt;&lt;br /&gt;function invoke(msg)      &lt;br /&gt;{         &lt;br /&gt;if (msg.get("http.request.verb").equals("PUT"))&lt;br /&gt;return true;&lt;br /&gt;else&lt;br /&gt;return false;     &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This script can be put in to a Scripting Language filter in the Vordel Gateway,  and it will return true if the user attempted to call the service with a  "PUT", but return false otherwise. This allows you to branch within a  policy on the HTTP verb used, which is a classic REST use case (only  certain users can do a "PUT" on a particular URL, etc).&lt;br /&gt;&lt;br /&gt;Therefore, clients can access this REST service fine,&lt;br /&gt;&lt;br /&gt;http://vordelgateway:8080/axis2/services/StockQuoteService/getPrice?symbol=VRDL&lt;br /&gt;&lt;br /&gt;But if you try this next URL in a browser now, you will be blocked because you've used the wrong HTTP verb (the Vordel Gateway blocks you because you should have used "PUT"):&lt;br /&gt;&lt;br /&gt;http://vordelgateway:8080/axis2/services/StockQuoteService/update?symbol=VRDL&amp;amp;price=168.0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sending a HTTP GET with SOAPbox, SOAPui, or Poster:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, to use that "update" operation, you have to use a HTTP PUT. You can do this with SOAPbox (Vordel's free Web Service testing tool) or SOAPui or the simple "Poster" Firefox utility. [Note, if you're using Poster then make sure you hit "Parameter Body" so that the Content-type is "application/x-www-form-&lt;br /&gt;urlencoded". Similar requirements go for SOAPbox and SOAPui. In SOAPbox, the "Request Settings" dialog, which you can see if you click on the little downward arrow beside the green "Play Button" you use to shoot requests off to a service. Click this, then drop down the appropriate HTTP Verb in the next dialog which comes up (i.e. choose GET or PUT, not the default POST).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-flK3EkVksKk/TXOkz34wTAI/AAAAAAAABEA/Ll3eMteHqN4/s1600/SOAPboxMethod.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 276px;" src="http://1.bp.blogspot.com/-flK3EkVksKk/TXOkz34wTAI/AAAAAAAABEA/Ll3eMteHqN4/s400/SOAPboxMethod.jpg" alt="" id="BLOGGER_PHOTO_ID_5580985574324456450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The content you are sending with the HTTP PUT is:&lt;br /&gt;&lt;br /&gt;symbol=VRDL&amp;amp;price=168.0&lt;br /&gt;&lt;br /&gt;And note that you no longer have the parameters QueryString there (i.e. just this: http://vordelgateway:8080/axis2/services/StockQuoteService/update ). Note also that this is quite similar to Amazon's Query API (though this uses POST not PUT).&lt;br /&gt;&lt;br /&gt;To demo this, I simply create a user called "Gordon Gecko" in the Vordel user store with password "vordel". This user is the user allowed to update the stock price. Now, when you do a PUT to the "update" operation, I mapped a policy to the URI "/axis2/services/StockQuoteService/update", so that you must authenticate as that user (with HTTP AuthN, so I dragged in a HTTP Authentication filter into my policy).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Monitoring REST usage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to see the various REST methods show up in the Vordel Real-Time Monitoring, add "Set Service Name" filters to your policies so that you are flagging that the REST services show up in Real-Time Monitoring.&lt;br /&gt;&lt;br /&gt;If you look at the Real-Time Monitoring (connect to the Gateway on port 8090 with a browser and click on "Real-Time Monitoring"), you now see how the "update" and "getPrice" services are being used. In Vordel Reporter, you can see what Gordon Gecko has been up to, since now you're authenticating the "update" operation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8235076903898658110?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8235076903898658110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8235076903898658110'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/03/monitoring-and-securing-rest-services.html' title='Monitoring and securing REST Services on the Vordel demo image'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-wucmzFCxtBg/TXOcnP4jbpI/AAAAAAAABD4/2-3qq3fw2nM/s72-c/SandBox.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-857152243588234464</id><published>2011-02-28T08:03:00.000Z</published><updated>2011-02-28T08:35:38.067Z</updated><title type='text'>Securing APIs</title><content type='html'>One of the key questions which comes up in API Management is about which authentication scheme to use. Gunnar Peterson has written, in a different context, about &lt;a href="http://1raindrop.typepad.com/1_raindrop/2011/02/web-services-security-strength-scale.html"&gt;the benefit to the security architect of providing a menu of authentication schemes to use&lt;/a&gt;. Some clients are limited by what authentication scheme they can handle, and by providing a "menu" of authentication schemes at the API Gateway level, this can be handled. Within a policy (expressed as a "circuit" in the Vordel Gateway) you can handle clients differently depending on how they authenticated.&lt;br /&gt;&lt;br /&gt;So which API authentication schemes are on the "menu"? Of course there is HTTP Digest Auth and mutual SSL. But there are specific API authentication schemes similar to Amazon's Query API authentication. If you want to learn more about this API authentication option, then on the Vordel website there is a &lt;a href="http://www.vordel.com/research/10Nov2010FacebookIphoneREST.html"&gt;video example showing API authentication for iPhone apps and Facebook as clients&lt;/a&gt;. If you push the video on to the 20 minute mark, and listen for a few minutes, you can learn about how the Vordel Gateway provides the API security, making use of HMAC digests with SHA1. If you're familiar with the Amazon Web Services Query authentication, you will recognize this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vordel.com/research/10Nov2010FacebookIphoneREST.html"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center;  width: 400px; height: 290px;" src="http://3.bp.blogspot.com/-WnoPJ8wiw60/TWtXeYhAAfI/AAAAAAAABDw/XbIQD-CFnEo/s400/SecuringAPI.png" alt="" id="BLOGGER_PHOTO_ID_5578648742917046770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So the options for API authentication balance flexibility (providing customers with a menu of authentication options) and security (policies which vary access depending on which scheme the client uses). A Gateway provides this balance, versus hardcoding the scheme into the API itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-857152243588234464?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/857152243588234464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/857152243588234464'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/02/securing-apis.html' title='Securing APIs'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-WnoPJ8wiw60/TWtXeYhAAfI/AAAAAAAABDw/XbIQD-CFnEo/s72-c/SecuringAPI.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-6709086170859152949</id><published>2011-02-23T15:01:00.000Z</published><updated>2011-02-23T16:00:49.649Z</updated><title type='text'>Replacing walls and PDFs with conversation and videos</title><content type='html'>&lt;a href="http://www.redmonk.com/jgovernor/2011/02/22/how-registration-walls-and-pdfs-can-make-your-marketing-less-effective/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+JamesGovernorsMonkchips+%28James+Governor%27s+MonkChips%29"&gt;James Governor from Redmonk has a piece yesterday about how companies often don't "get it" that people do not want to register for PDFs, or even deal with PDFs in the first place&lt;/a&gt;. He says that &lt;span style="font-style: italic;"&gt;"Text is the language of  the Net. It’s the language of blogs". &lt;/span&gt;I agree, but I would add that &lt;span style="font-style: italic;"&gt;video &lt;/span&gt;is also a key language of the Net. Want to see how the Vordel Gateway works with Oracle Entitlements Server? &lt;a href="http://www.youtube.com/watch?v=mRMCX38J28o"&gt;Here's a video on YouTube showing it&lt;/a&gt;. And &lt;a href="http://xmlgateway.blogspot.com/2011/01/how-to-enforce-fine-grained.html"&gt;here is a blog post by my colleague Josh about the Vordel / Oracle Entitlements Server interop&lt;/a&gt;. Text and video. All Google searchable. And no registration wall.&lt;br /&gt;&lt;br /&gt;To echo one of the comments on James' piece, that mobile is driving this, I'd add that it is mobile which is driving video as well as text. My Droid 2 plays YouTube videos just fine, enabling people to view a &lt;a href="http://il.youtube.com/watch?v=BzIubZ352Nw"&gt;Vordel Gateway demo video &lt;/a&gt;right on their phone. You would be amazed how many people I talk to who say "Yeah I have watched the video" when I mention a particular Vordel feature (e.g. &lt;a href="http://www.youtube.com/user/VordelTube#p/a/71C65822D18BF1DD/0/L2oHPUt1qAY"&gt;our Security Token Service support&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Take for example &lt;a href="http://www.vordel.com/research/10Nov2010FacebookIphoneREST.html"&gt;this video (no registration needed) of a Vordel customer (Blackhawk Network) explaining how they use the Vordel Gateway to manage a REST API consumed by Facebook Marketplace and iPhone apps. &lt;/a&gt;I'd argue that viewing the video, listening to an enterprise architect explaining exactly why they architected the solution like they did, and why they chose Vordel, is certainly more valuable than PDF and in fact it compliments text-based blogs well.&lt;br /&gt;&lt;br /&gt;This is the Cluetrain idea: Markets as conversations. Get information out there, include customers and partners in the conversation, and don't hide information behind PDFs and registration walls. Engage with text in blogs, certainly, but also using video which is just as much a first-class citizen of the Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-6709086170859152949?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6709086170859152949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/6709086170859152949'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/02/replacing-walls-and-pdfs-with.html' title='Replacing walls and PDFs with conversation and videos'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1253160423018377017</id><published>2011-02-16T17:14:00.000Z</published><updated>2011-02-16T17:28:54.984Z</updated><title type='text'>Covering your *aaS - A security checklist for cloud models</title><content type='html'>If you ask three organizations how they are using the Cloud, you will get (at least) three answers. One may be considering using Google Apps for email, to avoid asking an admin to reboot mail servers at 4am to clear an email backlog. Another may be considering using Terramark or Amazon EC2 to spin up compute power to run processor-intensive work (like DNA sequencing, let's say). Another may be considering using Amazon's S3 as external storage. Here is where the *aaS model comes to the rescue. Cloud usage fits relatively neatly into the different categorizations of SaaS, PaaS, and IaaS.&lt;br /&gt;&lt;br /&gt;Using this categorization, I recently wrote a &lt;a href="http://www.csoonline.com/article/660065/saas-paas-and-iaas-a-security-checklist-for-cloud-models"&gt;cloud security introduction for CSO Magazine which uses these categories: SaaS, PaaS, and IaaS, to show how security applies differently in each case.  &lt;/a&gt;Check it out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1253160423018377017?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1253160423018377017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1253160423018377017'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/02/covering-your-aas-security-checklist.html' title='Covering your *aaS - A security checklist for cloud models'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4065345476701327420</id><published>2011-02-11T13:57:00.000Z</published><updated>2011-02-11T14:21:15.217Z</updated><title type='text'>Cloud Security Alliance piece - Single Sign-On to Cloud services</title><content type='html'>I wrote this piece recently for the Cloud Security Alliance for Infosecurity Magazine on &lt;a href="http://www.infosecurity-us.com/blog/2011/2/1/extend-the-enterprise-into-the-cloud-with-single-signon-to-cloudbased-services/276.aspx"&gt;Single Sign-On to the Cloud.&lt;/a&gt; As a practitioner in this area, it is striking how service providers such as Google Apps enable access to their service (corporate Gmail inboxes, Google Docs) via API keys. In the case of Google Apps, the key is used to sign a SAML 2.0 assertion sent up to log the user into their email inbox.&lt;br /&gt;&lt;br /&gt;I'm sometimes asked for Cloud security predictions. One prediction I have is that it is only a matter of time when API keys are stolen from an organization, and used to access resources such as email inboxes and sales leads. CSOs are mostly not aware that these keys, often sitting on hard drives or baked into apps, are vital to protect. In the article I talk about the &lt;a href="http://www.infosecurity-us.com/blog/2011/2/1/extend-the-enterprise-into-the-cloud-with-single-signon-to-cloudbased-services/276.aspx"&gt;API key protection options.&lt;/a&gt; Check it out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4065345476701327420?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4065345476701327420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4065345476701327420'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/02/cloud-security-alliance-piece-single.html' title='Cloud Security Alliance piece - Single Sign-On to Cloud services'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3295003375743322696</id><published>2011-01-27T14:19:00.000Z</published><updated>2011-01-27T14:59:58.626Z</updated><title type='text'>The unexpected link between procreation and password recovery</title><content type='html'>Let me first say that the interface to FedEx Print Online is a pleasure to use. It did exactly what I wanted me to do, allowed me to view my document as it would look printed, compare shipping options, and then track my order easily.&lt;br /&gt;&lt;br /&gt;However, when I registered, I noticed that one of their "password recovery" questions is "What is the middle name of your youngest child?". So what is the problem with this question (apart from the fact that it's publicly available information, often on Facebook, not to mention City Hall)? The problem is that if you have more kids, then the correct answer changes. So you would have to think "OK, what was the middle name of my youngest child &lt;span style="font-style: italic;"&gt;at the time when I registered with Fedex Print Online"&lt;/span&gt;. In fact, having more kids can have the unexpected knock-on effect of locking you out of FedEx Print Online. Maybe they should have a caveat there: "Note: Please take steps to ensure you do not have more children, if choosing this password recovery question for FedEx Print Online".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nu5SNZshYes/TUF_byciO-I/AAAAAAAABDQ/Nu552TCGiyg/s1600/Children.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://1.bp.blogspot.com/_nu5SNZshYes/TUF_byciO-I/AAAAAAAABDQ/Nu552TCGiyg/s400/Children.jpg" alt="" id="BLOGGER_PHOTO_ID_5566870729781296098" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3295003375743322696?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3295003375743322696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3295003375743322696'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/unexpected-link-between-procreation-and.html' title='The unexpected link between procreation and password recovery'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_nu5SNZshYes/TUF_byciO-I/AAAAAAAABDQ/Nu552TCGiyg/s72-c/Children.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-711656000086111640</id><published>2011-01-25T18:09:00.000Z</published><updated>2011-01-25T18:24:21.968Z</updated><title type='text'>Tracing Cloud Computing back to 1959</title><content type='html'>&lt;a href="http://www.ca.com/Files/TechnicalDocuments/ca-technology-exchange_233637.pdf"&gt;This paper on Cloud Computing by CA&lt;/a&gt; provides some good solid descriptions of the role of a Cloud Gateway &lt;span style="font-style: italic;"&gt;"for IT management facets such as Service Management, Data Center Automation, Application Performance Management, Security Management, and Infrastructure Management to extend the traditional IT management stack". &lt;/span&gt;It is a good approach to providing an &lt;span style="font-style: italic;"&gt;infrastructural approach &lt;/span&gt;to managing usage of Cloud-based services, rather than baking this management into the applications themselves. Overlaying management infrastructure on top of application is, of course, a key aspect of what CA does, so it's not a surprise that this is where they see added value.&lt;br /&gt;&lt;br /&gt;The same paper also includes this history of Cloud Computing, which takes the "timesharing" analogy. [ Note, an alternative approach is to see Cloud Computing as an extension of outsourcing, or to see it in terms of object re-use.  As with all successful IT trends, like success in general, it has "many fathers"].&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;A Brief History of Cloud Computing&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Despite its new-found prominence today,&lt;br /&gt;cloud computing is not a new concept. In&lt;br /&gt;fact, its roots can be traced back to the&lt;br /&gt;early sixties. In January 1959, John Mc-&lt;br /&gt;Carthy predicted that advances in timesharing&lt;br /&gt;technology would lead to an&lt;br /&gt;ultimate direction in computing, where&lt;br /&gt;computing power would be sold as a utility&lt;br /&gt;similar to water or electricity. This idea&lt;br /&gt;was summarized in memorandum he sent&lt;br /&gt;to MIT Professor P. M. Morse on January&lt;br /&gt;1, 1959:&lt;br /&gt;“This memorandum is based on the assumption&lt;br /&gt;that MIT will be given a transistorized&lt;br /&gt;IBM 709 about July 1960. I want&lt;br /&gt;to propose an operating system for it that&lt;br /&gt;will substantially reduce the time required&lt;br /&gt;to get a problem solved on the machine....&lt;br /&gt;The proposal requires a complete&lt;br /&gt;revision in the way the machine is used....I&lt;br /&gt;think the proposal points to the way all&lt;br /&gt;computers will be operated in the future,&lt;br /&gt;and we have a chance to pioneer a big&lt;br /&gt;step forward in the way computers are&lt;br /&gt;used....” *&lt;br /&gt;In 1961, to mark its centennial anniversary,&lt;br /&gt;MIT (Massachusetts Institute of&lt;br /&gt;Technology) organized a series of lectures&lt;br /&gt;on the future of computing. In one of the&lt;br /&gt;lectures Morse publically voiced his idea.&lt;br /&gt;However, his idea never really developed&lt;br /&gt;given the technology constraints at that&lt;br /&gt;time.&lt;br /&gt;With the Internet offering a significant&lt;br /&gt;bandwidth in the nineties, the cloud computing&lt;br /&gt;concept started making the rounds&lt;br /&gt;again. With the introduction of Salesforce.&lt;br /&gt;com in 1999, it finally arrived with&lt;br /&gt;full thrust. The next big step was Amazon&lt;br /&gt;Web Services in 2002. In 2006, Amazon&lt;br /&gt;launched its Elastic Compute Cloud aka&lt;br /&gt;EC2 as a commercial service, offering&lt;br /&gt;computers on rent. This was the first&lt;br /&gt;widely used cloud computing service. And&lt;br /&gt;since then the world has never been the&lt;br /&gt;same again... cloud computing had finally&lt;br /&gt;arrived!&lt;br /&gt;&lt;a href="http://www.ca.com/Files/TechnicalDocuments/ca-technology-exchange_233637.pdf"&gt;http://www.ca.com/Files/TechnicalDocuments/ca-technology-exchange_233637.pdf&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;Also in the same paper has a useful taxonomy of actors in the Cloud infrastructure area:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;...based on the Service type, cloud services can be classified into&lt;br /&gt;the following areas:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cloud Service Provider (CSP)&lt;/span&gt;:&lt;br /&gt;Organizations that offer the services&lt;br /&gt;(computing services, application services, etc.) for consumption through&lt;br /&gt;a well-defined set of interfaces based on an agreed cost model (for example,&lt;br /&gt;Amazon EC2).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cloud Service Consumer (CSC):&lt;/span&gt;&lt;br /&gt;Consumers that use computing services&lt;br /&gt;provided by a CSP through a well-defined set of interfaces. For example,&lt;br /&gt;cloud services provided by CA Clarity PPM On Demand could be used for&lt;br /&gt;project planning and management without deploying the software inpremises.&lt;br /&gt;Similarly Amazon EC2 services could be utilized by consumers&lt;br /&gt;to handle peak computing load. In this case, the computing resources are&lt;br /&gt;provisioned into Amazon EC2. Once the load returns to normal level these resources could be de-provisioned.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cloud Broker/Federator: &lt;/span&gt;&lt;br /&gt;Organizations that combine multiple trustworthy&lt;br /&gt;services from different CSPs to provide a new computing service, essentially&lt;br /&gt;adding value to improve on specific capabilities. For example, a&lt;br /&gt;broker may combine storage services from one vendor with the identity&lt;br /&gt;and access management services from another vendor to provide rolebased&lt;br /&gt;storage secure storage services (for example, Vordel Cloud Service&lt;br /&gt;Broker).&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-711656000086111640?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/711656000086111640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/711656000086111640'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/tracing-cloud-computing-back-to-1959.html' title='Tracing Cloud Computing back to 1959'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-3879280615083483531</id><published>2011-01-24T14:59:00.000Z</published><updated>2011-01-24T21:28:48.548Z</updated><title type='text'>It's so cold that...</title><content type='html'>With a hat-tip to &lt;a href="http://twitter.com/paulmadsen/status/27002986244870144"&gt;Paul Madsen&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;It's so cold that ... &lt;a href="http://twitter.com/xmlgatewayguru/status/29558012674842624"&gt;OAuth tweets &lt;/a&gt;are falling out of the sky&lt;br /&gt;It's so cold that ... &lt;a href="http://www.soatothecloud.com/2010/09/cloud-security-podcast-question-of-api.html"&gt;API keys &lt;/a&gt;could get stuck in locks&lt;br /&gt;It's so cold that ... &lt;a href="http://www.vordel.com/products/whats_new.html"&gt;Conditional Routing paths &lt;/a&gt;must be shoveled out&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 414px; height: 260px;" src="http://2.bp.blogspot.com/_nu5SNZshYes/TT2UTmNoWhI/AAAAAAAABDI/r-_yZe-pE1U/s400/wickedcold.jpg" alt="" id="BLOGGER_PHOTO_ID_5565767778895944210" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;(Those temperatures are &lt;span style="font-style: italic;"&gt;Fahrenheit&lt;/span&gt;, by the way)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-3879280615083483531?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3879280615083483531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/3879280615083483531'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/its-so-cold-that.html' title='It&apos;s so cold that...'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nu5SNZshYes/TT2UTmNoWhI/AAAAAAAABDI/r-_yZe-pE1U/s72-c/wickedcold.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7973755211774896197</id><published>2011-01-21T20:28:00.000Z</published><updated>2011-01-21T20:43:07.206Z</updated><title type='text'>Looking back at 2010</title><content type='html'>From &lt;a href="http://cloudcomputingarchitect.com/2011/01/19/vordel-growth-momentum-continues-with-record-year-in-2010-for-soa-and-cloud-sales.aspx"&gt;CloudComputingArchitect.com, Vordel highlights of 2010&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Key Highlights of Full Year 2010&lt;br /&gt;&lt;br /&gt;   * Year over year growth of 82%&lt;br /&gt;   * Profit figures ahead of target for FY2010&lt;br /&gt;   * Released &lt;a href="http://www.vordel.com/news/press/15_09_10.html"&gt;Vordel 6:&lt;/a&gt; re-architected for ease of use and performance&lt;br /&gt;   * 30 new customers added in 32 countries.&lt;br /&gt;   * Expanding management team includes &lt;a href="http://www.vordel.com/news/press/19_01_11b.html"&gt;Ed Jackowiak joining as VP Sales, North America&lt;/a&gt;&lt;br /&gt;   * New offices opened in Boston, Paris and Düsseldorf&lt;br /&gt;   * Webinar series on New Architectures for SOA and Cloud Application launched with &lt;a href="http://www.soatothecloud.com/2010/11/webinar-today-12-eastern-9am-pacific.html"&gt;ground-breaking Blackhawk/Safeway case study for Facebook Marketplace&lt;/a&gt;&lt;br /&gt;   * &lt;a href="http://www.vordel.com/news/press/31_08_10.html"&gt;Vordel Cloud Service Broker &lt;/a&gt;technical first integration with VMware vCloud Director&lt;br /&gt;   * Launched&lt;a href="http://www.vordel.com/news/press/04_05_10.html"&gt; inaugural Vordel User Group meetings in EMEA &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7973755211774896197?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7973755211774896197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7973755211774896197'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/looking-back-at-2010.html' title='Looking back at 2010'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7716889862694950608</id><published>2011-01-20T12:48:00.000Z</published><updated>2011-01-20T16:43:33.095Z</updated><title type='text'>Chess Analogy Redux</title><content type='html'>Chess is currently top-of-mind &lt;span style="font-style: italic;"&gt;chez O'Neill&lt;/span&gt; due to my son teaching himself chess by playing &lt;a href="http://www.gnu.org/software/chess/"&gt;gnuchess &lt;/a&gt;on &lt;a href="http://www.gnu.org/software/xboard/"&gt;xboard &lt;/a&gt;on a &lt;a href="http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm"&gt;Puppy Linux&lt;/a&gt; box I put together based on an old PC abandoned on the street by a neighbor who skipped the state during the height of the foreclosure crisis. We now play with an actual wooden chess set and have books such as "&lt;a href="http://www.amazon.com/Beat-Your-Chess-Gambit-chess/dp/1901983056"&gt;How to beat your dad at chess&lt;/a&gt;" (which, as my son pointed out, was not supposed to be for me to read cover-to-cover, thus defeating the purpose). One thing we've been working on is the chess opening. As an infosec person, it's hard to do anything (take a flight, start a car) without thinking of the infosec analogies. And chess openings are no exception. But Gunnar Peterson is way ahead of me on the infosec/chess analogies...&lt;br /&gt;&lt;br /&gt;Last January, &lt;a href="http://www.soatothecloud.com/2010/01/aaa-as-chess.html"&gt;I quoted Gunnar Peterson used who a chess analogy for AAA&lt;/a&gt;, as part of a larger post:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;I think of AAA access control technologies as Opening Game strategies -  many people think of Kerberos and other ticketing systems are security,  but really they just establish the initial ruleset for operations, the  real game begins once they're in place, in use, and under attack. The  structure used at the opening does not dictate all or maybe even most of  the events that occur in the middle and end game.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://1raindrop.typepad.com/1_raindrop/2010/01/beyond-the-opening-a-priori-is-a-problem.html"&gt;http://1raindrop.typepad.com/1_raindrop/2010/01/beyond-the-opening-a-priori-is-a-problem.html&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;This made me think about AAA in particular, and how it breaks down into its component parts. So much effort is put into the first "A" of it, i.e. to authentication. But much less effort is put into the next steps. Authorization in particular is often murky. Even when you look at how people use Web Access Control products which do authorization, you often find that they are only being used for authentication and their single sign-on feature. I've referenced this chess analogy during 2010 in screencasts and webinars focusing on actual authorization products, including this screencast on &lt;a href="http://www.vordel.com/research/VordelAndOracleEntitlementsServer.html"&gt;Vordel's interop with Oracle Entitlements Server&lt;/a&gt; (Vordel as PEP and OES as PDP) and &lt;a href="http://www.kuppingercole.com/events/n40119"&gt;this webinar with Axiomatics&lt;/a&gt;.  Authorization is "what happens after the opening" and deserves more attention than it's got in the past. The chess analogy is a good way to explain this, since it's not a case of "Make the opening then hope for the best". The opening is important, sure, but there is also the middle game and the endgame.&lt;br /&gt;&lt;br /&gt;So, now, a year later and another nice chess analogy from Gunnar. He talks about where a Gateway fits in front of the ESB, saying:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;"If you front end the ESB (Or other aggregator) out to the Mobile  clients, you are not simply publishing the data and Web services to the  Mobile world, you are publishing you entire Enterprise Attack Surface as  well. Think about what is exposed if the Gateway is not there to  mediate.&lt;/span&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt;So Gateways are quite important because they can play a role across the entire Attack Surface, including&lt;/p&gt; &lt;ul style="font-style: italic;"&gt;&lt;li&gt;Communication channel: proxy network protocols&lt;/li&gt;&lt;li&gt;Method: access control, publish only authorized methods&lt;/li&gt;&lt;li&gt;Data: content validation, encryption, and integrity services&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://1raindrop.typepad.com/1_raindrop/2011/01/of-gateways-and-hedgehogs.html"&gt;http://1raindrop.typepad.com/1_raindrop/2011/01/of-gateways-and-hedgehogs.html&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;So where does chess fit into this?&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;If you push all these defenses back into your app not only do you have  the Attack Surface-bloat problem, you also have the issue of affecting  performance and performing the security checks in the same space as that  which you are trying to defend. In other words by the time you spot the  attack it may already be checkmate.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;i.e. if you don't have a Gateway in the architecture, then you're losing out on your well-defined opening, and it's the equivalent of jumping straight into the middle game without a clear opening strategy. This is another nice chess analogy which I'll be using in 2011 - thanks again Gunnar :-)&lt;br /&gt;&lt;br /&gt;The usual caveats of infosec analogies apply, as &lt;a href="http://twitter.com/Beaker/status/27806189471404033"&gt;well put by Chris Hoff here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7716889862694950608?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7716889862694950608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7716889862694950608'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/chess-analogy-redux.html' title='Chess Analogy Redux'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7831378006647235868</id><published>2011-01-19T12:45:00.000Z</published><updated>2011-01-19T16:08:15.667Z</updated><title type='text'>In Paris in the spring-time : Free SOA Architecture Workshops</title><content type='html'>Paris in the spring-time brings up images of sipping coffee while tearing open a freshly-baked baguette, and admiring the city. So why not combine it with a &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.businesswire.com/news/home/20110119005729/en/Vordel-Workshops-Security-Performance-Governance-SOA-Architectures"&gt;free SOA Workshop on Security, Performance and Governance for SOA Architectures&lt;/a&gt;. My colleague Philippe Leothaud, who recently joined Vordel from Bee-ware, is leading a series of complimentary hands-on, case-study led workshops in Paris next month.&lt;br /&gt;&lt;br /&gt;More information here &lt;span style="font-style: italic;"&gt;en français:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;http://www.vordel.com/news/press/11_01_11.html&lt;br /&gt;&lt;br /&gt;Registration:&lt;br /&gt; http://www.vordel.com/news/events/03-02-2011-Paris.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7831378006647235868?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7831378006647235868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7831378006647235868'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/in-paris-in-spring-time-free-soa.html' title='In Paris in the spring-time : Free SOA Architecture Workshops'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-1643562040669378834</id><published>2011-01-18T18:58:00.000Z</published><updated>2011-01-18T19:38:18.289Z</updated><title type='text'>ScaleXtreme</title><content type='html'>There are a couple of reasons to keep an eye on ScaleXtreme, who&lt;a href="http://techcrunch.com/2011/01/18/scalextreme/"&gt; received venture capital from Accel Partners this week&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Firstly, they are focusing on the area of data center server management which has been disrupted due to the fact that organizations are making increasing use of virtual servers hosted by Cloud-based providers such as Amazon and Terremark. Case in point: One of Vordel's customers in the pharmaceuticals area routinely spins up hundreds of servers on Terremark to process clinic trial data, then spins them down again, benefiting from &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.soatothecloud.com/2010/08/vmworld-2010-provisioning-and-managing.html"&gt;Vordel's VCloud API support&lt;/a&gt;. To be able to manage those Terremark-hosted servers alongside on-premises servers is a valuable thing.&lt;br /&gt;&lt;br /&gt;Secondly, one of the founders of ScaleExtreme is &lt;a href="http://www.crunchbase.com/person/nand-mulchandani"&gt;Nand Mulchandani&lt;/a&gt;, who was a co-founder of Oblix. Oblix was a Web Access Management vendor whose main product competed with SiteMinder and Tivoli Access Manager, amongst others. Oblix came relatively late to the game of Web Access Management but  brought some key differences. One which stood out for me was its  Microsoft interop.  I did some Oblix deployments myself, and found it to be a well-designed product, so it wasn't really a surprise when it was bought by Oracle to become Oracle Access Manager ( I recently recorded &lt;a href="http://www.vordel.com/research/VordelAndOracleAccessManager.html"&gt;a screencast video of the Vordel Gateway operating with Oracle Access Manager&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;An interesting architectural aspect of ScaleXtreme is how it gets around the "How can I manage my internal servers via a Cloud-based service through mobile devices, when they are behind the firewall?" problem. The way it does this is by using agents which are installed on the internal servers. These then are used to communicate with the Cloud-based service. The Cloud-based service is therefore the main part of the architecture. This justifies the observation by Nand Mulchandani that the Cloud component of ScaleXtreme is intrinsic, not some kind of bolt-on.&lt;br /&gt;&lt;br /&gt;Definitely one to watch...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-1643562040669378834?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1643562040669378834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/1643562040669378834'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/scalextreme.html' title='ScaleXtreme'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-8891414148624563167</id><published>2011-01-13T11:39:00.000Z</published><updated>2011-01-13T11:58:26.890Z</updated><title type='text'>Drag-and-drop productivity tips in Vordel Policy Studio</title><content type='html'>Did you know if you can drag and drop a filter onto an existing filter in Vordel Policy Studio, and Policy Studio will automatically create the path from the existing filter to the new filter? You can see this in action in the short screencast video below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-6db3debbc55bf964" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v10.nonxt7.googlevideo.com/videoplayback?id%3D6db3debbc55bf964%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D98DD35D9580329F1A7B15C661BC98625EFD762D.38DE8127C9D2FD7C07F0BE0A55A5A23882933D25%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D6db3debbc55bf964%26offsetms%3D5000%26itag%3Dw160%26sigh%3DHbHow1BgNHDFbRBeyAefpFvHgmc&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v10.nonxt7.googlevideo.com/videoplayback?id%3D6db3debbc55bf964%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D98DD35D9580329F1A7B15C661BC98625EFD762D.38DE8127C9D2FD7C07F0BE0A55A5A23882933D25%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D6db3debbc55bf964%26offsetms%3D5000%26itag%3Dw160%26sigh%3DHbHow1BgNHDFbRBeyAefpFvHgmc&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;You may have noticed another productivity trip in the video above, whereby you can type in search text in order to narrow down the list of filters to drag-and-drop.&lt;br /&gt;&lt;br /&gt;Here's another neat productivity tip: If you drag and drop the new filter onto a filter which already has a green "success path", then Policy Studio will create a new red path, as shown in the screencast video below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-829e40ee70637a95" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v7.nonxt4.googlevideo.com/videoplayback?id%3D829e40ee70637a95%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4AEB48FA4277AEED4E2C99425FAC730A5ACE38FB.7BA42FB92F92026D67C7C839728019344CBCC198%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D829e40ee70637a95%26offsetms%3D5000%26itag%3Dw160%26sigh%3DukTVBG2CectKdjBGYKiYh-K3M1w&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v7.nonxt4.googlevideo.com/videoplayback?id%3D829e40ee70637a95%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330033077%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4AEB48FA4277AEED4E2C99425FAC730A5ACE38FB.7BA42FB92F92026D67C7C839728019344CBCC198%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D829e40ee70637a95%26offsetms%3D5000%26itag%3Dw160%26sigh%3DukTVBG2CectKdjBGYKiYh-K3M1w&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-8891414148624563167?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8891414148624563167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/8891414148624563167'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/drag-and-drop-productivity-trips-in.html' title='Drag-and-drop productivity tips in Vordel Policy Studio'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-5560935477821850700</id><published>2011-01-11T08:43:00.000Z</published><updated>2011-01-11T09:00:09.593Z</updated><title type='text'>One step forward, one step back</title><content type='html'>&lt;a href="http://blog.thestateofme.com/2011/01/07/how-postini-ruins-the-good-news-about-dkim-and-google-apps/"&gt;Chris Swan has a good post this week &lt;/a&gt;about how the compliance footers added to email messages by Google's Postini actually invalidate the &lt;a href="http://googleappsupdates.blogspot.com/2011/01/email-authentication-using-dkim-now.html"&gt;DKIM signatures created by Google Apps. &lt;/a&gt;Changing a message will do that to a signature, of course, but it is disappointing to see a model where where layering on more security (the compliance header) actually cancels out an existing layer of security (the signature).&lt;br /&gt;&lt;br /&gt;[ Incidentally, the post contains a reference to &lt;a href="http://en.wikipedia.org/wiki/Bacn"&gt;bacn&lt;/a&gt;, a very useful word which I didn't know existed... ]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-5560935477821850700?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5560935477821850700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/5560935477821850700'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/one-step-forward-one-step-back.html' title='One step forward, one step back'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-4844344539950628566</id><published>2011-01-04T14:36:00.000Z</published><updated>2011-01-04T14:57:20.453Z</updated><title type='text'>SAML, SSO, and Web Services at the forefront for 2011</title><content type='html'>&lt;a href="http://www.infoworld.com/d/security-central/five-security-trends-2011-and-beyond-434?page=0,1"&gt;Roger Grimes has a piece in Infoworld today on security trends for 2011&lt;/a&gt;. Two which I would pick out are (a) Token protection, and (b) the Death of the DMZ.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Follow the token to find the key&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;He points out that:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;Users will want full-range access through one logon name and password/logon token.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As such, you will be asked to make that happen, even between systems you don't control. You'll do this by using Web-based federation standards, cloud gateways, and claims-based identity metasystems. Instead of being worried about authentication protocols and password hashes, you'll be protecting XML-based SAML (Security Assertion Markup Language) tokens. &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.infoworld.com/d/security-central/five-security-trends-2011-and-beyond-434?page=0,1"&gt;http://www.infoworld.com/d/security-central/five-security-trends-2011-and-beyond-434?page=0,1&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;To put this into practical context, consider how one of Vordel's US education-sector customers is using Vordel for single sign-on of college students into Gmail (and Google Apps in general). It is SAML which is used to log the users into Gmail. Roger Grimes points out that the SAML tokens must be secured, which is very true (Google requires them to be signed, that is part of the protocol). But notice the set of keys in the diagram below. Those are the &lt;span style="font-style: italic;"&gt;API Keys. &lt;/span&gt;If you follow the chain of trust, those are what &lt;span style="font-style: italic;"&gt;really &lt;/span&gt;needs to be protected. With those keys, a malicious attacker could construct their own signed SAML token which would log them into someone's Gmail account. So it is absolutely vital that those API keys are protected. My own prediction for 2011 is that the sensitivity of API Keys will start to be realized, and organizations will realize that their Gateway/Broker solutions must protect those keys at all costs. After all, the API keys are linked to pay-as-you-use Cloud services, and to sensitive information (like email, sales leads, or shared documents).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_nu5SNZshYes/TNoec0MttNI/AAAAAAAABCk/flB90Caiuus/s1600/CloudSSO.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_nu5SNZshYes/TNoec0MttNI/AAAAAAAABCk/flB90Caiuus/s400/CloudSSO.jpg" alt="" id="BLOGGER_PHOTO_ID_5537772172202587346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DMZ RIP&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The second point I'd echo is how Roger Grimes foretells "The Death of the DMZ". Another way to express this, by &lt;a href="http://www.soatothecloud.com/2010/10/we-are-all-on-public-network.html"&gt;Bill Mann of CA, is that "We are all on a public network".  &lt;/a&gt;The solution is not to think about perimeters, but to think about the data. Shrink the perimeter right down to the data itself. Again, Web Services technologies apply here. If (as &lt;a href="http://www.infoworld.com/d/security-central/five-security-trends-2011-and-beyond-434"&gt;Roger Grimes recommends in his first point in that article - "What isn't Web will become Web"&lt;/a&gt;), you are using Web technologies, then that allows you to make use of WS-Security and XML Encryption in order to selectively encrypt the sensitive data, even within a message itself. Again, Gateways and Brokers are what does this. The problem to overcome is the performance cost of all that cryptography and message processing, which is why&lt;a href="http://www.vordel.com/products/gateway/index.html"&gt; XML Gateway&lt;/a&gt; products are optimized for performance.&lt;br /&gt;&lt;br /&gt;It's going to be an interesting 2011!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-4844344539950628566?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4844344539950628566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/4844344539950628566'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/saml-sso-and-web-services-at-forefront.html' title='SAML, SSO, and Web Services at the forefront for 2011'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_nu5SNZshYes/TNoec0MttNI/AAAAAAAABCk/flB90Caiuus/s72-c/CloudSSO.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5066603456638955842.post-7112074842974166959</id><published>2011-01-04T04:35:00.000Z</published><updated>2011-01-04T04:45:34.618Z</updated><title type='text'>Welcome onboard @xmlgatewayguru</title><content type='html'>I'm very pleased to say that &lt;a href="http://www.linkedin.com/in/joshbregman"&gt;Josh Bregman &lt;/a&gt;has joined the Vordel team here in Boston, and has hit the ground running by blogging at &lt;a href="http://xmlgateway.blogspot.com/"&gt;http://xmlgateway.blogspot.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Over the years I've known Josh, I've found that he's an excellent source of security know-how, product configuration tips, and, last but not least, Red Sox tickets :-)&lt;br /&gt;&lt;br /&gt;You can also follow Josh on Twitter at: &lt;a href="http://www.twitter.com/xmlgatewayguru"&gt;@xmlgatewayguru&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5066603456638955842-7112074842974166959?l=www.soatothecloud.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7112074842974166959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5066603456638955842/posts/default/7112074842974166959'/><link rel='alternate' type='text/html' href='http://www.soatothecloud.com/2011/01/welcome-onboard-xmlgatewayguru.html' title='Welcome onboard @xmlgatewayguru'/><author><name>Mark O'Neill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='6' src='http://1.bp.blogspot.com/_nu5SNZshYes/SKI2NtQ6NVI/AAAAAAAAACA/Mkp8zxsGeTo/s1600-R/markemail.jpg'/></author></entry></feed>
