Providers. As a consequence, by leveraging the “Xa-
marin.OpenID.AppAuth” SDK, our approach can be
applied on top of Xamarin so to support the cross-
platform scenario as well.
To conclude, in this paper we have discussed how
it is time-consuming and error-prone for inexperi-
enced app developers to integrate several IdMPs (e.g.,
using Google for SSO login and Microsoft OneDrive
for managing the document Access Delegation). To
this end, we propose a novel wizard-based approach
that guides developers through integration of multi-
ple third-party IdMPs within their app, by (i) “enforc-
ing” the usage of the best practices for native apps
(AppAuth support), (ii) avoiding the need for down-
load several SDKs and reading their online documen-
tations (a list of known IdMPs with their configura-
tion are embedded within our approach), and (iii) au-
tomatically generating the required code. A prototype
of our approach has been implemented as an Android
Studio plugin. It is currently capable of speaking with
Google, OKTA, Auth0, and Microsoft, which en-
force the best practices, and with not fully-compliant
IdMPs such as Yahoo, DropBox, Box, Linkedin, and
Buffer. It is worth mentioning that, during the OAuth
Security Workshop 2019, we spoke with members of
the OpenID Foundation about possible collaborations
and they have shown interest on our approach.
As a future work, we plan to: (i) expand our anal-
ysis by considering other popular IdMPs; (ii) evalu-
ate the possibility to provide an automatic way to ex-
tract the information for the new IdMP; (iii) design
and conduct a user-study experiment to evaluate our
approach; and (iv) add the code exchange on the app
backend to secure cases that need to use the client se-
cret during the authorization request.
REFERENCES
Chen, E. Y., Pei, Y., Chen, S., Tian, Y., Kotcher, R., and
Tague, P. (2014). OAuth Demystified for Mobile Ap-
plication Developers. In ACM CCS.
Denniss, W. and Bradley, J. (2017). OAuth 2.0 for Native
Apps. IETF.
Google (2016). Android Lint. https://developer.android.
com/studio/write/lint.
Google (2017). App Link Assistant Tool. https://developer.
android.com/studio/write/app-link-indexing.
Hardt, D. (2012). The OAuth 2.0 Authorization Framework.
IETF.
Jones, M., Bradley, J., and Sakimura, N. (2015). JSON Web
Token (JWT). IETF.
Liu, F., Wang, C., Pico, A., Yao, D., and Wang, G. (2017).
Measuring the Insecurity of Mobile Deep Links of
Android. In USENIX Security’17.
Liu, X., Liu, J., Wang, W., and Zhu, S. (2018). Android Sin-
gle Sign-On Security: Issues, Taxonomy and Direc-
tions. Future Generation Computer Systems, 89:402–
420.
Lodderstedt, T., Bradley, J., Labunets, A., and Fett, D.
(2019). OAuth 2.0 Security Best Current Practice.
Lu, L., Li, Z., Wu, Z., Lee, W., and Jiang, G. (2012). Chex:
Statically Vetting Android Apps for Component Hi-
jacking Vulnerabilities. In ACM CCS, pages 229–240.
Nguyen, D. C., Wermke, D., Acar, Y., Backes, M., Weir,
C., and Fahl, S. (2017). A stitch in time: Supporting
Android developers in writing secure code. In ACM
CCS, pages 1065–1077.
Sakimura, N., Bradley, J., and Agarwal, N. (2015). Proof
Key for Code Exchange by OAuth Public Clients.
IETF.
Sakimura, N., Bradley, J., Jones, M., de Medeiros, B., and
Mortimore, C. (2014). OpenID Connect Core 1.0 in-
corporating errata set 1. OIDF.
Son, S., McKinley, K. S., and Shmatikov, V. (2011). Role-
cast: finding missing security checks when you do not
know what checks are. In ACM Sigplan Notices, vol-
ume 46. ACM.
Xamarin (2015). Xamarin Tools for cross platform app de-
velopment. https://releases.xamarin.com.
Yang, R., Lau, W. C., and Shi, S. (2017). Breaking and Fix-
ing Mobile App Authentication with OAuth2.0-based
Protocols. In ACNS, pages 313–335. Springer.
A Wizard-based Approach for Secure Code Generation of Single Sign-On and Access Delegation Solutions for Mobile Native Apps
275