<div dir="ltr"><div>I think it sort of depends on how closely related your components are (or you want them to be). In what you described, the RS / SP API needs to be able to validate the AS / IDP's access token, which sort of implies a close relationship between the SP and IDP given the nature of most OAuth deployments. This likely creates a pretty tight coupling from the API to that particular IDP. If they are both in the same administrative domain, that probably works. But could be problematic, if not. <br><br></div><div>More generally I think it makes sense for a service provide to issue its own access tokens for its own APIs. And use Connect (or whatever web SSO protocol) for user authentication. That decouples the APIs tokens from the IDP and allows different IDPs to be used.<br><br></div><div>I tried to describe (with pictures!) this model in a talk I did last week - the flow starts here: <a href="http://www.slideshare.net/briandavidcampbell/gluecon2015-mobile-sso/47" target="_blank">http://www.slideshare.net/briandavidcampbell/gluecon2015-mobile-sso/47</a><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 20, 2015 at 8:27 AM, Andy Brown <span dir="ltr"><<a href="mailto:Andrew_Brown@rhoworld.com" target="_blank">Andrew_Brown@rhoworld.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm trying to understand how to use OpenId Connect in the following use case. Let's say we just have the following 3 components:<br>
<br>
* Web app with an exposed API (Service Provider aka SP).<br>
* A separate authentication server (Identify Provider aka IDP) used for SSO with the above SP.<br>
* A native client app used by the End User. This client app uses the SP's API.<br>
<br>
All traffic would be over HTTPS. Here's how I envision the OpenID Connect process working:<br>
<br>
1. The native app would request a "token" from the SP.<br>
2. The SP would see the user isn't authenticated and ask for verification from the trusted IDP.<br>
3. After the user's credentials are provided to the IDP, the IDP would return an ID token and Access token to the SP.<br>
4. The SP would verify the ID token and give the Access token to the native client app to use for all subsequent requests to the API.<br>
<br>
Is this the recommended way to use OpenID Connect in this situation? Any obvious security concerns? The only one I see is that the native client app could use the Access token to access the User Info endpoint at the IDP.<br>
<br>
Thanks for any help!<br>
<br>
- Andy<br>
_______________________________________________<br>
general mailing list<br>
<a href="mailto:general@lists.openid.net">general@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-general" target="_blank">http://lists.openid.net/mailman/listinfo/openid-general</a><br>
</blockquote></div><br></div>