
Ich denke, viele haben nach WWDC 2019 bereits von "Sign In with Apple" (kurz SIWA) gehört. In diesem Artikel werde ich erläutern, mit welchen konkreten Hürden wir bei der Integration dieses Features in unser Lizenzportal konfrontiert wurden. Dieser Artikel richtet sich nicht unbedingt an diejenigen, die sich nur mit SIWA vertraut machen möchten (für sie habe ich am Ende einige einführende Links bereitgestellt). In diesem Material werden wahrscheinlich viele Antworten auf Fragen gefunden, die bei der Integration des neuen Apple-Dienstes auftreten können.
Apple erlaubt keine benutzerdefinierten Weiterleitungen.
Ehrlich gesagt, eine Antwort auf diese Frage habe ich bislang nicht auf den Entwicklerforen gefunden. Die Sache ist die folgende: Wenn Sie die SIWA JS API nutzen möchten, d.h. nicht über das native SDK arbeiten können, aus den einen oder anderen Gründen (nicht macOS/iOS oder ältere Versionen eben dieser Systeme), benötigen Sie ein eigenes öffentliches Portal, anders ist es nicht möglich. Denn im WWDR-Portal müssen Sie Ihren Domainbesitz registrieren und bestätigen, und nur auf diese kann Apple-konforme Weiterleitungen angehängt werden:

Was ist zu tun, wenn man den Redirect in der Anwendung abfangen möchte? Wir haben dieses Problem ganz einfach gelöst: Wir haben auf unserem Portal eine Liste zulässiger Redirects für unsere Anwendungen eingeführt, die vor der Anzeige der SIWA-Autorisierungsseite abgerufen werden. Und wir führen einfach eine Umleitung vom Portal zur Anwendung mit den von Apple erhaltenen Daten durch. Einfach und effektiv.
Probleme mit E-Mail
Lassen Sie uns anschauen, wie wir die Probleme mit der Benutzer-E-Mail gelöst haben. Erstens gibt es keine REST API, die es ermöglicht, diese Informationen vom Backend zu erhalten - nur der Client erhält diese Daten und kann sie zusammen mit dem Autorisierungscode übermitteln.
Zweitens werden die Informationen über den Namen und die E-Mail des Benutzers nur einmal übertragen, beim ersten Login des Benutzers in die Anwendung über Apple, wo der Benutzer die Optionen zum Teilen seiner personenbezogenen Daten auswählt.
An sich sind diese Probleme nicht direkt kritisch, wenn die Verbindung zum sozialen Profil erfolgreich auf dem Portal hergestellt wurde - die Benutzer-ID bleibt gleich und ist an die Team-ID gebunden - das heißt, sie ist für alle Anwendungen Ihres Teams, die mit SIWA integriert sind, dieselbe. Sollte jedoch die Anmeldung über Apple erfolgt sein und auf dem Weg ein Fehler aufgetreten sein, sodass die Verbindung auf dem Portal nicht hergestellt wurde, bleibt nur die Option, den Benutzer auf appleid.apple.com zu schicken, die Verbindung zur App zu trennen und es erneut zu versuchen. Eigentlich lässt sich das Problem durch das Schreiben eines entsprechenden KB-Artikels und einem Link zu diesem lösen.
Das nächste, unangenehmere Problem hängt damit zusammen, dass Apple ein neues Konzept mit Proxy-E-Mail eingeführt hat. In unserem Fall, wenn der Benutzer bereits mit seiner echten E-Mail auf dem Lizenzportal war und bei der ersten Anmeldung über Apple die Option auswählt, die E-Mail zu verbergen, wird ein neuer Account mit dieser Proxy-E-Mail registriert, der offensichtlich keine Lizenzen enthält, was den Endbenutzer verwirrt.
Die Lösung dieses Problems ist recht einfach: Da die Benutzer-ID die gleiche ist in SIWA und unabhängig von den gewählten Optionen / Anwendungen, in die man sich einloggt, erlauben wir einfach mit einem speziellen Skript, diese Verbindung von Apple auf einen anderen Account mit der echten E-Mail des Benutzers umzuschalten und so die „Käufe wiederherzustellen“. Nach diesem Verfahren kann der Benutzer über SIWA in einen anderen Account auf dem Portal gelangen und alles funktioniert korrekt.
Bei der Anmeldung über das Webportal gibt es kein Anwendungssymbol.
Um ein anderes Problem zu lösen, haben wir bei den Vertretern von Apple nachgefragt und teilen das gewonnene Wissen:

Das bedeutet Folgendes: An der Spitze der SIWA-Gruppe muss eine macOS / iOS-Anwendung stehen, in die die benötigten Service-IDs der Portale integriert werden. Dementsprechend muss für das Hauptanwendungssymbol eine im App Store veröffentlichte Version mit Medien, die von Apple überprüft wurden, zur Verfügung stehen. Das Symbol wird von dort übernommen.
Wenn Sie also nur ein Portal haben und keine App im App Store, wird es kein schönes Symbol geben, aber mit dem Anwendungsnamen kann man sich behelfen – bei fehlenden Medien im Hauptanwendungsprofil stammt diese Info aus der Beschreibung der Service-ID:


Die Anzahl der Elemente in der SIWA-Gruppe ist auf 5 begrenzt.
Für dieses Problem gibt es momentan keine Lösung, außer mehrere Gruppen zu verwenden. Wenn Ihnen 6 Identifizierer fehlen: 1 Hauptanwendung und 5 abhängige, werden Sie bei dem Versuch, die nächste zu registrieren, folgende Nachricht sehen:

Wir haben Gruppen für unser Lizenzportal und für jede der Anwendungen, die mit diesem Portal arbeiten, erstellt. Bezüglich der Slot-Beschränkung haben wir bereits einen Radar bei Apple eröffnet und warten auf deren Antwort.
Nützliche Links
Am nützlichsten , meiner Meinung nach, über den ich alles im Grunde gemacht habe. Halb nützliche Dokumentation von Apple .
Viel Spaß! Fragen, Gedanken, Ideen und Vorschläge sind in den Kommentaren willkommen.
Quelle: habr.com
