Passkeysでパスワードレスログインをサポート

こんにちは。

AppleのPasskeysシステムへの対応を提案します。

「いいね!」 5

Discourse Apple Authentication と比べて、大きな進歩は何ですか?

「いいね!」 2

しかし、以前の実装では、パスワードレス機能を使用する前に、ユーザーは各デバイスで各ウェブサイトまたはアプリにサインインする必要がありました。この延長されたコミットメントにより、ユーザーは多くのデバイスで、新しいデバイスであっても、すべてのアカウントを再登録することなく、パスキーに自動的にアクセスできるようになります。さらに、人々はモバイルデバイスでFIDO認証を使用して、実行しているOSプラットフォームやブラウザに関係なく、近くのデバイスのアプリまたはウェブサイトにサインインできるようになります。

新しいiOSリリースが近づくにつれて、洗練されたプロトコルになると思います。

「いいね!」 4

これがCDCKが独自に実装する必要があるものだとは知りませんでした。Webブラウザやオペレーティングシステムに依存するものだと思っていました。

そして、明確にしておくと、パスキーはAppleが作成した標準ではありません。FIDO Allianceによって作成されたものです。Appleは、この標準を採用している多くの企業のうちの1社にすぎません。

パスキーはSSO(シングルサインオン)の形式ではありません。

Appleの実装は、もっと異なっていて興味深いように見えましたが、基調講演中に何か誤解していたのかもしれません… :thinking:

Appleが新しいオペレーティングシステムバージョンをリリースしたら、これがどのように展開されるか楽しみにしています。

「いいね!」 1

公開鍵/秘密鍵暗号方式に関係していますか?

Appleが関与していると、常に警戒しています。彼らは、あなたをエコシステムに閉じ込めるために、独自のスキームを作成するのが大好きだからです…

「いいね!」 2

それはFIDOアライアンスのオープンスタンダードに基づいているはずです。Google、Microsoft、その他の主要プラットフォームも参加しています。

Appleは自社サイトで、Apple以外のデバイスでも動作すると主張していますが、それをどのように実現するのかについては説明していません。

「いいね!」 2

お使いのデバイスでのみ機能するはずです。

幸いなことに、これはそうではありません。オープンスタンダードです。:grin:

Appleは、MicrosoftとGoogleが実装するまで、その方法を知ることはできません。

「いいね!」 1

議論したとおり、パスキーはApple独自のシステムではありません。固有名詞でさえありません。

パスキーは、実際にはDiscourseで(不完全ながら)すでにサポートされています。WebAuthnセキュリティキーの形式です。Discourseがパスキーを適切にサポートするために必要な変更は、パスワードの代わりとしてセキュリティキーを使用できるようにすることだけであり、二要素認証の形式としてではありません。


AppleにはUXの実装方法に関する動画があり、他の多くの企業も同様のものを持っていると思いますが、関連する点を以下にまとめます。

パスキー(以下、「登録済みセキュリティキー」と呼びます)の完全なサポートを実装するために、Discourseは次の変更を行うだけで済みます。

  1. 登録済みセキュリティキーを持たないアカウントのメールアドレスをユーザーが入力した場合にのみパスワードフィールドを表示するように、サインインモーダルを変更します。パスキーはパスワードではなく、デフォルトとして提示されるべきです。ユーザーが両方を持っている場合は、パスワードをバックアップオプションとして扱います。パスキーには他のデバイスを認証するためのシステムがあるため、パスワードを使用する唯一の理由は、ブラウザがパスキーサポートをまったく実装できないほど古い場合です。これはますますまれになるでしょう。
  2. 登録済みセキュリティキーを認証の唯一の情報源として受け入れます。パスワードを要求せず、多要素認証方法を使用しません。TOTPコードを要求する意味はありません。WebAuthn秘密鍵を持つ人は、ワンタイムコードを生成するために使用されるTOTP共有シークレットも持っているからです。後者は、Discourseインスタンスによって生成されるため、実際にははるかに盗まれやすいです。それは共有シークレットです。
  3. 登録済みセキュリティキーを持つユーザーがパスワードを削除できるようにします。
  4. ユーザーがパスワードを使用した場合にのみ、二要素認証方法を使用します。

それは WebAuthn の元の仕様でカバーされていました。

しかし、私たちは最初の、そして最も一般的な WebAuthn メソッドのみを実装しました。

WebAuthnの最初の要素は現在「パスキー」と呼ばれており、検討を開始する時期です。

それらが同じものであることを示すために、iOS 16のSafari経由でTor ProjectのDiscourseインスタンスにログインする際に、メールアドレスとパスワードを入力した後に表示されるのは次のとおりです。

「いいね!」 1

macOS Monterey(1年古い)のSafariでも、同じキーを使用します。

macOS Venturaは、iOS 16に合わせて言語を変更すると予想されます。

ちなみに、既存のWebAuthnに対する主なイノベーションはユーザーの観点からは次のとおりです。選択したエンドツーエンドで暗号化されたパスワードマネージャーを使用して、秘密鍵を同期できます。

「いいね!」 3

もう3〜4ヶ月以上経ちましたよね?それで、ファーストファクターサポートを有効にすることは可能でしょうか?

管理者オプションとしてオプトインで追加しても構いませんが、1〜2ヶ月は対応する余裕がないと考えています。

「いいね!」 1

Marketplace でどなたか資金提供していただけますか?

Androidでも利用可能に

「いいね!」 3

年末までにMicrosoftの実装がWindowsに搭載されると賭けてもいいでしょう。

「いいね!」 1

AndroidとiOSのサポートが完了したら、Discourseで実装する明確な指示が出たと考えています。Apple側でリリースされたので、現在はAndroidを待っています。

本日発表される2つの機能は、Google Play開発者サービスベータ版に登録し、Chrome Canaryを使用する早期導入者向けであり、安定版のリリースは「今年後半」に予定されています。

この記事は今月書かれたものなので、2022年末までにリリースされる可能性がありますか?

「いいね!」 7

アップデート

  • パスキーがChromiumで安定版になりました。(注:Firefoxはまだパスキーをサポートしていません)
  • Dashlane、1passwordなどのパスワードマネージャーがパスキーのサポートを発表しました。

これは12月11日時点でのパスキーサポートの様子です。

ソース: Passkey support on Android and Chrome  |  Passkeys  |  Google for Developers

「いいね!」 2

また、https://www.passwordless.dev/ ウェブサイトにはクールなデモビデオがあります

「いいね!」 4

Androidはパスキーをサポートしていると思います。