Linux 软件免费装
Banner图

Sigil – Passkeys and Two-Factor Authentication

开发者 rebelcode
jeangalea
更新时间 2026年11月12日 05:37
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPL-3.0-or-later
版权网址: 版权信息

标签

security authentication 2fa two-factor passkeys

下载

0.2.1 0.3.0 0.5.0 0.5.4 0.1.2 0.3.1 0.3.2 0.2.0 0.5.2 0.4.0 0.4.1 0.1.1 0.2.2 0.3.3 0.5.1 0.5.3 0.5.5 0.5.6 0.5.7

详情介绍:

Sigil protects WordPress sign-in with passkeys, authenticator apps, backup codes and email codes. Anyone with a passkey can sign in with Face ID, Touch ID, Windows Hello or a security key and skip the password. Administrators can require a second factor for chosen roles, and a short setup wizard gets the first administrator enrolled before anything is enforced. Sign in without a password The login screen shows a "Sign in with a passkey" button, and browsers that support it offer saved passkeys in the username field. A passkey pairs the device you hold with your fingerprint, face or device PIN, so it counts as the full sign-in on its own. Older security keys that can't store a passkey keep working as a second factor after the password. Passkeys need PHP 8.0 or newer. Methods Enrol before you enforce Enforcement Protection against password guessing Wrong passwords are counted per account and per IP address, across wp-login.php, XML-RPC, the REST API and AJAX login forms. After five wrong passwords, password sign-in for that account pauses for 15 minutes, and repeat pauses get longer, up to an hour. A passkey still signs the owner in during a pause, and the refusal looks the same whether or not the account exists. Sites that already run another limiter can switch this one off. WooCommerce and sites without the dashboard Put [sigil_2fa] on any page and users can set up and manage their methods there. Enforcement sends people to that page instead of to an admin screen they can't open. On WooCommerce stores, customers manage two-factor authentication from a tab in My Account. Multisite Accounts are network-wide in WordPress, so second factors are too. An authenticator or backup codes cover every site on the network, the policy is set once under Network Admin, and wrong second-factor codes are counted across the network. Resetting another user's 2FA is a Network Admin action there, which is how WordPress governs user editing on a network. Passkeys are bound to the domain they were created for, so by default a passkey covers the site it was registered on. A network under one operator can widen that to every subdomain site with the sigil_rp_id filter. It's opt-in because widening lets any site under that domain request passkey sign-ins, which matters when sites have different administrators. REST API A decoupled front end can handle sign-in itself through routes under sigil/v1. They run the passwordless passkey sign-in and the login challenge, read, reset or remove a user's methods, and read and edit the policy. The challenge routes are authenticated by the token issued after the password step. Everything else needs the same capability as the matching screen. Recovery Several ways back in if a second factor is lost: Application passwords Two-factor authentication doesn't apply to application passwords, which authenticate REST API and XML-RPC requests. The settings screen explains this, and application passwords can be disabled per role. The account password itself is refused on XML-RPC and REST for anyone with a second factor, because those requests never reach the second step.

安装:

  1. Install through Plugins → Add New and search for "Sigil", or upload the plugin files to /wp-content/plugins/sigil-2fa/.
  2. Activate it through the Plugins menu.
  3. Go to Users → Two-Factor Setup and enrol your first method. Save the backup codes it shows you.
  4. To require 2FA for other users, open Settings → Sigil and choose the roles and grace period. On a network, that screen is under Network Admin → Settings → Sigil.
  5. If your users do not have dashboard access, create a page containing [sigil_2fa] and they can enrol there.

常见问题:

What happens if I lose my phone and get locked out?

Use one of the backup codes shown when you first set up 2FA. If you did not keep those, another administrator can reset your account from the Users screen. If nobody can get in at all, anyone with server access runs wp sigil reset <your-username> and your second factor is cleared.

Someone keeps guessing my password and now I can't sign in.

After five wrong passwords, password sign-in for that account pauses for 15 minutes, longer if it keeps happening, up to an hour. A passkey still signs you in during the pause. To reopen it straight away, anyone with server access runs wp sigil unlock <your-username>. Add --ip=<address> to clear an address that was paused too, and --challenge to clear wrong second-factor codes as well. A device you've told Sigil to remember also gets past the pause with the right password. Behind a proxy or CDN every visitor can share the proxy's address, so return the real visitor address from the sigil_client_ip filter, and only when your proxy sets it.

Does the plugin require an external account or service?

No. All authentication happens on your own site. The plugin does not contact any external service and does not require an account.

Does this work with application passwords, the REST API, and XML-RPC?

Application passwords bypass 2FA by design, as that is how WordPress authenticates automated requests. The settings screen documents this, and application passwords can be disabled per role to close that path. The account password itself is refused on XML-RPC and REST for anyone with a second factor, because those requests never reach the challenge.

Which PHP version do I need for passkeys?

Passkeys need PHP 8.0 or newer. On older PHP the plugin still runs and offers authenticator apps, backup codes, and email; only the passkey method is hidden.

Does it work on multisite?

Yes. The policy is set once for the network under Network Admin → Settings → Sigil, and a user's authenticator or backup codes work on every site because WordPress accounts are network-wide. Passkeys are bound to the domain they were created for, so each site gets its own unless you widen that with the sigil_rp_id filter.

Can users set up 2FA without access to wp-admin?

Yes. Put [sigil_2fa] on a page. Users manage their methods from there, and anyone required to enrol is sent to that page rather than to the dashboard.

Can I switch from another two-factor plugin?

Yes. Sigil imports from Two Factor (including passkeys from the WebAuthn Provider for Two Factor), Wordfence and WP 2FA. With both plugins active, open Settings → Sigil and choose the import, or run wp sigil import <two-factor|wordfence|wp-2fa> (add --dry-run to preview). Authenticator apps, passkeys, email codes and backup or recovery codes come across, so people keep signing in the way they already do. Anyone with a method that can't be carried over is listed in the report, and the old plugin keeps protecting them while it stays active. The old plugin's data is never changed. Once everyone on that list has set up a method in Sigil, deactivate the old plugin.

Can I enforce 2FA only for administrators?

Yes. Settings → Sigil lets you pick exactly which roles are required, and set a grace period so people are prompted to enrol rather than locked out immediately.

更新日志:

0.5.7 0.5.6 0.5.5 0.5.4 0.5.3 0.5.2 0.5.1 0.5.0 0.4.1 0.4.0 0.3.3 0.3.2 0.3.1 0.3.0 0.2.2 0.2.1 0.2.0 0.1.3 0.1.2 0.1.1 0.1.0