Shepherd Write-Up for "OAuth 2.0 for Native Apps"
(1) What type of RFC is being requested (BCP, Proposed Standard,
Internet Standard, Informational, Experimental, or Historic)? Why
is this the proper type of RFC? Is this type of RFC indicated in the
title page header?
This specification is proposed as a 'Best Current Practice' document. The
type of RFC is indicated. The document summarizes the experience from
industry on how to use OAuth for native applications securely.
(2) The IESG approval announcement includes a Document Announcement
Write-Up. Please provide such a Document Announcement Write-Up. Recent
examples can be found in the "Action" announcements for approved
documents. The approval announcement contains the following sections:
OAuth 2.0 authorization requests from native apps should only be made
through external user-agents, primarily the user's browser. This
specification details the security and usability reasons why this is
the case, and how native apps and authorization servers can implement
this best practice.
Working Group Summary
The OAuth 2.0 authorization framework, documents two approaches for
native apps to interact with the authorization endpoint: via an
embedded user-agent, or an external user-agent.
This document recommends external user-agents like in-app browser
tabs as the only secure and usable choice for OAuth.
Are there existing implementations of the protocol? Have a
significant number of vendors indicated their plan to
implement the specification? Are there any reviewers that
merit special mention as having done a thorough review,
e.g., one that resulted in important changes or a
conclusion that the document had no substantive issues? If
there was a MIB Doctor, Media Type or other expert review,
what was its course (briefly)? In the case of a Media Type
review, on what date was the request posted?
There are high-quality libraries available following the
recommendations in this document:
- Android: http://openid.github.io/AppAuth-Android
- iOS: http://openid.github.io/AppAuth-iOS
- Windows: https://github.com/googlesamples/oauth-apps-for-windows
Google has deprecated support for WebView-based OAuth and
now requires the use of the practices defined in the BCP.
The pattern is documented at
for the Google OAuth server, and is also recommended by Android
for Work, see https://developer.android.com/work/guide.html#sso.
Ping Identity describes the pattern and has OAuth for Native Apps
compliant samples, see
Okta has published OAuth for Native Apps compliant samples:
The AppAuth library implements the BCP 100%, including honoring the
"NOT RECOMMENDED" advice.
In terms of review the document has received feedback from major OS
providers and the available code demonstrates the practical nature of
the recommended approach.
Who is the Document Shepherd? Who is the Responsible Area
Hannes Tschofenig is the document shepherd and the responsible area
director is Kathleen Moriarty.
(3) Briefly describe the review of this document that was performed by
the Document Shepherd. If this version of the document is not ready
for publication, please explain why the document is being forwarded to
The document shepherd was involved in the working group review process
and verified the document for correctness.
The shepherd has not contributed or worked with the above-mentioned
libraries. Hence, he has not verified the text in Appendix B "Operating
System Specific Implementation Details".
(4) Does the document Shepherd have any concerns about the depth or
breadth of the reviews that have been performed?
There are no concerns regarding the document reviews.
(5) Do portions of the document need review from a particular or from
broader perspective, e.g., security, operational complexity, AAA, DNS,
DHCP, XML, or internationalization? If so, describe the review that
It would be great if reviewers with experience in native application
development (particularly on mobile OSs) could take a look at this document.
(6) Describe any specific concerns or issues that the Document Shepherd
has with this document that the Responsible Area Director and/or the
IESG should be aware of? For example, perhaps he or she is uncomfortable
with certain parts of the document, or has concerns whether there really
is a need for it. In any event, if the WG has discussed those issues and
has indicated that it still wishes to advance the document, detail those
The document shepherd has no concerns with the document.
(7) Has each author confirmed that any and all appropriate IPR
disclosures required for full conformance with the provisions of BCP 78
and BCP 79 have already been filed. If not, explain why.
The authors have confirmed full conformance with the provisions of BCP 78
and BCP 79:
(8) Has an IPR disclosure been filed that references this document?
If so, summarize any WG discussion and conclusion regarding the IPR
No IPR disclosures have been filed for this document.
(9) How solid is the WG consensus behind this document? Does it
represent the strong concurrence of a few individuals, with others
being silent, or does the WG as a whole understand and agree with it?
There is solid consensus in the working group for publishing this
(10) Has anyone threatened an appeal or otherwise indicated extreme
discontent? If so, please summarise the areas of conflict in separate
email messages to the Responsible Area Director. (It should be in a
separate email because this questionnaire is publicly available.)
Nobody threatened an appeal or expressed extreme discontent.
(11) Identify any ID nits the Document Shepherd has found in this
document. (See http://www.ietf.org/tools/idnits/ and the Internet-Drafts
Checklist). Boilerplate checks are not enough; this check needs to be
The shepherd checked the document.
(12) Describe how the document meets any required formal review
criteria, such as the MIB Doctor, media type, and URI type reviews.
No formal review is needed.
(13) Have all references within this document been identified as
either normative or informative?
Yes. The references are split into normative and informative references.
(14) Are there normative references to documents that are not ready for
advancement or are otherwise in an unclear state? If such normative
references exist, what is the plan for their completion?
All normative references are published RFCs.
(15) Are there downward normative references references (see RFC 3967)?
If so, list these downward references to support the Area Director in
the Last Call procedure.
There are no downward normative references.
(16) Will publication of this document change the status of any
existing RFCs? Are those RFCs listed on the title page header, listed
in the abstract, and discussed in the introduction? If the RFCs are not
listed in the Abstract and Introduction, explain why, and point to the
part of the document where the relationship of this document to the
other RFCs is discussed. If this information is not in the document,
explain why the WG considers it unnecessary.
This document does not change the status of an existing RFC.
(17) Describe the Document Shepherd's review of the IANA considerations
section, especially with regard to its consistency with the body of the
document. Confirm that all protocol extensions that the document makes
are associated with the appropriate reservations in IANA registries.
Confirm that any referenced IANA registries have been clearly
identified. Confirm that newly created IANA registries include a
detailed specification of the initial contents for the registry, that
allocations procedures for future registrations are defined, and a
reasonable name for the new registry has been suggested (see RFC 5226).
This document does not request any actions by IANA.
(18) List any new IANA registries that require Expert Review for future
allocations. Provide any public guidance that the IESG would find
useful in selecting the IANA Experts for these new registries.
(19) Describe reviews and automated checks performed by the Document
Shepherd to validate sections of the document written in a formal
language, such as XML code, BNF rules, MIB definitions, etc.
There is no text in formal languages in the document.