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
29 lines
888 B
JSON
29 lines
888 B
JSON
{
|
|
"name": "friloo/m365-login",
|
|
"description": "Sign in to WordPress with Microsoft 365 / Entra ID (OpenID Connect with PKCE). Existing users are matched by e-mail address.",
|
|
"type": "wordpress-plugin",
|
|
"license": "GPL-2.0-or-later",
|
|
"homepage": "https://github.com/friloo/wp-m365-login",
|
|
"require": {
|
|
"php": ">=7.4",
|
|
"ext-openssl": "*",
|
|
"ext-json": "*"
|
|
},
|
|
"require-dev": {
|
|
"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
|
|
"wp-coding-standards/wpcs": "^3.1",
|
|
"phpcompatibility/phpcompatibility-wp": "^2.1"
|
|
},
|
|
"scripts": {
|
|
"lint": "find . -path ./vendor -prune -o -name '*.php' -print0 | xargs -0 -n1 php -l",
|
|
"phpcs": "phpcs",
|
|
"phpcbf": "phpcbf",
|
|
"zip": "bash bin/build-zip.sh"
|
|
},
|
|
"config": {
|
|
"allow-plugins": {
|
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
|
},
|
|
"sort-packages": true
|
|
}
|
|
}
|