Parallels がどのようにして Apple でサインインを克服したか

Parallels がどのようにして Apple でサインインを克服したか

WWDC 2019 の後、Sign In with Apple (略して SIWA) をすでに聞いた人も多いと思います。 この記事では、これをライセンス ポータルに統合するときに直面しなければならなかった具体的な落とし穴について説明します。 この記事は、SIWA を理解しようと決意したばかりの人のためのものではありません (その人のために、本文の最後にいくつかの教育用リンクを用意しました)。 おそらく多くの人が、この資料で、新しい Apple サービスを統合する際に生じる可能性のある質問への答えを見つけるでしょう。

Apple はカスタム リダイレクトを許可していません

実際のところ、開発者フォーラムではこの質問に対する答えがまだ見つかりません。 重要なのは、SIWA JS API を使用したい場合、つまり何らかの理由で (macOS/iOS やこれらのシステムの古いバージョンではなく) ネイティブ SDK が不足しているため、ネイティブ SDK を介して動作しない場合は、独自のパブリック ポータルが必要になります。そうでない場合は、他に方法がありません。 WWDR ポータルでは、自分がドメインの所有者であることを登録して確認する必要があり、Apple の観点から許容されるリダイレクトを添付できるのはそこでのみであるためです。

Parallels がどのようにして Apple でサインインを克服したか

アプリケーションでリダイレクトをインターセプトしたい場合はどうすればよいでしょうか? 私たちはこの問題を非常に簡単に解決しました。ポータル上に、アプリケーションに許容されるリダイレクトのリストを作成し、SIWA 認証ページを表示する前にアプリケーションがそのリダイレクトを注文しました。 そして、Apple から受け取ったデータを使用して、ポータルからアプリケーションにリダイレクトするだけです。 シンプルで怒っている。

電子メールに関する問題

ユーザーの電子メールに関する問題をどのように解決したかを見てみましょう。 まず、バックエンドからこの情報を取得できる REST API はありません。クライアントのみがこのデータを受信し、認証コードとともに送信できます。

次に、ユーザーの名前と電子メールに関する情報は、ユーザーが Apple を通じてアプリケーションに最初にログインするときに XNUMX 回だけ送信され、そこでユーザーは個人データを共有するためのオプションを選択します。

ポータル上でソーシャル プロファイルとの接続が正常に作成された場合、つまりユーザー ID が同じでチーム ID にリンクされている場合、これらの問題自体は直接的には重大ではありません。 これは、チームのすべての SIWA 統合アプリケーションで同じです。 しかし、ログインが Apple 経由で行われ、さらにそのパスの途中でエラーが発生し、ポータル上の接続が作成されなかった場合、唯一の選択肢は、ユーザーを appleid.apple.com に送信し、アプリケーションとの接続を切断し、もう一度やり直してください。 実際には、適切な KB 記事を作成し、そこにリンクすることで問題を解決できます。

次に不快な問題は、Apple がプロキシ電子メールという新しい概念を考案したという事実に関連しています。 私たちの場合、ユーザーが実際のソープですでにライセンス ポータルにアクセスしており、Apple 経由で初めてログインするときに電子メールを非表示にするオプションを選択すると、新しいアカウントがこのプロキシ電子メールに登録されます。このメールには明らかにライセンスが含まれていないため、エンド ユーザーは行き詰まってしまいます。

この問題の解決策は非常に簡単です。 ユーザー ID が SIWA で同じであり、サインインが行われる選択されたオプション/アプリケーションに依存しない場合は、特別なスクリプトを使用するだけで、この接続を Apple からユーザーの実際のアカウントを持つ別のアカウントに切り替えることができます。石鹸を使用して「購入内容を復元」します。」 この手順の後、ユーザーは SIWA を通じてポータル上の別のアカウントにアクセスし始め、すべてが正しく機能します。

Web ポータル経由でサインインするときにアプリケーション アイコンが表示されない

別の問題を解決するために、私たちは Apple の担当者に説明を求め、知識を共有しました。

https://forums.developer.apple.com/thread/123054
Parallels がどのようにして Apple でサインインを克服したか

それらの。 意味は次のとおりです。SIWA グループの先頭に立つ m.b. 必要なポータルのサービスIDが追加されたmacOS/iOSアプリケーションのみが配信されます。 これにより、メインアプリケーションのアイコンが表示されるようになります。 Apple によって検証されたメディアを使用して App Store で公開されているバージョン。 アイコンはそこから取得されます。

したがって、ポータルのみがあり、App Store からのアプリケーションがない場合は、美しいアイコンは表示されませんが、アプリケーションの名前は問題なく使用できます。メイン アプリケーションにメディアがない場合、この情報は次のとおりです。説明サービス ID から取得:
Parallels がどのようにして Apple でサインインを克服したか
Parallels がどのようにして Apple でサインインを克服したか

SIWA グループ内の要素の数は 5 に制限されています

現時点では、多くのグループを使用する以外にこの問題に対する解決策はありません。6 つの識別子 (1 つの先頭アプリケーションと 5 つの依存アプリケーション) が不足している場合、次の識別子を登録しようとすると、次のメッセージが表示されます。

Parallels がどのようにして Apple でサインインを克服したか

ライセンス ポータルと、このポータルと対話するアプリケーションごとにグループを作成しました。 スロット制限に関しては、すでに Apple とレーダーをオープンしており、Apple の返答を待っています。

便利なリンク集

一番便利 リンク、私の意見では、それに従って私は本質的にすべてを行いました。 Apple の準便利なドック ここで.

楽しむ! 質問、考え、アイデア、提案はコメントで受け付けます。

出所: habr.com

コメントを追加します