<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">You’re correct that there’s no defined way to suggest an (additional) audience for the ID Token. (The Relying Party will always need to be one of the audiences.)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">If what you’re after is the act-is or on-behalf-of functionality in WS-Trust, you could have a look at
<a href="http://tools.ietf.org/html/draft-jones-oauth-token-exchange-00">http://tools.ietf.org/html/draft-jones-oauth-token-exchange-00</a> as a starting point. I say that with the caveat that I would expect that there will be changes in any final version
of the spec, should there be one.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> -- Mike<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Prabath Siriwardena [mailto:prabath@wso2.com]
<br>
<b>Sent:</b> Wednesday, June 04, 2014 10:56 PM<br>
<b>To:</b> openid-specs-ab@lists.openid.net; Mike Jones<br>
<b>Subject:</b> Re: Using OpenID Connect ID Token for API Security (authentication)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">And the other limitation I found was - in OpenID Connect request client cannot suggest an audience value for the ID token...possibly this is beyond OpenID Connect or may be a different profile..?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks & regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-Prabath<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Thu, Jun 5, 2014 at 11:13 AM, Prabath Siriwardena <<a href="mailto:prabath@wso2.com" target="_blank">prabath@wso2.com</a>> wrote:<o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">I have the following SOAP use case...<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1. Using WS-Trust - I authenticate to the STS - and get a SAML Bearer Token with the required set of claims..<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2. I use this as a supporting token to access a SOAP service.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">3. SOAP service will validate the signature of the SAML token and if it is valid - I will be able to access it.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Now I am thinking of implementing the same in the following manner for REST APIs.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1. Using OpenID Connect talk to the token endpoint with client credential grant type and get a signed ID token with the required set of claims.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2. Set the JWT token in an HTTP header and talk to the secured API.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">3. API should validate the signature of the JWT and if its valid and if it trusts the issuer - should let me in.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">But - I find some limitations in spec to implement my REST use case.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">1. OpenID Connect specification does not talk about client credentials grant type ? at the same time it does not say its a MUST to use authorization code or implicit.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">2. AFAIK there is no HTTP binding to pass a JWT - please let me know if there is any?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Appreciate your thoughts on this...<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
Thanks & Regards,<br>
Prabath<br>
<br>
Twitter : @prabath<br>
LinkedIn : <a href="http://www.linkedin.com/in/prabathsiriwardena" target="_blank">
http://www.linkedin.com/in/prabathsiriwardena</a><br>
<br>
Mobile : <a href="tel:%2B94%2071%20809%206732" target="_blank">+94 71 809 6732</a><br>
<br>
<a href="http://blog.facilelogin.com" target="_blank">http://blog.facilelogin.com</a><br>
<a href="http://blog.api-security.org" target="_blank">http://blog.api-security.org</a><o:p></o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Thanks & Regards,<br>
Prabath<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Twitter : @prabath<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">LinkedIn : <a href="http://www.linkedin.com/in/prabathsiriwardena" target="_blank">http://www.linkedin.com/in/prabathsiriwardena</a><br>
<br>
Mobile : +94 71 809 6732<br>
<br>
<a href="http://blog.facilelogin.com" target="_blank">http://blog.facilelogin.com</a><br>
<a href="http://blog.api-security.org" target="_blank">http://blog.api-security.org</a><o:p></o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>