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

:wave: Rubyのパスキー組織の主要メンテナーの一人、Thomas Cannonです!

これらを支援するためにいくつかのライブラリがまとめられましたが、私たちにはメンテナーが desperately 必要です。関連リンクを以下に示します。

できる限り支援し、リソースをプールして、パスキーをRubyエコシステム全体の標準にしたいと考えています :flexed_biceps:

「いいね!」 8

トーマス様

Discourseには、WebAuthnを直接利用した2要素認証システムが組み込まれています。現在、唯一の大きなギャップは、2要素認証のみを唯一の認証要素として許可していないことだと思います(オプションとして)。

Googleも昨日から全面的に導入していることに気づきました。Passkeys: What they are and how to use them

私もDiscourseでこれをオプションにしたいと考えています。パスワードは本当に嫌いですし、2要素認証+チャレンジのみというのは、パスワードよりも本質的に優れていると感じています。

「いいね!」 7

素晴らしい! どのようなお手伝いができますか?

「いいね!」 2

難しいですね、どこまで深く掘り下げたいかによります。サイト設定を追加するプロトタイプPRがあれば素晴らしいですが、これはかなりの時間コミットメントになる可能性があることは十分に理解しています。

「いいね!」 2

やってみます!約束はできませんので、もし誰かが私より先にランチに行きたいなら、どうぞ!

「いいね!」 5

簡単なアップデートです。Discourseでのパスキーのサポートが間もなく提供されます。ここ数週間、この作業に取り組んでおり、いくつかのドラフトPRが準備できています。以下をご覧ください:#23586#23587#23591

おそらく3〜4週間で、これをマージできる(デフォルトでは無効なサイト設定の後ろに)と思います。さらに数週間をテストとバグ修正に充てれば、約2か月で本番環境で利用できる状態になると思われます。続報にご期待ください!

「いいね!」 10

こんにちは!Discourseでパスキーについて何か新しいことはありますか?

「いいね!」 2

最終的なPRは1週間前にマージされたようで、サイト設定の名前は現在 experimental_passkeys (現在は非表示設定)のようです。 (https://github.com/discourse/discourse/commit/e41539492c3da19e12cc1f7a432b8f609d1f9080#diff-bff2842c9891df212adcbe8eb22a4a17c9644c676260a0cfa6e7a3953852c5e8)

「いいね!」 1

サイト設定を有効にし、私が管理しているフォーラムのアカウントにパスキーを追加したところ、完全に機能しました。サイトで早期に有効にするには、以下を実行する必要があります。

cd /var/discourse
./launcher enter app
rails c
SiteSetting.experimental_passkeys=true

有効になったら、https://forum.example.com/my/preferences/security を開いてパスキーを追加し、ログアウトして「パスキーでログイン」オプションを使用して再度ログインするだけでよいようです。

「いいね!」 3

皆さん、はい、パスキーのサポートを追加するいくつかのPRをマージし、社内でテストを開始しました。

上記のステップは、この機能の非常に非常に早期のテスターになりたい場合に正しいです。ただし、まだいくつかの調整を行っており、公式のアップデート/発表は近日公開予定です。

「いいね!」 9

公式発表の前に、もう一つアップデートがあります。Metaでパスキーが利用可能になりました。ぜひお試しいただき、問題があればこのトピックに返信する形でご報告ください。

現在、この機能は実験的なフラグの下でさらに1週間ほどテストする予定です。その後、公式に発表し、実験的なサイト設定を削除します(つまり、ローカルログインを使用するすべてのインスタンスで、パスキーのサポートがデフォルトで有効になります)。

「いいね!」 7

Desktop(Windows 11、Chrome)でテストしたところ、完璧に動作しました!:+1:

通常はGoogleでログインするためパスワードを知らないので、本人確認のために「パスワードリセットメールを送信」をタップする必要がありました。:sweat_smile:


Android(10)とChrome/アプリでテストしました。うまく動作しますが、以下の点があります。

  • 入力フィールドをタップするとパスキーモーダルが表示されます。
    • 無視して再度入力フィールドをタップすると、入力できるようになります。
  • ボタンをタップしても何も起こりません(選択されてキーボードが閉じる以外)。


(なぜかラグいですが、うまくいきました)

「いいね!」 5

Arkshineさん、レポートありがとうございます。2日前のコミットでモバイルコンポーネントに小さな変更を含め忘れていました。恥ずかしいミスですが、すべてのモバイルデバイスでボタンが何も機能していませんでした。

いずれにせよ、修正しました。Androidでテストしたところ、あなたにも機能するはずです。

「いいね!」 2

はい、今動作しています。ありがとうございます!:smile:

「いいね!」 2

ChromeOSシステムは、Discourseでパスキーとして使用できないようですが(他のウェブサイトではパスキーとして使用できます)、これは意図したものでしょうか?

いいえ、特にブロックしているわけではありません。「chromeosシステム」とは具体的に何ですか?Chrome on ChromeOSですか?ブラウザとOSのバージョンを教えていただけますか?

はい。

はい。
chrome://version/ より:

キー
Google Chrome 118.0.5993.86 (Official Build) (64-bit)
Revision d9a55e23605b9c433d369a305c71114843ec754d-refs/branch-heads/5993@{#1287}
Platform 15604.45.0 (Official Build) stable-channel octopus
User Agent Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36

これで十分な情報でしょうか?

このコンピューターでパスキーを追加しようとすると、次のようになります(最初のメニューで「このデバイス」オプションを選択した場合)。


「いいね!」 1

なるほど、興味深いですね。スクリーンショットありがとうございます。デバイスがユーザー認証をサポートしていないのではないでしょうか? デバイスのロック解除にタッチ/Face IDまたはPINを使用できますか?

こちらのページによると、Chrome OSのサポートはまだ限定的のようです。

「いいね!」 1

サポートしていると思います。

パスワードを使用しています。WebAuthnを使用してアカウントにこのデバイスを2FAメソッドとして追加できることは注目に値しますが、パスキーとしては追加できません。

「いいね!」 1