<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
&gt; Date: Thu, 3 Jun 2010 07:41:25 -0600<br>&gt; From: stpeter@stpeter.im<br>&gt; To: jdev@jabber.org<br>&gt; Subject: Re: [jdev] Claims-based Authentication<br>&gt; <br>&gt; 1. Is there a compelling use case for this?<div><br></div><div>I have seen a few devs approach the mailing list with this problem. It most often appears in the form "How to use OAuth".</div><div><br>&gt; <br>&gt; 2. Why wouldn't the WS-* folks define a new SASL mechanism?</div><div><br></div><div>The problem is the XML - WSF uses XML to do the exchange, to base64-ing it wouldn't be the best (as per requirement from the SASL RFC). If that lands up being the route taken they would probably only need to reserve a namespace.</div><div><br></div><div>This would probably land up being an XMPP-specific thing that would indicate how to do authentication exchanges using XML-based protocols (like WSF); but that is a big hunch on my part.</div><div><br>&gt; <br>&gt; On 5/31/10 8:18 AM, Jonathan Dickinson wrote:<br>&gt; &gt; Hi All,<br>&gt; &gt;  <br>&gt; &gt; I have been doing some research lately on claims-based authentication<br>&gt; &gt; [CBA] (Microsoft implementation - AFAIK based on WS-Federation/WS-Trust<br>&gt; &gt; &lt;http://en.wikipedia.org/wiki/WS-Federation&gt;). The previous discussions<br>&gt; &gt; about OAuth and its limitations came to mind immediately - CBA seems to<br>&gt; &gt; resolve the issues that we discussed (it is not tied to the web).<br>&gt; &gt;  <br>&gt; &gt; For those who are not familiar with it; it basically is an identity that<br>&gt; &gt; consists of one or more claims. For example a Jabber claim might look<br>&gt; &gt; like this:<br>&gt; &gt;  <br>&gt; &gt; JID: jonathand@jabber.org<br>&gt; &gt; UPN: jonathand@jabber.org<br>&gt; &gt; Name: Jonathan Dickinson /from VCard/<br>&gt; &gt; etc.<br>&gt; &gt;  <br>&gt; &gt; In this scenario jabber.org is the sole /issuer/. This identity (and<br>&gt; &gt; it's claims) can be passed to other issuers so that they can fill in the<br>&gt; &gt; blanks. For instance, if I were to start off with a X509 claim:<br>&gt; &gt;  <br>&gt; &gt; Thumbprint: BCF189...<br>&gt; &gt; Name: CN=jonathand...<br>&gt; &gt;  <br>&gt; &gt; I could send it to my internal JID issuer and land up with the following:<br>&gt; &gt;  <br>&gt; &gt; Thumbprint: BCF189...<br>&gt; &gt; Name: CN=jonathand...<br>&gt; &gt; JID: jonathand@jabber.org<br>&gt; &gt; UPN: jonathand@jabber.org<br>&gt; &gt;  <br>&gt; &gt; The idea of a claim is that you can use that claim to authenticate with<br>&gt; &gt; SSO capabilities (this works particularly well with the Microsoft<br>&gt; &gt; implementation of it). I could authenticate against a server using<br>&gt; &gt; SQL-orientated credentials (e.g. PLAIN) - with appropriate translation<br>&gt; &gt; components in place I could pick up my SAP creds, Windows creds and HTTP<br>&gt; &gt; creds without the user having to enter them in. The whole exchange<br>&gt; &gt; occurs using XML (primarily SAML).<br>&gt; &gt;  <br>&gt; &gt; The XML is where the problem lies - SASL dictates that the contents be<br>&gt; &gt; base64-encoded. While this is perfectly valid it just feels plain wrong.<br>&gt; &gt; After thinking about it (less than I should - but here goes):<br>&gt; &gt;  <br>&gt; &gt; &lt;stream:features&gt;<br>&gt; &gt;      &lt;starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'&gt;<br>&gt; &gt;        &lt;required/&gt;<br>&gt; &gt;      &lt;/starttls&gt;<br>&gt; &gt;      &lt;federation xmlns='http://schemas.xmlsoap.org/ws/2006/12/federation' /&gt;<br>&gt; &gt;      &lt;mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'&gt;<br>&gt; &gt;        &lt;mechanism&gt;DIGEST-MD5&lt;/mechanism&gt;<br>&gt; &gt;        &lt;mechanism&gt;PLAIN&lt;/mechanism&gt;<br>&gt; &gt;      &lt;/mechanisms&gt;<br>&gt; &gt;    &lt;/stream:features&gt;<br>&gt; &gt;  <br>&gt; &gt; The WS-Federation SignOn exchange could then be done via &lt;federation&gt;<br>&gt; &gt; tags. Obviously one would need to be careful around namespace prefix<br>&gt; &gt; conflicts etc. - but nothing too hairy.<br>&gt; &gt;  <br>&gt; &gt; Ideas/thoughts?<br>&gt; &gt;  <br>&gt; &gt; -- <br>&gt; &gt; Jonathan Dickinson<br>&gt; &gt; <br>&gt; <br><div><br style="text-indent: 0in !important; ">--&nbsp;Jonathan Dickinson<br style="text-indent: 0in !important; "></div></div>                                               <br /><hr />Hotmail: Trusted email with powerful SPAM protection. <a href='https://signup.live.com/signup.aspx?id=60969' target='_new'>Sign up now.</a></body>
</html>