Adds a WordPress plugin that places a customisable "Sign in with Microsoft" button on wp-login.php and signs existing users in via the OpenID Connect authorization code flow with PKCE. Users are matched by e-mail address only; no accounts are created. Security: single-use state/nonce bound to an HttpOnly cookie, ID token signature verification against Microsoft's JWKS (RS256 only) with issuer/audience/tenant/expiry/nonce checks, optional tenant pinning, account binding to the Microsoft object ID, e-mail domain allow-list, client secret encrypted at rest (AES-256-GCM). Admin: settings screen with connection, button and security tabs, live button preview, colour presets, media-library icon picker, redirect URI copy button and tenant connectivity test. Packaging for WordPress.org: readme.txt with External services section, GPL-2.0 license, uninstall.php, POT + German translations, .distignore, build script, PHPCS config and CI running Plugin Check. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJxAHYdMfKPoN4koRc4Ci2
43 lines
1.1 KiB
XML
43 lines
1.1 KiB
XML
<?xml version="1.0"?>
|
|
<ruleset name="M365 Login">
|
|
<description>WordPress Coding Standards for the M365 Login plugin.</description>
|
|
|
|
<file>.</file>
|
|
<exclude-pattern>/vendor/*</exclude-pattern>
|
|
<exclude-pattern>/node_modules/*</exclude-pattern>
|
|
<exclude-pattern>/build/*</exclude-pattern>
|
|
<exclude-pattern>/bin/*</exclude-pattern>
|
|
|
|
<arg name="extensions" value="php"/>
|
|
<arg name="colors"/>
|
|
<arg value="sp"/>
|
|
<arg name="parallel" value="8"/>
|
|
|
|
<rule ref="WordPress">
|
|
<exclude name="Generic.Commenting.DocComment.MissingShort"/>
|
|
</rule>
|
|
<rule ref="WordPress-Extra"/>
|
|
<rule ref="WordPress-Docs"/>
|
|
|
|
<config name="minimum_wp_version" value="6.0"/>
|
|
<config name="testVersion" value="7.4-"/>
|
|
<rule ref="PHPCompatibilityWP"/>
|
|
|
|
<rule ref="WordPress.WP.I18n">
|
|
<properties>
|
|
<property name="text_domain" type="array">
|
|
<element value="m365-login"/>
|
|
</property>
|
|
</properties>
|
|
</rule>
|
|
|
|
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
|
|
<properties>
|
|
<property name="prefixes" type="array">
|
|
<element value="m365_login"/>
|
|
<element value="M365_LOGIN"/>
|
|
<element value="M365_Login"/>
|
|
</property>
|
|
</properties>
|
|
</rule>
|
|
</ruleset>
|