Adds an "M365 Login" menu entry with a Microsoft-style icon and one submenu per tab (Connection, Button, Security). The active tab is taken from the URL, kept in the post-save redirect and highlighted in the submenu. Notices are printed explicitly because top-level pages do not include options-head.php. Links, docs and screenshots updated. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJxAHYdMfKPoN4koRc4Ci2
1.9 KiB
1.9 KiB
Changelog
All notable changes to this project are documented in this file. The format follows Keep a Changelog and the plugin adheres to Semantic Versioning.
[1.0.0] – 2026-09-22
Added
- "Sign in with Microsoft" button on
wp-login.php(OpenID Connect authorization code flow with PKCE). - Matching of existing WordPress users by e-mail address (optional UPN fallback), no user provisioning.
- Settings screen (own top-level menu entry "M365 Login") with connection, button and security tabs, live button preview, colour presets, media-library icon picker, redirect-URI copy button and tenant connectivity test.
- ID token verification against Microsoft's JWKS (RS256, issuer, audience, tenant, expiry, nonce).
- Encrypted client secret storage (AES-256-GCM).
- Certificate based client authentication (RFC 7523
private_key_jwt): one-click generation of a 3072-bit RSA key pair with self-signed certificate,.cerdownload, own PEM upload, expiry display; step-by-step guides for both methods in the settings. - Security audit (docs/security-audit.md) with fixes: unverified
emailclaim ignored in multi-tenant mode, login-start rate limit, trusted proxy IP header. - Account binding to the Microsoft object ID, e-mail domain allow-list.
- Entra group restriction with a Graph-powered group picker; membership verified via the
groupsclaim or Microsoft GraphcheckMemberGroups. - Button-only mode that hides the password form and blocks password sign-in on
wp-login.php, with a secret, rate-limited fallback link and awp-config.phpemergency constant. - Custom login page support: automatic button in
wp_login_form()forms,m365_login_button()/m365_login_messages()template functions, custom login URL for error messages, fallback link and logout redirect. [m365_login_button]shortcode (withdividerandmessagesattributes) and developer hooks.- German translation.