<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.18 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bucksch-mauth-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="mAuth">mAuth - OAuth2 profile for mail apps and other public clients</title>
    <seriesInfo name="Internet-Draft" value="draft-bucksch-mauth-00"/>
    <author fullname="Ben Bucksch">
      <organization>Beonex</organization>
      <address>
        <email>ben.bucksch@beonex.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="23"/>
    <keyword>OAuth2</keyword>
    <keyword>IMAP</keyword>
    <keyword>SMTP</keyword>
    <keyword>POP3</keyword>
    <keyword>XMPP</keyword>
    <abstract>
      <?line 39?>

<t>This document creates a specific OAuth2 profile
that is suitable for mail, chat, calendar and similar clients.</t>
      <t>It defines specific parameters of OAuth2, to allow email clients to reliably authenticate using OAuth2 on any mail provider.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://benbucksch.github.io/mauth-spec/draft-mauth.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bucksch-mauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/benbucksch/mauth-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Mail clients today use mostly username and password to log in to IMAP. OAuth2 can only be used at the biggest providers, but causes major problems for mail clients in its current application.</t>
      <t>This document creates a specific OAuth2 profile
that is suitable for mail, chat, calendar and similar clients.</t>
      <t>It defines specific parameters of OAuth2, with the purpose
of making OAuth2 as reliable for client and for end users
as password login is today.</t>
      <t>It also avoids provider-specific configuration and adjustments. This in turn would allow email clients to authenticate using OAuth2 on any mail provider, without having to specifically register with or test each and every mail provider in the world.</t>
    </section>
    <section anchor="scope">
      <name>Scope</name>
      <t>To avoid that the client needs to know the provider-specific version of scope names, the server <bcp14>MUST</bcp14> accept the following literal scope names (RFC 6749 3.3), for the following purposes:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Scope</th>
            <th align="left">Resource protocol or standard</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">IMAP</td>
            <td align="left">RFC 9051</td>
          </tr>
          <tr>
            <td align="left">SMTP</td>
            <td align="left">RFC 5321</td>
          </tr>
          <tr>
            <td align="left">POP3</td>
            <td align="left">RFC 1939</td>
          </tr>
          <tr>
            <td align="left">CalDAV</td>
            <td align="left">RFC 4791</td>
          </tr>
          <tr>
            <td align="left">CardDAV</td>
            <td align="left">RFC 6352</td>
          </tr>
          <tr>
            <td align="left">WebDAV</td>
            <td align="left">RFC 4918</td>
          </tr>
          <tr>
            <td align="left">XMPP</td>
            <td align="left">RFC 6120</td>
          </tr>
          <tr>
            <td align="left">matrix.org/Matrix</td>
            <td align="left">Matrix chat client/server API</td>
          </tr>
          <tr>
            <td align="left">microsoft.com/EWS</td>
            <td align="left">Microsoft Exchange Web Services</td>
          </tr>
          <tr>
            <td align="left">microsoft.com/ActiveSync</td>
            <td align="left">Microsoft ActiveSync</td>
          </tr>
        </tbody>
      </table>
      <t>For all RFC references, previous versions and updates of these standards are also included.</t>
      <t>If a client requests one or multiple of these scopes, the token issued by the server <bcp14>MUST</bcp14> be valid for this user on the resource servers of the provider which implement the corresponding protocols.</t>
      <t>If the provider does not have an resource server which
implements this protocol, the server <bcp14>MUST</bcp14> ignore the unsupported scope and issue the token for the supported scopes. The authorization server response <bcp14>MUST</bcp14> include only the supported scopes. It <bcp14>MAY</bcp14> reject the token request with error <tt>invalid_scope</tt>, if <em>all</em> requested scopes are unsupported.
(See RFC 6749 3.3 Paragraph 3)</t>
    </section>
    <section anchor="client-id">
      <name>Client ID</name>
      <section anchor="rationale">
        <name>Rationale</name>
        <t>OAuth2 was created with server-to-server relations in mind, where a contractual relationship between both
parties exist. RFC 6749 states:
'Client ID ... may require a contractual relationship...'
(TODO find quote)</t>
        <t>This concept is not compatible with the concept of mail clients. A mail client cannot realistically register with all mail providers in the world.</t>
        <t>Last but not least, the client ID currently allows a mail
provider to force a contract on a mail client. This is
directly contrary to a free Internet and IETF values.</t>
        <t>Furthermore, given that mail providers typically also offer mail clients and mail clients are therefore almost
always competitors to the mail provider, a mail provider
blocking clients or allowing the clients only under conditions, is inherently anti-competitive.</t>
      </section>
      <section anchor="definition-client-id">
        <name>Definition Client ID</name>
        <t>The server <bcp14>MUST</bcp14> accept the following Client ID
(RFC 6749 2.2):
<tt>open</tt></t>
        <t>The client <bcp14>SHALL</bcp14> use this Client ID.</t>
        <t>The server <bcp14>MUST NOT</bcp14> require other authentication or authorization for the client software.</t>
      </section>
    </section>
    <section anchor="client-software-name-and-version">
      <name>Client software name and version</name>
      <t>The client <bcp14>MUST</bcp14> use the following mechanisms to
