A mobile app that just used Google API only would/should register for a Google 
client Id and use connect with Google.

A mobile app that uses only its own API should have a client ID from its own 
authorization server, and leave it to the authorization server to deal with the 
authentication.

Where it gets more grey is when the native app wants to access both Google API 
directly and its own REST API.

In the simple AppAuth model you could have the App owners Resource server proxy 
the information from Google etc as it gets a google access token if the user 
authenticates to google via Connect.

I think that is the safest way to do it.

Justin’s recommendation is a bit more optimised for this scenario where the 
Native application wants to access two resource servers.   In that case with 
one client_id from Google it can get both a id_token and access token for 
Google.   It uses the acess token to get the plus friends list or something 
like that and sends the id_token to its backend to exchange for a cookie or 
some other form of access token assuming the Native apps authorization/resource 
server doing the exchange properly validates the signature and audience in the 
id_token.  

The original question was not about multiple RS and I don’t think that is 
really the most common case, so I didn’t go there in my answer as it adds more 
complexity to something that is complex enough.

John B.



Sent from Mail for Windows 10

From: Phil Hunt (IDM)
Sent: January 27, 2017 5:45 PM
To: [email protected]
Cc: Dario Teixeira; IETF oauth WG
Subject: Re: [OAUTH-WG] OAuth2/OIDC for client-server mobile app

What is concerning is that many are using resource owner flow so the client app 
can capture the uid/password under the assumption that the client needs to 
control the branding experience much has been done in silo approaches of the 
past. 

Adding to the confusion I note that many of the cloud provider site docs do not 
clearly distinguish mobile apps from web apps. Mobile app developers arw 
reading docs and telling me that oracle, google, and azure require the mobile 
app to register for an openid client id. 

Near as I can tell it is confusion over the difference between authz and authN. 

Phil

On Jan 27, 2017, at 5:23 PM, [email protected] wrote:
It sounds like you are currently doing something like the OAuth resource owner 
flow.
 
Is there a Authorization server currently associated with your resource server?
 
If so you can change the OAuth flow you are using to the code one as described 
in App Auth.
 
You still need to authenticate the users at your server using the current  
username and password or via OpenID Connect to Google.
 
This is a two step process.  If you try to combine them by trying to make your 
NA the connect client you may save a step in the short term but will regret it 
in the long term when you decide to add another identity provider like 
Microsoft etc.
 
 
OAuth from the NA to your server to authorize the native app, and your server 
to Google via Connect to Authenticate the user.
 
Regards
John B.
 
 
 
 
Sent from Mail for Windows 10
 
From: Dario Teixeira
Sent: January 27, 2017 9:16 AM
To: John Bradley
Cc: Phil Hunt; IETF oauth WG
Subject: Re: [OAUTH-WG] OAuth2/OIDC for client-server mobile app
 
Hi,
 
Thanks for your reply and your patience!
 
> Our recommendations are based on the assumption that the end state
> is your app having an access token for your rest API.
> If that is not what you are trying to do then we may be talking at
> cross purposes.
 
Yes, that is exactly the end state I'm looking for, though there
is a chance there is some misunderstanding about the whole picture.
Allow me to summarise the current situation:
 
Users interact with a Native App (NA) running on a mobile phone.
This app talks with a Resource Server (RS) via a RESTful API.
Because there is private user data on the RS, the very first
interaction between the NA and the RS is a login where the NA asks
the user for an email+password combination, which it then sends
to the RS.  If the email+password combination is valid, the RS
replies with an access token that must be used by the NA in all
its future requests.
 
This works fine, but has the disadvantage of requiring users to
manually enter their email and password. The user experience would
be much improved if users had the option to login using their Google,
Facebook, or Github account.
 
Now, it is my understanding that OpenID Connect is the technology
used nowadays to provide this sort of Single Sign-On.  All I'm
looking for is documentation on how OIDC is actually implemented
in this scenario.
 
Best regards,
Dario Teixeira
 
 

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
OAuth mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to