Zum Hauptinhalt springen

6. Initiating the Authorization Request from a Native App (Initiierung der Autorisierungsanfrage von einer nativen App)

Native Apps, die eine Benutzerautorisierung benötigen, erstellen eine Autorisierungsanfrage-URI mit dem Authorization Code Grant Type gemäß Abschnitt 4.1 von OAuth 2.0 [RFC6749], unter Verwendung einer Redirect-URI, die von der nativen App empfangen werden kann.

Die Funktion der Redirect-URI für eine native App-Autorisierungsanfrage ist ähnlich wie die einer webbasierten Autorisierungsanfrage. Anstatt die Autorisierungsantwort an den Server des OAuth-Clients zurückzugeben, gibt die von einer nativen App verwendete Redirect-URI die Antwort an die App zurück. Mehrere Optionen für eine Redirect-URI, die die Autorisierungsantwort auf verschiedenen Plattformen an die native App zurückgibt, sind in Abschnitt 7 dokumentiert. Jede Redirect-URI, die es der App ermöglicht, die URI zu empfangen und ihre Parameter zu inspizieren, ist geeignet.

Öffentliche native App-Clients müssen (MUST) die Proof Key for Code Exchange (PKCE [RFC7636]) Erweiterung für OAuth implementieren, und Authorization Server müssen (MUST) PKCE für solche Clients unterstützen, aus den in Abschnitt 8.1 detailliert beschriebenen Gründen.

Nach dem Erstellen der Autorisierungsanfrage-URI verwendet die App plattformspezifische APIs, um die URI in einem externen User-Agent zu öffnen. Typischerweise ist der verwendete externe User-Agent der Standardbrowser, d.h. die Anwendung, die für die Verarbeitung von "http"- und "https"-Schema-URIs auf dem System konfiguriert ist; es können (MAY) jedoch unterschiedliche Browser-Auswahlkriterien und andere Kategorien externer User-Agents verwendet werden.

Diese Best Practice konzentriert sich auf den Browser als empfohlenen (RECOMMENDED) externen User-Agent für native Apps. Ein externer User-Agent, der speziell für die Benutzerautorisierung entwickelt wurde und in der Lage ist, Autorisierungsanfragen und -antworten wie ein Browser zu verarbeiten, kann (MAY) ebenfalls verwendet werden. Andere externe User-Agents, wie eine vom Authorization Server bereitgestellte native App, können die in dieser Best Practice festgelegten Kriterien erfüllen, einschließlich der Verwendung derselben Redirect-URI-Eigenschaften, aber ihre Verwendung liegt außerhalb des Geltungsbereichs dieser Spezifikation.

Einige Plattformen unterstützen eine Browser-Funktion, die als "In-App-Browser-Tabs" bekannt ist, bei der eine App einen Tab des Browsers im App-Kontext präsentieren kann, ohne die App zu wechseln, aber dennoch wichtige Vorteile des Browsers wie einen gemeinsamen Authentifizierungsstatus und Sicherheitskontext behält. Auf Plattformen, wo sie unterstützt werden, wird aus Gründen der Benutzerfreundlichkeit empfohlen (RECOMMENDED), dass Apps In-App-Browser-Tabs für die Autorisierungsanfrage verwenden.