identify itself, as appropriate for the protocol used:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Protocol</th>
            <th align="left">Identification method</th>
            <th align="left">Standard</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">OAuth2</td>
            <td align="left">
              <tt>User-Agent</tt> HTTP header</td>
            <td align="left">RFC 2616 14.43</td>
          </tr>
          <tr>
            <td align="left">HTTPS</td>
            <td align="left">
              <tt>User-Agent</tt> HTTP header</td>
            <td align="left">RFC 2616 14.43</td>
          </tr>
          <tr>
            <td align="left">IMAP</td>
            <td align="left">
              <tt>ID</tt> command</td>
            <td align="left">RFC 2971</td>
          </tr>
        </tbody>
      </table>
      <t>All all cases, the client <bcp14>MUST</bcp14> use as primary
name component a string reflecting the commonly
known name of the end user application, and at least the major version. The client <bcp14>MAY</bcp14> include as secondary name component the software library that implements the protocol.</t>
      <t>In the case of HTTP user agent strings, the order is reversed, so a typical user agent string should be,
for mail app "ACME Mail" using "Best Effort IMAP" library:</t>
      <t><tt>User-Agent: Best-Effort-IMAP/2.3 ACME-Mail/4.5</tt></t>
      <t>The OAuth2 authorization server <bcp14>MUST NOT</bcp14> reject or disadvantage clients that send non-browser User-Agent strings. The client <bcp14>SHALL NOT</bcp14> send generic browser user agent strings, unless the authorization server is known to disadvantage a client without such user agent string.</t>
    </section>
    <section anchor="username-in-authentication-request">
      <name>Username in authentication request</name>
      <t>In most cases, the client would like to authenticate to a specific account or email address which is known before the authentication is started. However, RFC 6749 does not specify how the client informs the authorization server which username is intended to log in. Various proprietary provider-specific mechanisms exist, e.g. <tt>login_hint</tt> at Office365, but there is no interoperable standard.</t>
      <t>In the Authorization Request, an additional URL query parameter <tt>username</tt> <bcp14>MAY</bcp14> be passed by the client, with the email address or account ID of the account that the client expects to log in. If given, the server <bcp14>MUST</bcp14> skip the interactive username input, <bcp14>SHALL</bcp14> show the username on the login page, and <bcp14>SHALL NOT</bcp14> allow the user to log in with another account.</t>
    </section>
    <section anchor="error-codes">
      <name>Error codes</name>
      <t>In the Authorization Response Error Response (RFC 6749 4.1.2.1.), the following more specific <tt>error</tt> codes <bcp14>MUST</bcp14> be used, if their case applies:</t>
      <table>
        <thead>
          <tr>
            <th align="left">error code</th>
            <th align="left">Problem</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">auth_failed</td>
            <td align="left">The user made a login attempt, but the password or username or second factor was wrong.</td>
          </tr>
          <tr>
            <td align="left">blocked</td>
            <td align="left">The login credentials were valid, but the user account was blocked. The error_description <bcp14>MUST</bcp14> give a detailed cause for the block, and <bcp14>SHALL</bcp14> explain a way for the user to remedy the problem and unblock the account.</td>
          </tr>
          <tr>
            <td align="left">unknown_user</td>
            <td align="left">The user doesn't exist, as far as this server is aware.</td>
          </tr>
          <tr>
            <td align="left">user_not_here</td>
            <td align="left">The user account is known to exist, but must use another OAuth2 server.</td>
          </tr>
          <tr>
            <td align="left">no_oauth</td>
            <td align="left">The user account exists, but is not allowed to use OAuth2.</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="refresh-token">
      <name>Refresh token</name>
      <t>The authorization server access token response <bcp14>MUST</bcp14> contain a working refresh token together with the access token (RFC 6749 5.1. and 6.).</t>
      <t>When the client requests a new access token using a valid refresh token, the authorization server <bcp14>MUST</bcp14> return a new refresh token with a renewed expiry time.</t>
      <t>The expiry time of the refresh token <bcp14>MUST</bcp14> be long enough for typical uses of an email client that checks email in the background, i.e. at least 24 hours, but preferably 1 year.</t>
      <t>The <tt>expires_in</tt> field <bcp14>MUST</bcp14> be returned in the response (in RFC 6749 5.1., it is <bcp14>RECOMMENDED</bcp14>).</t>
      <section anchor="revokation">
        <name>Revokation</name>
        <t>The tokens <bcp14>MAY</bcp14> be revoked or invalidated by the authorization server at any time, if there is a concrete reason to believe that this specific account has been compromised.</t>
      </section>
      <section anchor="rationale-1">
        <name>Rationale</name>
        <t>This avoids that users get logged out of their email silenty and do not get new mail notifications anymore.</t>
        <t>It also avoids that users have to re-log in constantly,
which is known to be detrimental to security, due to passwords being written down or re-using the same password on multiple services to remember them.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="data-protection-and-privacy">
        <name>Data protection and privacy</name>
        <t>The client <bcp14>MUST</bcp14> act directly on behalf of the user
who is authenticating using OAuth2.</t>
        <t>The client <bcp14>MUST</bcp14> keep the data obtained via the obtained access token from the protected resources on the user's computers and <bcp14>MUST</bcp14> not route the data through
servers not under control of the resource server owner
(including avoiding servers of the application vendor),
unless specifically and explicitly requested by the user.
(TODO rephrase with better English)</t>
      </section>
      <section anchor="abuse">
        <name>Abuse</name>
        <t>The server <bcp14>MAY</bcp14> reject access, if the specific connection
or IP address acted on many different users' behalf or has issued an excessive amount of requests that don't
reflect an interactive client usage.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <?line 224?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
