Hi Antonio, Thanks for the feedback.
I agree that for non confidential clients, the user needs to be prompted. It might be fair to just confirm the grants rather than resetting them from defaults. I know some people are doing that, but I suspect that not everyone is. Good stuff. People should chime in with other things we need to consider. Thanks John B. > On Jul 24, 2015, at 9:00 AM, Antonio Sanso <asa...@adobe.com> wrote: > > hi, > > nice to see some work on this topic by the way! > > Couple of comments below inline > > On Jul 24, 2015, at 7:51 AM, John Bradley <ve7...@ve7jtb.com > <mailto:ve7...@ve7jtb.com>> wrote: > >> Thanks for the review Erik, >> >> We will go through it in detail and get back to you. >> >> I am working with a couple of governments on how a eID app could use the >> self issued profile of OpenID Connect to issue tokens. >> >> There are also other out of band authentication apps that people use that >> need to be considered. >> >> I think that the callback / redirect_uri can work if a custom scheme URI or >> a app claimed https: URI is used. > > Is there any example of “popular” custom scheme. One I have seen is > urn:ietf:wg:oauth:2.0:oob > Another common redirect_uri for native app I have seen is http://localhost > <http://localhost/> > > One more comment. I strongly suggest for mobile app to have a really strict > consent screen policy. > Aka the authorization server MUST show the consent screen at every usage and > not remember the fact that the app has been already authorized. > > Just my 2 cents :) > > regards > > antonio > >> >> I agree that sniffing the URI in a web view creates a very confusing user >> experience at the moment. It works better on Android than iOS 8 but is not >> smooth in many cases. >> >> I personally use a out of band mobile authenticator for my enterprise login >> that has exactly that problem, and requires me to manually switch back to >> the calling app. >> >> Regards >> John B. >> >> >> >> >>> On Jul 24, 2015, at 12:59 AM, Erik Wahlström <e...@wahlstromstekniska.se >>> <mailto:e...@wahlstromstekniska.se>> wrote: >>> >>> Hi, >>> >>> Thanks for a great document! I volunteered to review >>> draft-wdenniss-oauth-native-apps-00 at the #IETF93 meeting so here we go: >>> >>> >>> In national mobile eID deployments an app is issued by gov or other >>> organisation in a country. The app acts as the users authentication method >>> and it works with an IDP, the IDP can be anywhere if its an PKI token or at >>> the place that issued the credential if it’s something else. When an SP >>> start developing an native app for there services and want’s to use the >>> national eID solution in combination with OAuth we might run into trouble >>> here. >>> >>> The flow is like follows for a service provider called FooBar: >>> >>> FooBar’s app starts browser-view. FooBar’s SAML service provider >>> functionality redirects the user to an national SAML IDP. The IDP prompts >>> user for a username and then starts an mobile eID token on the same phone. >>> Users is asked if they want’s to authenticate to FooBar and enters PIN. >>> User are then redirected back with an assertion. The FooBar's service >>> provider verifies the assertion and mint’s OAuth2 token(s) and redirects >>> the user back to the app with the help of the redirect URL. >>> >>> So the phone first displays an app, then foobar.com <http://example.com/> >>> in browser-view, then idp.com <http://nationalidp.com/> in browser-view, >>> then mobile eID token, then idp.com <http://nationalidp.com/> in the system >>> browser and back to foobar.com <http://example.com/> and the app that the >>> user wanted to use. >>> >>> The problem with browser-views is that the mobile eID token will start >>> idp.com <http://idp.com/> when user has authenticated and then the user is >>> not back in the apps browser-view, but in system browser instead. The >>> system browser is sharing the session with the browser-view and redirect >>> the user to the native app. The user experience will be a bit strange then >>> because there the correct page is not loaded and the browser-view should be >>> closed and the app should start parsing out the authorization code instead. >>> >>> So I think draft should mention something about this scenario and that app >>> developers should handle this scenario in the app. The grant did not really >>> come back from the browser-view as expected but from the system browser >>> instead. >>> >>> ————————— >>> >>> With the above in mind. Maybe even some example code would be nice to have >>> in the non normative section "Appendix A. Operating System Specific >>> Implementation Details”. Especially how to handle call backs. >>> >>> ————————— >>> >>> Another eID related issue is the pricing model for authentications in that >>> market segment. It’s really common by the eID credential issuing >>> organisations to charge a service providers usage of a credential per tick >>> (that is by OSCP call). The system is based on a per tick pricing model and >>> there are regulations for how long the sessions can live. That means that >>> its not possible to authenticate with a token once and then create a >>> refresh token and the user will ever see the authentication flow again. It >>> kinda messes up the usability of mobile apps a lot but end users have come >>> to term with it. They have not however came to term to always require >>> consents every time they use the app. That drives end user crazy. The >>> usability would be much better if the payment model also accepted a refresh >>> token as a tick instead of just an OSCP call, but we are not there yet. >>> >>> Anyway, that’s the backstory. The section "6.4. Always Prompting for User >>> Interaction” is a bit harsh with a SHOULD NOT. I would rather change it to >>> a NOT RECOMMENDED. >>> >>> ————————— >>> >>> Two additional things that strengthen the case for using the browser-view >>> also come to mind when reading the draft. The first is the fact that >>> multiple tabs is started in some browser when going through multiple >>> authentication attempts. That clutters the system so I really like the new >>> browser-views. >>> >>> The second is that there are additionally nice things in browser-view that >>> do not exist in the web-view. The localStorage is also preserved and it can >>> include important information to make authentication methods more secure. >>> >>> ———————— >>> >>> "Authorization servers SHOULD consider taking steps to detect and >>> >>> block logins via embedded user-agents that are not their own, where >>> >>> possible."" >>> >>> >>> >>> Sounds good, but that also sounds very hard when it comes to public >>> clients. >>> >>> ————————— >>> >>> And some nits: >>> >>> >>> >>> "OAuth flows between a native app and the system browser (or another >>> >>> external user-agent) are more secure, and take advantage of the >>> >>> shared authentication state." >>> >>> >>> >>> Not really clear what shared authentication state that is in that sentence. >>> >>> >>> >>> "When the authentication server completes the request, it redirects to >>> >>> the client's redirection URI like it would any redirect URI" >>> >>> >>> >>> s/authentication/authorization >>> >>> >>> >>> / Erik >>> >>> >>> >>> >>> >>> >>> On Thu, Jul 23, 2015 at 6:22 PM, <oauth-requ...@ietf.org >>> <mailto:oauth-requ...@ietf.org>> wrote: >>> >>> John Bradley and I introduced a new draft at IETF93 yesterday: >>> https://tools.ietf.org/html/draft-wdenniss-oauth-native-apps-00 >>> <https://tools.ietf.org/html/draft-wdenniss-oauth-native-apps-00> >>> >>> >>> Goal is to provide best practices for native apps using the RFC6749 >>> authorization >>> endpoint, expanding on RFC6749 Section 9. Specifically, it recommends >>> using an external user-agent (such as the system browser) for this task >>> over an embedded user-agent (such as a web-view), and suggests ways to >>> achieve this. >>> >>> >>> Comments welcome! >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org <mailto:OAuth@ietf.org> >>> https://www.ietf.org/mailman/listinfo/oauth >>> <https://www.ietf.org/mailman/listinfo/oauth> >> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org <mailto:OAuth@ietf.org> >> https://www.ietf.org/mailman/listinfo/oauth >> <https://www.ietf.org/mailman/listinfo/oauth>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth