<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Francois Lascelles&#039;s Blog</title>
	<atom:link href="http://flascelles.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://flascelles.wordpress.com</link>
	<description>Security for enterprise SOA/WOA and cloud computing</description>
	<lastBuildDate>Wed, 05 Oct 2011 16:21:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='flascelles.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Francois Lascelles&#039;s Blog</title>
		<link>http://flascelles.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://flascelles.wordpress.com/osd.xml" title="Francois Lascelles&#039;s Blog" />
	<atom:link rel='hub' href='http://flascelles.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Let&#8217;s talk OAuth @RSAConference</title>
		<link>http://flascelles.wordpress.com/2011/10/05/lets-talk-oauth-rsaconference/</link>
		<comments>http://flascelles.wordpress.com/2011/10/05/lets-talk-oauth-rsaconference/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 16:21:32 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=254</guid>
		<description><![CDATA[A lot has changed about the state of OAuth since I last presented at RSA Conference. Last year, the enterprise was screaming for standardized mechanics to provide access control to their APIs. Back then, OAuth was merely on the Enterprise Architect’s radar. It’s now safe to say that OAuth 2.0 is poised to fill this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=254&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A lot has changed about the state of OAuth since I last presented at <a href="http://twitter.com/RSAConference">RSA Conference</a>. Last year, the enterprise was screaming for standardized mechanics to provide access control to their APIs. Back then, OAuth was merely on the Enterprise Architect’s radar. It’s now safe to say that OAuth 2.0 is poised to fill this gap.</p>
<p>OAuth 2.0 is rich –different token types to accommodate different styles. The ‘bearer’ token type provides the simplicity of cookies, the ‘mac’ token type provides the security of hmac signatures. OAuth 2.0 also defines many different flows to accommodate different situations, involving either two or three parties.</p>
<p>Because this rising standard addresses so many use cases, <a href="http://www.layer7tech.com/library/layer-7-for-oauth">the infrastructure supporting it</a> must remain flexible to cover all of the benefits.</p>
<p>Let’s talk OAuth, see you @RSAConference London, Oct 13 2011 STAR-305.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/254/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/254/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/254/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=254&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/10/05/lets-talk-oauth-rsaconference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
		<item>
		<title>OAuth Client Broker Tooling</title>
		<link>http://flascelles.wordpress.com/2011/09/16/oauth-client-broker-tooling/</link>
		<comments>http://flascelles.wordpress.com/2011/09/16/oauth-client-broker-tooling/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 17:59:55 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[Layer 7]]></category>
		<category><![CDATA[OAuth 2.0]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[Salesforce API proxy]]></category>
		<category><![CDATA[Web API]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=234</guid>
		<description><![CDATA[In terms of OAuth enterprise tooling, a lot of focus is given to OAuth-enabling APIs exposed by the enterprise itself. Naturally, the demand for this reflects today’s reality where the enterprise is increasingly playing the role of an api provider. However, many enterprise integration use cases involving cloud-based services puts the enterprise in the role [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=234&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In terms of <a href="http://layer7.com/products/oauth-toolkit">OAuth enterprise tooling</a>, a lot of focus is given to OAuth-enabling APIs exposed by the enterprise itself. Naturally, the demand for this reflects today’s reality where the enterprise is increasingly playing the role of an api provider. However, many enterprise integration use cases involving cloud-based services puts the enterprise in the role of API consumer, rather than provider. And as the number of enterprise applications consuming these external APIs grows, and the number of such external APIs themselves grows, point-to-point OAuth handshakes become problematic.</p>
<p>Another challenge relating to consuming these external APIs is that OAuth handshakes are geared towards a client application driven by a user. The protocol involves a redirection of that user to the API provider in order to authenticate and express authorization. Many enterprise integration (EI) applications do not function in this way. Instead their behavior follows a machine-to-machine transaction type; they operate at runtime without being driven by a user. Wouldn’t it be great if these EI apps could benefit from the OAuth capabilities of the APIs and still operate in headless mode? The so-called ‘two-legged’ OAuth pattern provides a work around for this challenge but requires the client app to hold resource owner credentials, which is problematic, especially when replicated across every client app.<br />
<a href="http://flascelles.files.wordpress.com/2011/09/pointtopointproblem.png"><img class="alignnone size-full wp-image-235" title="PointToPointProblem" src="http://flascelles.files.wordpress.com/2011/09/pointtopointproblem.png?w=450&#038;h=212" alt="" width="450" height="212" /></a></p>
<p>To illustrate how an enterprise API management solution can help manage this challenge, I demonstrate an OAuth tooling geared towards brokering a client-side OAuth session with the Salesforce API using the <a href="http://www.layer7tech.com/products/api-proxy">Layer 7 Gateway</a>. By proxying the Salesforce API at the perimeter using the Layer 7 Gateway, my EI apps do not have to worry about the API provider OAuth handshake. Instead, these EI apps can be authenticated and authorized locally using the Enterprise identity solution of choice and the Layer 7 Gateway manages the OAuth session on behalf of these applications. The benefits of this outbound API proxy are numerous. First, the OAuth handshake is completely abstracted out of the EI apps. In addition, the enterprise now has an easy way to manage control of which applications and enterprise identities can consume the external API, control of the rates of consumption and monitor usage over time. The API can itself be abstracted and the proxy can transform API calls at runtime to protect the consuming apps from version changes at the hosted API side.</p>
<p><a href="http://flascelles.files.wordpress.com/2011/09/solution.png"><img class="alignnone size-full wp-image-236" title="solution" src="http://flascelles.files.wordpress.com/2011/09/solution.png?w=450&#038;h=211" alt="" width="450" height="211" /></a></p>
<p>To set this up on the Layer 7 Gateway, you first need to register a remote access to your Salesforce instance. Log into your Salesforce instance and navigate to Setup -&gt; App Setup -&gt; Develop -&gt; Remote Access. From there, you define your remote access application. The callback URL must match the URL used by the Layer 7 Gateway administrator at setup time in the Layer 7 Gateway. Make sure you note the Consumer Key and Consumer Secret as they will be used during the OAuth handshake setup; these values will be used by your Layer 7 OAuth broker setup policy.<br />
<a href="http://flascelles.files.wordpress.com/2011/09/salesforcesetup.png"><img class="alignnone size-full wp-image-237" title="salesforceSetup" src="http://flascelles.files.wordpress.com/2011/09/salesforcesetup.png?w=450&#038;h=199" alt="" width="450" height="199" /></a></p>
<p>Using the Layer 7 Policy Manager, you publish your broker setup policies to manage the OAuth handshake between the Gateway and your Salesforce instance. Note that the OAuth callback handling must listen at a URL matching the URL defined in Salesforce. These policies use the consumer key and consumer secret associated with the registered remote access in your Salesforce instance. The secret should be stored in the Gateway’s secure password store for added security. Use templates from Layer 7 to simplify the process of setting up these policies.<br />
<a href="http://flascelles.files.wordpress.com/2011/09/callbackpolicy.png"><img class="alignnone size-full wp-image-238" title="callbackPolicy" src="http://flascelles.files.wordpress.com/2011/09/callbackpolicy.png?w=450&#038;h=142" alt="" width="450" height="142" /></a></p>
<p>Once these two policies are in place, you are ready to initiate the OAuth handshake between the <a href="http://layer7.com/solutions/api-management-solutions-for-web">Layer 7 Gateway </a>and the Salesforce instance. Using your favorite browser, navigate to the entry point defined in the admin policy above. Click the ‘Reset Handshake’ button. This will redirect you to your Salesforce instance. If you do not have a session in place on this browser, you will be asked to authenticate to the instance, then you are asked to authorize the client app (in this case, your Layer 7 Gateway). Finally, you are redirected back to the Layer 7 Gateway admin policy which now shows the current OAuth handshake in place. The admin policy stores the OAuth access token so that it can be used by the api proxy at runtime.<br />
<a href="http://flascelles.files.wordpress.com/2011/09/webpagehandshakesetup.png"><img class="alignnone size-full wp-image-239" title="webpagehandshakesetup" src="http://flascelles.files.wordpress.com/2011/09/webpagehandshakesetup.png?w=450&#038;h=261" alt="" width="450" height="261" /></a></p>
<p>Your <a href="http://layer7.com/solutions/api-management-solutions-for-web">Layer 7 Gateway</a> is now ready to act as an OAuth broker for your EI apps consuming the Salesforce API. You can publish a simple policy to act as this proxy. This policy should authenticate and authorize the EI app and inject the stored OAuth access token on the way out. Note that this policy can be enhanced to perform additional tasks such as transformation, rate limiting, caching, etc.</p>
<p><a href="http://flascelles.files.wordpress.com/2011/09/proxypolicy.png"><img class="alignnone size-full wp-image-240" title="proxyPolicy" src="http://flascelles.files.wordpress.com/2011/09/proxypolicy.png?w=450&#038;h=180" alt="" width="450" height="180" /></a></p>
<p>Although this use case focuses on the Salesforce API, it is generally applicable to any external API you consume. You can maintain an OAuth session for each API you want to proxy in this Gateway as well as perform identity mapping for other external access control mechanism, for example AWS HMAC signatures.</p>
<p><a href="http://flascelles.files.wordpress.com/2011/09/genericoutboundsolution.png"><img class="alignnone size-full wp-image-241" title="genericOutboundSolution" src="http://flascelles.files.wordpress.com/2011/09/genericoutboundsolution.png?w=450&#038;h=234" alt="" width="450" height="234" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/234/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=234&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/09/16/oauth-client-broker-tooling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/pointtopointproblem.png" medium="image">
			<media:title type="html">PointToPointProblem</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/solution.png" medium="image">
			<media:title type="html">solution</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/salesforcesetup.png" medium="image">
			<media:title type="html">salesforceSetup</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/callbackpolicy.png" medium="image">
			<media:title type="html">callbackPolicy</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/webpagehandshakesetup.png" medium="image">
			<media:title type="html">webpagehandshakesetup</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/proxypolicy.png" medium="image">
			<media:title type="html">proxyPolicy</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/09/genericoutboundsolution.png" medium="image">
			<media:title type="html">genericOutboundSolution</media:title>
		</media:content>
	</item>
		<item>
		<title>AXG migration made easy</title>
		<link>http://flascelles.wordpress.com/2011/08/07/axg-migration-made-easy/</link>
		<comments>http://flascelles.wordpress.com/2011/08/07/axg-migration-made-easy/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 20:30:42 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=227</guid>
		<description><![CDATA[The Cisco Ace XML Gateway (AXG) product is quickly nearing its end of life. Last year, Layer 7’s field team completed a number of successful AXG replacement projects and the rate of such projects has since picked up considerably. Layer 7 is now releasing the Cisco ACE XML Gateway Migration Guide. This guide includes a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=227&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Cisco Ace XML Gateway (AXG) product is quickly nearing its end of life. Last year, Layer 7’s field team completed a number of successful <a href="http://www.layer7tech.com/solutions/cisco-ace-xml-gateway-replacement-program" target="_blank">AXG replacement</a> projects and the rate of such projects has since picked up considerably. Layer 7 is now releasing the <a href="http://www.layer7tech.com/solutions/cisco-ace-xml-gateway-migration-guide" target="_blank">Cisco ACE XML Gateway Migration Guide</a>. This guide includes a step-by-step methodology, which builds on our experience in AXG migration type projects.</p>
<p>A key component of this methodology is the AXG migration utility, a policy-based module which interprets an incoming AXG export file in PPF format and automatically populates a Layer 7 Gateway instance with corresponding service proxies and runtime policies. When we first considered the possibility of such a migration utility, we were skeptical about the amount of automation that could be reached due to the differences between both solutions. In the end, what made this possible was the flexibility of the Layer 7 Gateway design and our Gateway Management API facilitating programmatic provisioning. The migration utility uses a customizable stylesheet which can be tailored to the specific AXG setup in order to maximize automation and optimize resulting policy organization. By organizing policies in logical tree structures and grouping similar logic in imported fragments, the resulting configuration in the Layer 7 Gateway reduces the management overhead moving forward.</p>
<p>See this utility in action in the following <a href="http://www.youtube.com/layer7tech#p/a/u/0/LTOYKRe7GuY" target="_blank">video</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=227&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/08/07/axg-migration-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
		<item>
		<title>PCI-DSS Compliant Service Oriented Infrastructure</title>
		<link>http://flascelles.wordpress.com/2011/06/29/pci-dss-compliant-service-oriented-infrastructure/</link>
		<comments>http://flascelles.wordpress.com/2011/06/29/pci-dss-compliant-service-oriented-infrastructure/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 22:20:57 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=219</guid>
		<description><![CDATA[The payment card industry data security standards (PCI-DSS) requires increased controls of cardholder information to minimize credit card fraud. Although PCI-DSS compliance is specific to the payment industry, the principles of securing user or subscriber information from leaks or cyber attacks apply to most service providers, enterprises and governments. Such principles have been core to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=219&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The payment card industry data security standards (PCI-DSS) requires increased controls of cardholder information to minimize credit card fraud. Although PCI-DSS compliance is specific to the payment industry, the principles of securing user or subscriber information from leaks or cyber attacks apply to most service providers, enterprises and governments. Such principles have been core to the <a href="http://www.layer7tech.com/solutions/service-security">Layer 7 Gateway</a> solution since its inception.</p>
<p>With its runtime policy enforcement and application level awareness, the <a href="http://www.layer7tech.com/products/xml-gateway-overview">Layer 7 Gateway</a> is becoming a preferred component of your <a href="http://www.layer7tech.com/products/soa-gateway">PCI-DSS compliant infrastructure</a>. Acting at the perimeter of a service zone, the Layer 7 Gateway authenticates, authorizes and encrypts communications with external entities. Through various pattern recognition mechanisms, the Layer 7 Gateway inspects outgoing messages to filter out unwanted cardholder information leaking from internal systems.</p>
<p>With version 6.0 of the Layer 7 Gateway, Layer 7 Technologies goes beyond encryption and information scrubbing to provide PCI-DSS specific functionality such as a new auditing subsystem which facilitates the obfuscation of card holder information from system logs and audit traces. Version 6.0 of the Layer 7 Gateway also now includes a PCI-DSS Secure Implementation Guide (SIG) manual which covers all the PCI-DSS compliance related settings (you can find this manual from our support portal).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=219&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/06/29/pci-dss-compliant-service-oriented-infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
		<item>
		<title>Using API keys effectively</title>
		<link>http://flascelles.wordpress.com/2011/05/12/using-api-keys-effectively/</link>
		<comments>http://flascelles.wordpress.com/2011/05/12/using-api-keys-effectively/#comments</comments>
		<pubDate>Thu, 12 May 2011 00:27:07 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=201</guid>
		<description><![CDATA[A common use of API keys for authentication of web api consumption is to ask the requester to just include the key directly in the URI parameters of the web API call as illustrated below: http://apis.acme.com/resources/blah/foo?app_id=myid&#038;app_key=mykey The term ‘key’ in this case can be misleading. A key is normally used to perform some sort of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=201&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A common use of API keys for authentication of web api consumption is to ask the requester to just include the key directly in the URI parameters of the web API call as illustrated below:</p>
<p>http://apis.acme.com/resources/blah/foo?app_id=myid&#038;app_key=mykey</p>
<p>The term ‘key’ in this case can be misleading. A key is normally used to perform some sort of crypto operation, typically a signature. The use of the API key above is the same as using a password in clear such as in:</p>
<p>http://apis.acme.com/resources/blah/foo?login=mylogin&#038;password=mypassword</p>
<p>In both cases, nothing is signed, and the shared secret is sent alongside each call. If the request is somehow sniffed by a malicious intermediate (think MITM), the malicious user can now impersonate the legitimate requester. A secure channel to send such messages is needed. Even on a secure channel, this type of approach causes a number of security issues. For example, you want to avoid these shared secrets showing up in your traffic logs or being rendered to web pages for a browser based portal.</p>
<p>Other well known API service providers (such as AWS, Azure) use an HMAC signature based authentication model. HMAC (Hash-based Message Authentication Code) uses a hash function combined with a symmetric key. It still uses a shared secret but in this case, the secret is not included in the requests. Instead, the request includes an HMAC signature added to the Authorization HTTP header (the RESTful location for such signatures, tokens). This HMAC covers essential parameters such as the HTTP VERB, the payload, the payload type, a date, etc. Even if the request can be intercepted, the HMAC cannot be re-used beyond a short period of time and cannot be used if any of these critical aspects of the request are altered in any way. Using the same shared secret, the recipient can verify the authenticity of the message and the identity of the requester. Authentication and integrity are both achieved.</p>
<p>Below, an example HMAC construct as used by AWS:</p>
<p><em>Authorization: AWS + KeyId + : + base64(hmac-sha1(VERB + CONTENT-MD5 + CONTENT-TYPE + DATE + …))</em></p>
<p>Using the <a title="The Layer 7 API Proxy" href="http://www.layer7tech.com/products/api-proxy" target="_blank">Layer 7 API Proxy</a>, you can use such HMAC signatures to authenticate incoming requests on behalf of a protected API and to add signatures on the way out using the Generate Security Hash Assertion as illustrated below.</p>
<div id="attachment_202" class="wp-caption alignnone" style="width: 318px"><a href="http://flascelles.files.wordpress.com/2011/05/hashing-assertion.png"><img class="size-full wp-image-202" title="Layer 7 Gateway Hashing Assertion" src="http://flascelles.files.wordpress.com/2011/05/hashing-assertion.png?w=450" alt="Layer 7 Gateway Hashing Assertion"   /></a><p class="wp-caption-text">Layer 7 Gateway Hashing Assertion</p></div>
<p>The Generate Security Hash Assertion lets you calculate an HMAC based on the key and data to sign. The data to sign is something that must be agreed upon in advance, as is the way to incorporate the HMAC in the request. When working with an existing system which already defines this (such as AWS), you simply set the variable ${hash.dataToSign} to reflect the same order and contents. If you have the freedom to define this yourself for your own environment, make sure it covers key aspects of a request so that an HMAC cannot be reused if it falls in the wrong hands. For a RESTful web service for example, it makes sense to cover the HTTP verb (method), the request URI, query parameters and payload if any. Adding either a timestamp or a validity period is also good practice.</p>
<p>Once you calculated an HMAC in your policy using this assertion, you can inject it to an outgoing message by adding it to the Authorization HTTP header directly as illustrated below. Note that you can include this HMAC in any desired header.</p>
<div id="attachment_203" class="wp-caption alignnone" style="width: 460px"><a href="http://flascelles.files.wordpress.com/2011/05/hmac-injection.png"><img class="size-full wp-image-203" title="Injecting an HMAC downstream" src="http://flascelles.files.wordpress.com/2011/05/hmac-injection.png?w=450&#038;h=527" alt="" width="450" height="527" /></a><p class="wp-caption-text">Injecting an HMAC downstream</p></div>
<p>For verifying an incoming HMAC, construct your policy to calculate the hash based on the input and compare this value against the incoming HMAC value using a simple comparison assertion.</p>
<div id="attachment_204" class="wp-caption alignnone" style="width: 378px"><a href="http://flascelles.files.wordpress.com/2011/05/hmacvalidation.png"><img class="size-full wp-image-204" title="Validating an incoming HMAC" src="http://flascelles.files.wordpress.com/2011/05/hmacvalidation.png?w=450" alt="Validating an incoming HMAC"   /></a><p class="wp-caption-text">Validating an incoming HMAC</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/201/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=201&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/05/12/using-api-keys-effectively/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/05/hashing-assertion.png" medium="image">
			<media:title type="html">Layer 7 Gateway Hashing Assertion</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/05/hmac-injection.png" medium="image">
			<media:title type="html">Injecting an HMAC downstream</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/05/hmacvalidation.png" medium="image">
			<media:title type="html">Validating an incoming HMAC</media:title>
		</media:content>
	</item>
		<item>
		<title>The ESG pattern </title>
		<link>http://flascelles.wordpress.com/2011/03/31/the-esg-pattern%e2%80%a8/</link>
		<comments>http://flascelles.wordpress.com/2011/03/31/the-esg-pattern%e2%80%a8/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 22:08:35 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=182</guid>
		<description><![CDATA[Are you still considering rolling out a major Enterprise Service Bus (ESB) stack &#8212; you know, the kind that involves a massive initial investment and takes 8+ months to deploy? This wasteful approach was a major factor in doomed corporate SOA initiatives that were common between 2003 and 2009. During this same period, clever architects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=182&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Are you still considering rolling out a major Enterprise Service Bus (ESB) stack &#8212; you know, the kind that involves a massive initial investment and takes 8+ months to deploy? This wasteful approach was a major factor in doomed corporate SOA initiatives that were common between 2003 and 2009. During this same period, clever architects ignored large vendor promises and realized that you simply cannot buy your way into an agile enterprise SOA. They instead focused on the tasks at hand, integrating existing IT assets, following SOA principles, using existing tools and adding lightweight strategic and specialized infrastructure to help them along the way. The winning enterprise SOA initiatives are the ones who made sure that the SOA was <em>operational as it evolved</em>.</p>
<p><a href="http://www.layer7tech.com/products/soa-gateway">SOA Gateways</a> gained popularity in recent years as a lightweight ESB that can span departmental boundaries. Like software ESBs, SOA Gateways can translate data formats, route content, service-enable data sources and switch between transport protocols. But SOA Gateways have a number of significant advantages over traditional software ESBs. For example, they scale easily and accommodate high volume traffic environments owing to their specialized acceleration of message validation, routing and translation. Also, SOA Gateways offer comprehensive security and identity federation features built in so they can be deployed at the service zone perimeter (think DMZ).</p>
<p>Looking back, the pattern of using an <a href="http://www.layer7tech.com/products/soa-gateway">SOA Gateway</a> to integrate and service-enable existing IT assets has been a large success. Because of the appliance form factor and the <em>configure, not code</em> approach, the cost of integration and the time to react to new requirements both shrunk considerably. And with a focus increasingly shifting towards cloud computing, this ability to quickly accommodate new integration mechanisms has already paid off for those who invested in the lightweight, agile solution. This is especially the case for those who opted for the <a href="http://www.layer7tech.com/products/soa-gateway-for-amazon">virtual appliance</a> form factor.</p>
<p>I like to refer to this pattern as the <a href="http://www.layer7tech.com/products/soa-gateway">Enterprise Service Gateway</a> (<a href="http://www.layer7tech.com/products/soa-gateway">ESG</a>). That is, the ability to execute integration, transformation and security using a specialized gateway appliance as opposed to coding using traditional software ESB frameworks.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=182&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/03/31/the-esg-pattern%e2%80%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
		<item>
		<title>Selecting a token format for your Web APIs, RESTful web services</title>
		<link>http://flascelles.wordpress.com/2011/03/02/selecting-a-token-format-for-your-web-apis-restful-web-services/</link>
		<comments>http://flascelles.wordpress.com/2011/03/02/selecting-a-token-format-for-your-web-apis-restful-web-services/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 02:55:03 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=136</guid>
		<description><![CDATA[The most important token format that you need to support for your web apis and RESTful web services these days is: anything. So many platforms define their own authentication/authorization mechanism with what seems to be little concern for standardized formats: API keys here, HMAC signatures there, various OAuth interpretation, etc. Simple does trump standards. For the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=136&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The most important token format that you need to support for your web apis and RESTful web services these days is: anything. So many platforms define their own authentication/authorization mechanism with what seems to be little concern for standardized formats: API keys here, HMAC signatures there, various OAuth interpretation, etc. S<a href="http://kscottmorrison.com/2011/02/04/rest-is-simple-but-simple-is-not-rest/" target="_blank">imple does trump standards</a>. For the integration-focused enterprise architect, this reality creates a need for flexible infrastructure supporting arbitrary token formats.</p>
<p>About a year ago, I was proposing a simple approach for <a href="http://flascelles.wordpress.com/2010/02/17/restful-saml/" target="_blank">enabling RESTful web service requesters with SAML-based tokens</a> for authentication/authorization. The pattern enabling a REST client to access a service using a SAML token is illustrated below.</p>
<div id="attachment_144" class="wp-caption alignnone" style="width: 460px"><a href="http://flascelles.files.wordpress.com/2011/03/samlrest2.png"><img class="size-full wp-image-144" title="SAML for REST" src="http://flascelles.files.wordpress.com/2011/03/samlrest2.png?w=450&#038;h=272" alt="" width="450" height="272" /></a><p class="wp-caption-text">SAML for REST</p></div>
<p>The fact that there are still no definitive SAML bindings targeting RESTful web services today does not seem to deter developers from leveraging SAML to control access to their RESTful web services. We encountered this again recently in the field in the form of a proof of technology project in which the main objective was to demonstrate the Layer 7 Gateway acting both as the token issuer for a REST client as well as an API proxy which controls access based on those very tokens. Two token formats were requested: SAML and OAuth.</p>
<p>For our gateway to authenticate RESTful requesters and issue tokens is a very common and straightforward process. In order for the REST client to be able to use this token however, it must be able to insert it in an Authorization header (the RESTful location for this token). In the case where the token is a SAML assertion, it can exceed in size the practical limit of what can be used as an HTTP header value (a rich SAML assertion with an XML digital signature can be quite verbose). This is where the Layer 7 Gateway policy language flexibility shines. By simply declaring the compression (gzip assertion) of the resulting SAML before sending it back to the client, the token has now been shrunk to a manageable size for the client. The reverse decompression at reception is just as straightforward using the reverse operation in our policy language.</p>
<div id="attachment_142" class="wp-caption alignnone" style="width: 310px"><a href="http://flascelles.files.wordpress.com/2011/03/gzipcompresssaml.png"><img class="size-medium wp-image-142" title="gzip compress SAML assertion" src="http://flascelles.files.wordpress.com/2011/03/gzipcompresssaml.png?w=300&#038;h=106" alt="" width="300" height="106" /></a><p class="wp-caption-text">SAML idp for REST with token compression</p></div>
<p>Note that although we could just as well create a session on the Gateway and return a cookie back to the requester, we are interacting with a REST client here; this is not a browser-driven interaction. Besides, server side sessions are not RESTful. If the client re-sends the token at each call, the authorization of the requester is validated each time through the evaluation of the SAML statements and this does not require any server-side session.</p>
<p>When implementing the same use case, but with a token format based on OAuth instead of SAML, this compression/decompression step is no longer needed. The rest of the configuration using our Gateway policy language is very similar. This compression is one of the technical tradeoffs when choosing between such token formats and relates to the so-called “open” vs “enterprise” identity camps. On one hand, you have a rich and standardized token format (SAML), which can be used to express a variety of statements about an identity. On the other hand you have a simple and lean token format but less standardized. On that last point, what constitutes an OAuth token format in this particular context is a bit of a moving target and various interpretations are not necessarily compatible.</p>
<p>In the end, choosing a token format should consider the requirements around authorization and the technical capabilites of the parties involved. Better yet, don’t narrow your support on a single format. Support and enable different token formats instead if that is what is needed.</p>
<p>When selecting supporting <a href="http://www.layer7tech.com/solutions/api-management-solutions-for-web" target="_blank">infrastructure to manage APIs</a> and <a href="http://www.layer7tech.com/solutions/cloud-brokerage-and-integration" target="_blank">broker with cloud or partners</a>, keep in mind this need to accommodate arbitrary authentication approaches. Although rich standard support provides value, the essential ingredient of an <a href="http://www.layer7tech.com/solutions/soa-solutions-overview" target="_blank">agile service gateway </a> is its flexibility and its extensibility.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=136&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/03/02/selecting-a-token-format-for-your-web-apis-restful-web-services/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/03/samlrest2.png" medium="image">
			<media:title type="html">SAML for REST</media:title>
		</media:content>

		<media:content url="http://flascelles.files.wordpress.com/2011/03/gzipcompresssaml.png?w=300" medium="image">
			<media:title type="html">gzip compress SAML assertion</media:title>
		</media:content>
	</item>
		<item>
		<title>Choosing an XML Gateway</title>
		<link>http://flascelles.wordpress.com/2011/01/25/choosing-an-xml-gateway/</link>
		<comments>http://flascelles.wordpress.com/2011/01/25/choosing-an-xml-gateway/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 03:22:10 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=133</guid>
		<description><![CDATA[Two weeks ago, I posted about SOA Gateway trends that have been emerging lately. If you are interested in this topic or if you are in the process of setting up an SOA infrastructure, you will not want to miss tomorrow&#8217;s (Jan 27, 2011) webinar : &#8220;How to Choose a SOA Gateway: Lessons from the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=133&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Two weeks ago, I <a href="http://flascelles.wordpress.com/2011/01/10/soa-gateway-trends-for-2011-and-beyond/">posted</a> about <a href="http://www.layer7tech.com/products/soa-gateway">SOA Gateway</a> trends that have been emerging lately. If you are interested in this topic or if you are in the process of setting up an SOA infrastructure, you will not want to miss tomorrow&#8217;s (Jan 27, 2011) <a href="http://www.layer7tech.com/webinars">webinar</a> : &#8220;How to Choose a SOA Gateway: Lessons from the Field&#8221;. This will cover topics such as Portability Considerations, Scalability Risks, Extensibility and Upgradeability, Global Management Implications and Hidden Operation Costs.</p>
<p>Register for this webinar <a href="http://www.layer7tech.com/trial/webinar_register.php?leadid=SOAGateway">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=133&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/01/25/choosing-an-xml-gateway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
		<item>
		<title>Case IN-sensitive URLs?</title>
		<link>http://flascelles.wordpress.com/2011/01/24/case-in-sensitive-urls/</link>
		<comments>http://flascelles.wordpress.com/2011/01/24/case-in-sensitive-urls/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 22:11:48 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=122</guid>
		<description><![CDATA[We’ve been getting a number of field requests lately for handling case insensitive URLs. That is, resolving something like http://foo/blah the same way as http://foo/Blah and any other case mutation. Of course, URLs are meant to be case sensitive by definition (not the scheme and host parts but the URI and query). This is standardized [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=122&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We’ve been getting a number of field requests lately for handling case insensitive URLs. That is, resolving something like http://foo/blah the same way as http://foo/Blah and any other case mutation. Of course, URLs are meant to be case sensitive by definition (not the scheme and host parts but the URI and query). This is standardized by W3C and mostly respected except for a few rogue implementations (we’re looking at you IIS).</p>
<p>In an upcoming service pack for version 5.4 of our <a href="http://www.layer7tech.com/products/soa-gateway">SOA Gateway</a> and subsequent releases, we are introducing a number of additional controls pertaining to service resolution. One of them lets the administrator change the default behavior of the Gateway so that resolution paths are matched ignoring case. This simplifies the process of accommodating requesters that are not URL “case-aware”, and mediating between services which respect this aspect of URLs and services which do not.</p>
<p>What I find most interesting however, is how our users, support team and field engineers have been using our technology until now to accommodate such requirements. Using our sophisticated and fine-grained resolution subsystem, some users register a “/*” endpoint to catch all messages that do not get explicitly resolved to other published services (for example because of character case mismatch). Once in this “/*” policy, you can feed the incoming URL into a simple XSLT which produces a lowercase version of the URL, then circle the request back to the Gateway using the resulting URL so that the intended service gets invoked. This is pretty straightforward.</p>
<p>A catch-all policy is great at processing traffic which is not expected at design time and doing something useful with it. However, the use of wildcard characters in service resolution parameters is not limited to setting up a catch-all policy. You can publish services with such resolution patters to handle in a single policy, requests following a common pattern. For <a href="http://www.layer7tech.com/solutions/securing-restful-web-services">RESTful web services</a>, such resolution parameters are essential such as illustrated in <a href="http://www.layer7tech.com/tutorials/rest-soap-remapping">this tutorial</a>.</p>
<p>Flexible and customizable service resolution patterns have always been a key ingredient in sophisticated service mediation and complex routing rules. Look for advancements in this area and more in v5.4 service pack 1 of the Layer 7 Gateway solution.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=122&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/01/24/case-in-sensitive-urls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA gateway trends for 2011 and beyond</title>
		<link>http://flascelles.wordpress.com/2011/01/10/soa-gateway-trends-for-2011-and-beyond/</link>
		<comments>http://flascelles.wordpress.com/2011/01/10/soa-gateway-trends-for-2011-and-beyond/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 17:15:07 +0000</pubDate>
		<dc:creator>Francois Lascelles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://flascelles.wordpress.com/?p=120</guid>
		<description><![CDATA[It has been fascinating to witness how the use for SOA gateways evolved over time. In 2010, we saw an explosion of market demand for our gateway appliance product. Here are my thoughts for what I expect to see this year and beyond. Recent use cases for these types of devices largely focused on B2B [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=120&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It has been fascinating to witness how the use for SOA gateways evolved over time. In 2010, we saw an explosion of market demand for our gateway appliance product. Here are my thoughts for what I expect to see this year and beyond.</p>
<p>Recent use cases for these types of devices largely focused on B2B interactions and internal enterprise integration. Many enterprise architects realized the benefits of using the lightweight ESB-in-a-box deployment model and gateway-based integration. I don’t think we’ve hit the peak of this type of use case. I expect the demand for quickly deployed integration, and a preference for “configure, not code” to continue to accelerate in 2011. The cost and complexity involved in deploying full-blown software-based ESB stacks is becoming well known and the alternative provided by best of breed SOA gateways with their out of box support for existing enterprise standards will continue to gain popularity.</p>
<p>Another source of momentum for SOA gateways is the enterprise adoption of cloud computing. As the enterprise gradually moves some of its IT assets from on-premise to a cloud-based deployment model (SAAS, PAAS or IAAS), the requirement for integration between these IT assets does not simply vanish. Integrating your IT assets is as important in 2011 as it was back when they were all deployed in your own domain. Cloud computing adoption is currently limited by the ability of the enterprise to securely integrate on-premise and off-premise. And what better way is there to enable this secure integration than perimeter deployed SOA gateways? The SOA gateway acts as the glue between your on-premise IT assets and external services that they interact with. Concretely, this means support for federation and trust management. Your SOA gateway at the perimeter is enabling the trust management for the various external domains you interact with and presents a homogenous identity authority on behalf of your existing services. Utilizing the federation capabilities of SOA gateways with support for SAML, OAuth and other relevant standards is increasingly recognized as a winning pattern for integrating enterprise and cloud.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flascelles.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flascelles.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flascelles.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flascelles.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flascelles.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flascelles.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flascelles.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flascelles.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=flascelles.wordpress.com&amp;blog=11244066&amp;post=120&amp;subd=flascelles&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://flascelles.wordpress.com/2011/01/10/soa-gateway-trends-for-2011-and-beyond/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f673050444b1635a0d3dcc9e6dc60317?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">flascelles</media:title>
		</media:content>
	</item>
	</channel>
</rss>
