Add M365 Login plugin: Microsoft Entra ID sign-in for existing users
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
This commit is contained in:
commit
3e3e87b399
35 changed files with 5413 additions and 0 deletions
12
.wordpress-org/README.md
Normal file
12
.wordpress-org/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# WordPress.org assets
|
||||
|
||||
Files in this folder are **not** shipped with the plugin. They are uploaded to the
|
||||
`assets/` directory of the WordPress.org SVN repository once the plugin is approved:
|
||||
|
||||
| File | Purpose | Size |
|
||||
| --- | --- | --- |
|
||||
| `icon.svg` | Plugin icon (directory + plugin installer) | vector, or `icon-128x128.png` / `icon-256x256.png` |
|
||||
| `banner-772x250.png` | Directory page header (not included yet) | 772×250 (+ `banner-1544x500.png` for HiDPI) |
|
||||
| `screenshot-1.png` … | Screenshots referenced from `readme.txt` | any, PNG/JPG |
|
||||
|
||||
Screenshot order must match the `== Screenshots ==` section in `readme.txt`.
|
||||
16
.wordpress-org/icon.svg
Normal file
16
.wordpress-org/icon.svg
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="256" height="256">
|
||||
<rect width="256" height="256" rx="48" fill="#1b1b1f"/>
|
||||
<g transform="translate(58 58)">
|
||||
<rect x="0" y="0" width="66" height="66" rx="6" fill="#f25022"/>
|
||||
<rect x="74" y="0" width="66" height="66" rx="6" fill="#7fba00"/>
|
||||
<rect x="0" y="74" width="66" height="66" rx="6" fill="#00a4ef"/>
|
||||
<rect x="74" y="74" width="66" height="66" rx="6" fill="#ffb900"/>
|
||||
</g>
|
||||
<g transform="translate(150 150)">
|
||||
<circle cx="36" cy="36" r="44" fill="#1b1b1f"/>
|
||||
<circle cx="36" cy="36" r="36" fill="#0078d4"/>
|
||||
<path d="M24 34v-6a12 12 0 0 1 24 0v6" fill="none" stroke="#fff" stroke-width="5" stroke-linecap="round"/>
|
||||
<rect x="18" y="33" width="36" height="24" rx="5" fill="#fff"/>
|
||||
<circle cx="36" cy="44" r="3.5" fill="#0078d4"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 855 B |
Loading…
Add table
Add a link
Reference in a new issue