Move the settings screen to its own top-level menu
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
This commit is contained in:
parent
8766927123
commit
662756bc75
12 changed files with 664 additions and 576 deletions
BIN
.github/assets/screenshots/settings-button.png
vendored
BIN
.github/assets/screenshots/settings-button.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 522 KiB |
BIN
.github/assets/screenshots/settings-connection.png
vendored
BIN
.github/assets/screenshots/settings-connection.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 603 KiB After Width: | Height: | Size: 596 KiB |
BIN
.github/assets/screenshots/settings-security.png
vendored
BIN
.github/assets/screenshots/settings-security.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 633 KiB After Width: | Height: | Size: 711 KiB |
|
|
@ -9,7 +9,7 @@ All notable changes to this project are documented in this file. The format foll
|
|||
### 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 (Settings → 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.
|
||||
- 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, `.cer` download, own PEM upload, expiry display; step-by-step guides for both methods in the settings.
|
||||
|
|
|
|||
|
|
@ -66,12 +66,12 @@
|
|||
| --- | --- |
|
||||
|  |  |
|
||||
|
||||
| Einstellungen – Verbindung | Einstellungen – Button |
|
||||
| M365 Login – Verbindung | M365 Login – Button |
|
||||
| --- | --- |
|
||||
|  |  |
|
||||
|
||||
<details>
|
||||
<summary><strong>Einstellungen – Sicherheit</strong> (Gruppen-Auswahl, Nur-Button-Modus, Fallback-Link)</summary>
|
||||
<summary><strong>M365 Login – Sicherheit</strong> (Gruppen-Auswahl, Nur-Button-Modus, Fallback-Link)</summary>
|
||||
|
||||

|
||||
|
||||
|
|
@ -136,7 +136,7 @@ Alternativ den Repo-Inhalt als Ordner `m365-login` nach `wp-content/plugins/` ko
|
|||
<details open>
|
||||
<summary><strong>Schritt für Schritt (ca. 5 Minuten)</strong></summary>
|
||||
|
||||
1. **Redirect-URI kopieren.** In WordPress *Einstellungen → M365 Login* öffnen; die URI steht in der Seitenleiste
|
||||
1. **Redirect-URI kopieren.** In WordPress den Menüpunkt *M365 Login* öffnen; die URI steht in der Seitenleiste
|
||||
(`https://deine-seite.tld/m365-login/callback`, bei einfachen Permalinks `https://deine-seite.tld/?m365-login=callback`).
|
||||
2. **App registrieren.** [Microsoft Entra Admin Center](https://entra.microsoft.com/) → *App-Registrierungen → Neue Registrierung*
|
||||
- Name: z. B. „WordPress Login“
|
||||
|
|
@ -177,7 +177,7 @@ Wichtig: Jeder Benutzer, der sich per Microsoft anmelden soll, braucht in WordPr
|
|||
|
||||
## Einstellungen im Backend
|
||||
|
||||
*Einstellungen → M365 Login* – drei Tabs, ein Formular, ein Speichern-Button.
|
||||
Menüpunkt *M365 Login* – drei Tabs (auch als Untermenüs erreichbar), ein Formular, ein Speichern-Button.
|
||||
|
||||
### Verbindung
|
||||
|
||||
|
|
|
|||
|
|
@ -18,18 +18,36 @@
|
|||
try {
|
||||
window.localStorage.setItem( 'm365LoginTab', name );
|
||||
} catch ( e ) {}
|
||||
// Keep the URL (and the post-save redirect) on this tab.
|
||||
var $referer = $( '#m365-referer' );
|
||||
if ( $referer.length && window.history && window.history.replaceState ) {
|
||||
var url = new URL( window.location.href );
|
||||
if ( 'connection' === name ) {
|
||||
url.searchParams.delete( 'tab' );
|
||||
} else {
|
||||
url.searchParams.set( 'tab', name );
|
||||
}
|
||||
url.searchParams.delete( 'settings-updated' );
|
||||
window.history.replaceState( null, '', url.toString() );
|
||||
$referer.val( url.pathname + url.search );
|
||||
}
|
||||
}
|
||||
|
||||
$tabs.on( 'click', function () {
|
||||
activate( $( this ).data( 'tab' ) );
|
||||
} );
|
||||
|
||||
try {
|
||||
var saved = window.localStorage.getItem( 'm365LoginTab' );
|
||||
if ( saved && $tabs.filter( '[data-tab="' + saved + '"]' ).length ) {
|
||||
activate( saved );
|
||||
}
|
||||
} catch ( e ) {}
|
||||
var initial = $( '.m365-admin__tabs' ).data( 'initial-tab' );
|
||||
if ( initial && $tabs.filter( '[data-tab="' + initial + '"]' ).length ) {
|
||||
activate( initial );
|
||||
} else {
|
||||
try {
|
||||
var saved = window.localStorage.getItem( 'm365LoginTab' );
|
||||
if ( saved && $tabs.filter( '[data-tab="' + saved + '"]' ).length ) {
|
||||
activate( saved );
|
||||
}
|
||||
} catch ( e ) {}
|
||||
}
|
||||
|
||||
// Jump to the tab that contains a validation error.
|
||||
var $error = $( '.settings-error' ).first();
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ class M365_Login_Admin {
|
|||
const AJAX_GROUPS = 'm365_login_search_groups';
|
||||
const AJAX_CERT = 'm365_login_certificate';
|
||||
const POST_CERT = 'm365_login_download_cert';
|
||||
const MENU_ICON = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZmlsbD0iYmxhY2siIGQ9Ik0yIDJoNy41djcuNUgyek0xMC41IDJIMTh2Ny41aC03LjV6TTIgMTAuNWg3LjVWMThIMnpNMTAuNSAxMC41SDE4VjE4aC03LjV6Ii8+PC9zdmc+';
|
||||
const NONCE_TEST = 'm365_login_test';
|
||||
|
||||
/**
|
||||
|
|
@ -69,19 +70,85 @@ class M365_Login_Admin {
|
|||
add_action( 'admin_post_' . self::POST_CERT, array( $this, 'download_certificate' ) );
|
||||
add_action( 'update_option_' . M365_LOGIN_OPTION, array( $this->graph, 'flush_token' ) );
|
||||
add_action( 'admin_notices', array( $this, 'setup_notice' ) );
|
||||
add_filter( 'submenu_file', array( $this, 'highlight_submenu' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the menu entry under Settings.
|
||||
* Adds a top-level menu entry with one submenu per tab.
|
||||
*/
|
||||
public function menu() {
|
||||
$this->hook = add_options_page(
|
||||
$this->hook = add_menu_page(
|
||||
__( 'M365 Login', 'm365-login' ),
|
||||
__( 'M365 Login', 'm365-login' ),
|
||||
'manage_options',
|
||||
self::PAGE,
|
||||
array( $this, 'render' )
|
||||
array( $this, 'render' ),
|
||||
self::MENU_ICON,
|
||||
81
|
||||
);
|
||||
|
||||
foreach ( self::tabs() as $tab => $label ) {
|
||||
add_submenu_page(
|
||||
self::PAGE,
|
||||
$label . ' – ' . __( 'M365 Login', 'm365-login' ),
|
||||
$label,
|
||||
'manage_options',
|
||||
'connection' === $tab ? self::PAGE : 'admin.php?page=' . self::PAGE . '&tab=' . $tab
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tab slugs and labels.
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public static function tabs() {
|
||||
return array(
|
||||
'connection' => __( 'Connection', 'm365-login' ),
|
||||
'button' => __( 'Button', 'm365-login' ),
|
||||
'security' => __( 'Security', 'm365-login' ),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Currently requested tab (from ?tab=).
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function current_tab() {
|
||||
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only UI state.
|
||||
$tab = isset( $_GET['tab'] ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : '';
|
||||
return array_key_exists( $tab, self::tabs() ) ? $tab : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Highlights the submenu entry matching the requested tab.
|
||||
*
|
||||
* @param string|null $submenu_file Current submenu file.
|
||||
* @return string|null
|
||||
*/
|
||||
public function highlight_submenu( $submenu_file ) {
|
||||
$screen = get_current_screen();
|
||||
if ( ! $screen || $this->hook !== $screen->id ) {
|
||||
return $submenu_file;
|
||||
}
|
||||
$tab = $this->current_tab();
|
||||
if ( '' === $tab || 'connection' === $tab ) {
|
||||
return self::PAGE;
|
||||
}
|
||||
return 'admin.php?page=' . self::PAGE . '&tab=' . $tab;
|
||||
}
|
||||
|
||||
/**
|
||||
* URL of the settings screen (optionally a specific tab).
|
||||
*
|
||||
* @param string $tab Tab slug.
|
||||
* @return string
|
||||
*/
|
||||
public static function url( $tab = '' ) {
|
||||
$url = admin_url( 'admin.php?page=' . self::PAGE );
|
||||
return '' === $tab ? $url : add_query_arg( 'tab', $tab, $url );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -116,7 +183,7 @@ class M365_Login_Admin {
|
|||
printf(
|
||||
'<div class="notice notice-info is-dismissible"><p>%s <a href="%s">%s</a></p></div>',
|
||||
esc_html__( 'M365 Login is active but not connected to Microsoft Entra ID yet.', 'm365-login' ),
|
||||
esc_url( admin_url( 'options-general.php?page=' . self::PAGE ) ),
|
||||
esc_url( self::url() ),
|
||||
esc_html__( 'Open the settings', 'm365-login' )
|
||||
);
|
||||
}
|
||||
|
|
@ -322,13 +389,16 @@ class M365_Login_Admin {
|
|||
</span>
|
||||
</header>
|
||||
|
||||
<?php settings_errors(); ?>
|
||||
|
||||
<form method="post" action="options.php" class="m365-admin__form" novalidate>
|
||||
<?php settings_fields( self::GROUP ); ?>
|
||||
<input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( self::url( $this->current_tab() ) ); ?>" id="m365-referer" />
|
||||
|
||||
<nav class="m365-admin__tabs" role="tablist">
|
||||
<button type="button" class="m365-admin__tab is-active" role="tab" data-tab="connection" aria-selected="true"><?php esc_html_e( 'Connection', 'm365-login' ); ?></button>
|
||||
<button type="button" class="m365-admin__tab" role="tab" data-tab="button" aria-selected="false"><?php esc_html_e( 'Button', 'm365-login' ); ?></button>
|
||||
<button type="button" class="m365-admin__tab" role="tab" data-tab="security" aria-selected="false"><?php esc_html_e( 'Security', 'm365-login' ); ?></button>
|
||||
<nav class="m365-admin__tabs" role="tablist" data-initial-tab="<?php echo esc_attr( $this->current_tab() ); ?>">
|
||||
<?php foreach ( self::tabs() as $tab => $label ) : ?>
|
||||
<button type="button" class="m365-admin__tab<?php echo 'connection' === $tab ? ' is-active' : ''; ?>" role="tab" data-tab="<?php echo esc_attr( $tab ); ?>" aria-selected="<?php echo 'connection' === $tab ? 'true' : 'false'; ?>"><?php echo esc_html( $label ); ?></button>
|
||||
<?php endforeach; ?>
|
||||
</nav>
|
||||
|
||||
<div class="m365-admin__layout">
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ final class M365_Login {
|
|||
* @return string[]
|
||||
*/
|
||||
public function action_links( $links ) {
|
||||
$url = admin_url( 'options-general.php?page=m365-login' );
|
||||
$url = admin_url( 'admin.php?page=m365-login' );
|
||||
array_unshift( $links, '<a href="' . esc_url( $url ) . '">' . esc_html__( 'Settings', 'm365-login' ) . '</a>' );
|
||||
return $links;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,709 +16,709 @@ msgstr ""
|
|||
"X-Generator: bin/make-pot.py\n"
|
||||
"X-Domain: m365-login\n"
|
||||
|
||||
#: includes/class-m365-login-admin.php:79 includes/class-m365-login-admin.php:80 includes/class-m365-login-admin.php:315
|
||||
#: includes/class-m365-login-admin.php:81 includes/class-m365-login-admin.php:82 includes/class-m365-login-admin.php:93 includes/class-m365-login-admin.php:382
|
||||
msgid "M365 Login"
|
||||
msgstr "M365 Login"
|
||||
|
||||
#: includes/class-m365-login-admin.php:118
|
||||
#: includes/class-m365-login-admin.php:108
|
||||
msgid "Connection"
|
||||
msgstr "Verbindung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:109
|
||||
msgid "Button"
|
||||
msgstr "Button"
|
||||
|
||||
#: includes/class-m365-login-admin.php:110
|
||||
msgid "Security"
|
||||
msgstr "Sicherheit"
|
||||
|
||||
#: includes/class-m365-login-admin.php:185
|
||||
msgid "M365 Login is active but not connected to Microsoft Entra ID yet."
|
||||
msgstr "M365 Login ist aktiv, aber noch nicht mit Microsoft Entra ID verbunden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:120
|
||||
#: includes/class-m365-login-admin.php:187
|
||||
msgid "Open the settings"
|
||||
msgstr "Einstellungen öffnen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:150
|
||||
#: includes/class-m365-login-admin.php:217
|
||||
msgid "Choose button icon"
|
||||
msgstr "Button-Icon auswählen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:151
|
||||
#: includes/class-m365-login-admin.php:218
|
||||
msgid "Use this icon"
|
||||
msgstr "Dieses Icon verwenden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:152
|
||||
#: includes/class-m365-login-admin.php:219
|
||||
msgid "Copied!"
|
||||
msgstr "Kopiert!"
|
||||
|
||||
#: includes/class-m365-login-admin.php:153 includes/class-m365-login-admin.php:435 includes/class-m365-login-admin.php:713 includes/class-m365-login-admin.php:756
|
||||
#: includes/class-m365-login-admin.php:220 includes/class-m365-login-admin.php:505 includes/class-m365-login-admin.php:783 includes/class-m365-login-admin.php:826
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: includes/class-m365-login-admin.php:154
|
||||
#: includes/class-m365-login-admin.php:221
|
||||
msgid "Testing…"
|
||||
msgstr "Wird geprüft …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:155
|
||||
#: includes/class-m365-login-admin.php:222
|
||||
msgid "The tenant could not be reached. Check the tenant ID and the server’s outgoing connections."
|
||||
msgstr "Der Tenant ist nicht erreichbar. Bitte Tenant-ID und ausgehende Verbindungen des Servers prüfen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:156
|
||||
#: includes/class-m365-login-admin.php:223
|
||||
msgid "No groups found."
|
||||
msgstr "Keine Gruppen gefunden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:157
|
||||
#: includes/class-m365-login-admin.php:224
|
||||
msgid "Searching…"
|
||||
msgstr "Suche läuft …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:158
|
||||
#: includes/class-m365-login-admin.php:225
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:159 includes/class-m365-login-admin.php:687
|
||||
#: includes/class-m365-login-admin.php:226 includes/class-m365-login-admin.php:757
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:160 includes/class-m365-login-admin.php:218 includes/class-m365-login-admin.php:672
|
||||
#: includes/class-m365-login-admin.php:227 includes/class-m365-login-admin.php:285 includes/class-m365-login-admin.php:742
|
||||
msgid "Save the connection settings first, then search for groups."
|
||||
msgstr "Zuerst die Verbindungseinstellungen speichern, dann Gruppen suchen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:161
|
||||
#: includes/class-m365-login-admin.php:228
|
||||
msgid "Generate a new fallback key on save? The old link stops working."
|
||||
msgstr "Beim Speichern einen neuen Fallback-Schlüssel erzeugen? Der alte Link funktioniert dann nicht mehr."
|
||||
|
||||
#: includes/class-m365-login-admin.php:162
|
||||
#: includes/class-m365-login-admin.php:229
|
||||
msgid "Generating a 3072-bit key pair, this takes a moment…"
|
||||
msgstr "3072-Bit-Schlüsselpaar wird erzeugt, das dauert einen Moment …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:163
|
||||
#: includes/class-m365-login-admin.php:230
|
||||
msgid "Replace the stored certificate? Sign-in stops working until the new certificate is uploaded to Entra ID."
|
||||
msgstr "Gespeichertes Zertifikat ersetzen? Die Anmeldung funktioniert erst wieder, wenn das neue Zertifikat in Entra ID hochgeladen ist."
|
||||
|
||||
#: includes/class-m365-login-admin.php:164
|
||||
#: includes/class-m365-login-admin.php:231
|
||||
msgid "Remove the stored certificate when saving? Sign-in with the certificate method stops working."
|
||||
msgstr "Gespeichertes Zertifikat beim Speichern entfernen? Die Anmeldung per Zertifikat funktioniert dann nicht mehr."
|
||||
|
||||
#: includes/class-m365-login-admin.php:176 includes/class-m365-login-admin.php:215 includes/class-m365-login-admin.php:241 includes/class-m365-login-admin.php:273
|
||||
#: includes/class-m365-login-admin.php:243 includes/class-m365-login-admin.php:282 includes/class-m365-login-admin.php:308 includes/class-m365-login-admin.php:340
|
||||
msgid "You are not allowed to do this."
|
||||
msgstr "Dafür fehlt die Berechtigung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:181
|
||||
#: includes/class-m365-login-admin.php:248
|
||||
msgid "Please enter a valid tenant ID first."
|
||||
msgstr "Bitte zuerst eine gültige Tenant-ID eingeben."
|
||||
|
||||
#. translators: %d: HTTP status code
|
||||
#: includes/class-m365-login-admin.php:195
|
||||
#: includes/class-m365-login-admin.php:262
|
||||
msgid "Microsoft answered with HTTP %d. Is the tenant ID correct?"
|
||||
msgstr "Microsoft hat mit HTTP %d geantwortet. Ist die Tenant-ID korrekt?"
|
||||
|
||||
#. translators: %d: HTTP status code
|
||||
#: includes/class-m365-login-admin.php:204
|
||||
#: includes/class-m365-login-admin.php:271
|
||||
msgid "Tenant reachable. The OpenID configuration was loaded successfully."
|
||||
msgstr "Tenant erreichbar. Die OpenID-Konfiguration wurde erfolgreich geladen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:227
|
||||
#: includes/class-m365-login-admin.php:294
|
||||
msgid "Microsoft Graph refused the request. Grant the application permission \"GroupMember.Read.All\" (or \"Directory.Read.All\") with admin consent in Entra ID."
|
||||
msgstr "Microsoft Graph hat die Anfrage abgelehnt. In Entra ID die Anwendungsberechtigung „GroupMember.Read.All“ (oder „Directory.Read.All“) mit Administratorzustimmung erteilen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:245
|
||||
#: includes/class-m365-login-admin.php:312
|
||||
msgid "Unknown operation."
|
||||
msgstr "Unbekannte Aktion."
|
||||
|
||||
#: includes/class-m365-login-admin.php:262
|
||||
#: includes/class-m365-login-admin.php:329
|
||||
msgid "Certificate generated and stored. Download the .cer file and upload it in Entra ID."
|
||||
msgstr "Zertifikat erzeugt und gespeichert. Jetzt die .cer-Datei herunterladen und in Entra ID hochladen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:279
|
||||
#: includes/class-m365-login-admin.php:346
|
||||
msgid "No certificate is stored."
|
||||
msgstr "Es ist kein Zertifikat gespeichert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:297
|
||||
#: includes/class-m365-login-admin.php:364
|
||||
msgid "You are not allowed to access this page."
|
||||
msgstr "Für diese Seite fehlt die Berechtigung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:316
|
||||
#: includes/class-m365-login-admin.php:383
|
||||
msgid "Let existing users sign in with their Microsoft 365 / Entra ID account."
|
||||
msgstr "Bestehende Benutzer melden sich mit ihrem Microsoft 365 / Entra ID-Konto an."
|
||||
|
||||
#: includes/class-m365-login-admin.php:321
|
||||
#: includes/class-m365-login-admin.php:388
|
||||
msgid "Connected"
|
||||
msgstr "Verbunden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:321
|
||||
#: includes/class-m365-login-admin.php:388
|
||||
msgid "Setup incomplete"
|
||||
msgstr "Einrichtung unvollständig"
|
||||
|
||||
#: includes/class-m365-login-admin.php:329
|
||||
msgid "Connection"
|
||||
msgstr "Verbindung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:330
|
||||
msgid "Button"
|
||||
msgstr "Button"
|
||||
|
||||
#: includes/class-m365-login-admin.php:331
|
||||
msgid "Security"
|
||||
msgstr "Sicherheit"
|
||||
|
||||
#: includes/class-m365-login-admin.php:340
|
||||
#: includes/class-m365-login-admin.php:410
|
||||
msgid "Microsoft Entra ID app registration"
|
||||
msgstr "App-Registrierung in Microsoft Entra ID"
|
||||
|
||||
#: includes/class-m365-login-admin.php:341
|
||||
#: includes/class-m365-login-admin.php:411
|
||||
msgid "Enter the values from your app registration in the Microsoft Entra admin center."
|
||||
msgstr "Trage hier die Werte aus deiner App-Registrierung im Microsoft Entra Admin Center ein."
|
||||
|
||||
#: includes/class-m365-login-admin.php:344
|
||||
#: includes/class-m365-login-admin.php:414
|
||||
msgid "Directory (tenant) ID"
|
||||
msgstr "Verzeichnis-ID (Mandant/Tenant)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:347
|
||||
#: includes/class-m365-login-admin.php:417
|
||||
msgid "Test tenant"
|
||||
msgstr "Tenant testen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:349
|
||||
#: includes/class-m365-login-admin.php:419
|
||||
msgid "Recommended: the GUID of your tenant. Only sign-ins from this tenant are accepted. \"organizations\" allows any work or school account."
|
||||
msgstr "Empfohlen: die GUID deines Tenants. Dann werden nur Anmeldungen aus diesem Tenant akzeptiert. „organizations“ erlaubt beliebige Geschäfts-, Schul- oder Unikonten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:351
|
||||
#: includes/class-m365-login-admin.php:421
|
||||
msgid "Multi-tenant mode: accounts from any Microsoft tenant can sign in. Their \"email\" attribute is not verified, so the plugin matches on the user principal name (verified domain) only and ignores the e-mail claim unless Microsoft marks it as domain-verified. Use the e-mail domain allow-list on the Security tab, or better, pin your tenant GUID."
|
||||
msgstr "Multi-Tenant-Modus: Konten aus beliebigen Microsoft-Tenants können sich anmelden. Deren „email“-Attribut ist nicht verifiziert, deshalb ordnet das Plugin nur über den User Principal Name (verifizierte Domain) zu und ignoriert den E-Mail-Claim, sofern Microsoft ihn nicht als domain-verifiziert markiert. Nutze die Domain-Allowlist im Tab „Sicherheit“ oder besser: die Tenant-GUID eintragen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:357
|
||||
#: includes/class-m365-login-admin.php:427
|
||||
msgid "Application (client) ID"
|
||||
msgstr "Anwendungs-ID (Client)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:362
|
||||
#: includes/class-m365-login-admin.php:432
|
||||
msgid "How should WordPress authenticate to Microsoft?"
|
||||
msgstr "Wie soll sich WordPress bei Microsoft authentifizieren?"
|
||||
|
||||
#: includes/class-m365-login-admin.php:367 includes/class-m365-login-admin.php:384
|
||||
#: includes/class-m365-login-admin.php:437 includes/class-m365-login-admin.php:454
|
||||
msgid "Client secret"
|
||||
msgstr "Geheimer Clientschlüssel (Client Secret)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:368
|
||||
#: includes/class-m365-login-admin.php:438
|
||||
msgid "Quick to set up. A password-like value created in Entra ID that expires after 6–24 months and must be renewed."
|
||||
msgstr "Schnell eingerichtet. Ein passwortähnlicher Wert aus Entra ID, der nach 6–24 Monaten abläuft und erneuert werden muss."
|
||||
|
||||
#: includes/class-m365-login-admin.php:374
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
msgid "Certificate"
|
||||
msgstr "Zertifikat"
|
||||
|
||||
#: includes/class-m365-login-admin.php:374
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
msgid "Recommended"
|
||||
msgstr "Empfohlen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:375
|
||||
#: includes/class-m365-login-admin.php:445
|
||||
msgid "The private key never leaves this server; only the public certificate is uploaded to Entra ID. Generated here with one click, valid for 2 years."
|
||||
msgstr "Der private Schlüssel verlässt diesen Server nie; nur das öffentliche Zertifikat wird in Entra ID hochgeladen. Mit einem Klick hier erzeugt, 2 Jahre gültig."
|
||||
|
||||
#: includes/class-m365-login-admin.php:386
|
||||
#: includes/class-m365-login-admin.php:456
|
||||
msgid "•••••••••••• (stored, leave empty to keep)"
|
||||
msgstr "•••••••••••• (gespeichert – leer lassen, um zu behalten)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:386
|
||||
#: includes/class-m365-login-admin.php:456
|
||||
msgid "Paste the secret value"
|
||||
msgstr "Wert des Secrets einfügen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:387
|
||||
#: includes/class-m365-login-admin.php:457
|
||||
msgid "Show secret"
|
||||
msgstr "Secret anzeigen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:392
|
||||
#: includes/class-m365-login-admin.php:462
|
||||
msgid "Remove the stored secret"
|
||||
msgstr "Gespeichertes Secret entfernen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:395
|
||||
#: includes/class-m365-login-admin.php:465
|
||||
msgid "Stored encrypted (AES-256-GCM, key derived from your WordPress salts) and never displayed again. Client secrets expire – note the expiry date in Entra ID."
|
||||
msgstr "Wird verschlüsselt gespeichert (AES-256-GCM, Schlüssel aus den WordPress-Salts abgeleitet) und nie wieder angezeigt. Client Secrets laufen ab – Ablaufdatum in Entra ID notieren."
|
||||
|
||||
#: includes/class-m365-login-admin.php:399
|
||||
#: includes/class-m365-login-admin.php:469
|
||||
msgid "Step-by-step: create a client secret in Entra ID"
|
||||
msgstr "Schritt für Schritt: Client Secret in Entra ID erstellen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:402
|
||||
#: includes/class-m365-login-admin.php:472
|
||||
msgid "Open entra.microsoft.com and sign in with an account that has the \"Application Administrator\" or \"Global Administrator\" role."
|
||||
msgstr "entra.microsoft.com öffnen und mit einem Konto anmelden, das die Rolle „Anwendungsadministrator“ oder „Globaler Administrator“ hat."
|
||||
|
||||
#: includes/class-m365-login-admin.php:403
|
||||
#: includes/class-m365-login-admin.php:473
|
||||
msgid "Go to Identity → Applications → App registrations and open your app (or create it first, see the general guide in the sidebar)."
|
||||
msgstr "Zu Identität → Anwendungen → App-Registrierungen wechseln und die App öffnen (oder zuerst anlegen, siehe allgemeine Anleitung in der Seitenleiste)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:404
|
||||
#: includes/class-m365-login-admin.php:474
|
||||
msgid "In the left menu choose Certificates & secrets, then the tab Client secrets, and click New client secret."
|
||||
msgstr "Im linken Menü „Zertifikate & Geheimnisse“ wählen, dann den Reiter „Geheime Clientschlüssel“ und auf „Neuer geheimer Clientschlüssel“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:405
|
||||
#: includes/class-m365-login-admin.php:475
|
||||
msgid "Enter a description such as \"WordPress login\" and pick an expiry. Microsoft allows at most 24 months; put a reminder in your calendar two weeks before."
|
||||
msgstr "Eine Beschreibung wie „WordPress Login“ eingeben und eine Gültigkeit wählen. Microsoft erlaubt maximal 24 Monate; zwei Wochen vor Ablauf eine Kalender-Erinnerung setzen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:406
|
||||
#: includes/class-m365-login-admin.php:476
|
||||
msgid "Click Add. Copy the Value column immediately – it is shown only once. The Secret ID column is NOT what you need."
|
||||
msgstr "Auf „Hinzufügen“ klicken. Die Spalte „Wert“ sofort kopieren – sie wird nur einmal angezeigt. Die Spalte „Geheimnis-ID“ ist NICHT der gesuchte Wert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:407
|
||||
#: includes/class-m365-login-admin.php:477
|
||||
msgid "Paste the value into the Client secret field above and save this page."
|
||||
msgstr "Den Wert oben in das Feld „Geheimer Clientschlüssel“ einfügen und diese Seite speichern."
|
||||
|
||||
#: includes/class-m365-login-admin.php:409
|
||||
#: includes/class-m365-login-admin.php:479
|
||||
msgid "When the secret expires, sign-ins fail with \"Could not complete the sign-in with Microsoft\". Create a new secret, paste it here, save, then delete the old one in Entra ID."
|
||||
msgstr "Läuft das Secret ab, scheitern Anmeldungen mit „Die Anmeldung über Microsoft konnte nicht abgeschlossen werden“. Dann ein neues Secret erstellen, hier einfügen, speichern und das alte in Entra ID löschen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:422
|
||||
#: includes/class-m365-login-admin.php:492
|
||||
msgid "Expired"
|
||||
msgstr "Abgelaufen"
|
||||
|
||||
#. translators: %d: number of days
|
||||
#: includes/class-m365-login-admin.php:426
|
||||
#: includes/class-m365-login-admin.php:496
|
||||
msgid "Expires in %d days"
|
||||
msgstr "Läuft in %d Tagen ab"
|
||||
|
||||
#. translators: %d: number of days
|
||||
#: includes/class-m365-login-admin.php:429
|
||||
#: includes/class-m365-login-admin.php:499
|
||||
msgid "Valid"
|
||||
msgstr "Gültig"
|
||||
|
||||
#: includes/class-m365-login-admin.php:434
|
||||
#: includes/class-m365-login-admin.php:504
|
||||
msgid "Thumbprint (SHA-1)"
|
||||
msgstr "Fingerabdruck (SHA-1)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:436
|
||||
#: includes/class-m365-login-admin.php:506
|
||||
msgid "Subject"
|
||||
msgstr "Antragsteller"
|
||||
|
||||
#: includes/class-m365-login-admin.php:438
|
||||
#: includes/class-m365-login-admin.php:508
|
||||
msgid "Key size"
|
||||
msgstr "Schlüssellänge"
|
||||
|
||||
#: includes/class-m365-login-admin.php:440
|
||||
#: includes/class-m365-login-admin.php:510
|
||||
msgid "Valid until"
|
||||
msgstr "Gültig bis"
|
||||
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
#: includes/class-m365-login-admin.php:514
|
||||
msgid "Download certificate (.cer)"
|
||||
msgstr "Zertifikat herunterladen (.cer)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:445
|
||||
#: includes/class-m365-login-admin.php:515
|
||||
msgid "Generate new certificate"
|
||||
msgstr "Neues Zertifikat erzeugen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:448
|
||||
#: includes/class-m365-login-admin.php:518
|
||||
msgid "Remove certificate when saving"
|
||||
msgstr "Zertifikat beim Speichern entfernen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:452
|
||||
#: includes/class-m365-login-admin.php:522
|
||||
msgid "No certificate stored yet."
|
||||
msgstr "Noch kein Zertifikat gespeichert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:454
|
||||
#: includes/class-m365-login-admin.php:524
|
||||
msgid "Generate certificate"
|
||||
msgstr "Zertifikat erzeugen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:455
|
||||
#: includes/class-m365-login-admin.php:525
|
||||
msgid "3072-bit RSA, self-signed, valid for 2 years. The private key is stored encrypted and never shown or downloadable."
|
||||
msgstr "3072 Bit RSA, selbstsigniert, 2 Jahre gültig. Der private Schlüssel wird verschlüsselt gespeichert und nie angezeigt oder zum Download angeboten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:459
|
||||
#: includes/class-m365-login-admin.php:529
|
||||
msgid "Use your own certificate instead (paste PEM)"
|
||||
msgstr "Stattdessen eigenes Zertifikat verwenden (PEM einfügen)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:462
|
||||
#: includes/class-m365-login-admin.php:532
|
||||
msgid "Private key (PEM, unencrypted)"
|
||||
msgstr "Privater Schlüssel (PEM, unverschlüsselt)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:466
|
||||
#: includes/class-m365-login-admin.php:536
|
||||
msgid "Certificate (PEM)"
|
||||
msgstr "Zertifikat (PEM)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:468
|
||||
#: includes/class-m365-login-admin.php:538
|
||||
msgid "RSA, at least 2048 bits. The pair is validated and the key is encrypted when you save. Both fields stay empty afterwards."
|
||||
msgstr "RSA, mindestens 2048 Bit. Beim Speichern wird das Paar geprüft und der Schlüssel verschlüsselt. Beide Felder bleiben danach leer."
|
||||
|
||||
#: includes/class-m365-login-admin.php:474
|
||||
#: includes/class-m365-login-admin.php:544
|
||||
msgid "Step-by-step: register the certificate in Entra ID"
|
||||
msgstr "Schritt für Schritt: Zertifikat in Entra ID hinterlegen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:477
|
||||
#: includes/class-m365-login-admin.php:547
|
||||
msgid "Click Generate certificate above (or paste your own). Then click Download certificate (.cer) – the file contains only the public part."
|
||||
msgstr "Oben auf „Zertifikat erzeugen“ klicken (oder ein eigenes einfügen). Danach „Zertifikat herunterladen (.cer)“ – die Datei enthält nur den öffentlichen Teil."
|
||||
|
||||
#: includes/class-m365-login-admin.php:478
|
||||
#: includes/class-m365-login-admin.php:548
|
||||
msgid "Open entra.microsoft.com → Identity → Applications → App registrations and open your app."
|
||||
msgstr "entra.microsoft.com → Identität → Anwendungen → App-Registrierungen öffnen und die App auswählen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:479
|
||||
#: includes/class-m365-login-admin.php:549
|
||||
msgid "Choose Certificates & secrets in the left menu, then the tab Certificates, and click Upload certificate."
|
||||
msgstr "Im linken Menü „Zertifikate & Geheimnisse“ wählen, dann den Reiter „Zertifikate“ und auf „Zertifikat hochladen“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:480
|
||||
#: includes/class-m365-login-admin.php:550
|
||||
msgid "Select the downloaded .cer file, add a description such as \"WordPress login\" and click Add."
|
||||
msgstr "Die heruntergeladene .cer-Datei auswählen, eine Beschreibung wie „WordPress Login“ eingeben und auf „Hinzufügen“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:481
|
||||
#: includes/class-m365-login-admin.php:551
|
||||
msgid "Compare the thumbprint Entra ID shows with the thumbprint above – they must match exactly."
|
||||
msgstr "Den in Entra ID angezeigten Fingerabdruck mit dem Fingerabdruck oben vergleichen – beide müssen exakt übereinstimmen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:482
|
||||
#: includes/class-m365-login-admin.php:552
|
||||
msgid "Make sure Certificate is selected above and save this page. If a client secret was stored before, you may delete it in Entra ID now."
|
||||
msgstr "Sicherstellen, dass oben „Zertifikat“ ausgewählt ist, und diese Seite speichern. War vorher ein Client Secret gespeichert, kann es jetzt in Entra ID gelöscht werden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:484
|
||||
#: includes/class-m365-login-admin.php:554
|
||||
msgid "How it works: for every token request WordPress signs a short-lived JWT (client assertion) with the private key; Microsoft verifies it with the uploaded certificate. Nothing secret is ever transmitted."
|
||||
msgstr "So funktioniert es: Für jede Token-Anfrage signiert WordPress ein kurzlebiges JWT (Client Assertion) mit dem privaten Schlüssel; Microsoft prüft es mit dem hochgeladenen Zertifikat. Es wird nie ein Geheimnis übertragen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:485
|
||||
#: includes/class-m365-login-admin.php:555
|
||||
msgid "Before the certificate expires: generate a new one here, upload it to Entra ID (both may be registered at the same time), save, then remove the old one from Entra ID. Sign-ins keep working during the switch."
|
||||
msgstr "Vor Ablauf des Zertifikats: hier ein neues erzeugen, in Entra ID hochladen (beide dürfen gleichzeitig hinterlegt sein), speichern und danach das alte in Entra ID entfernen. Anmeldungen funktionieren während des Wechsels weiter."
|
||||
|
||||
#: includes/class-m365-login-admin.php:491
|
||||
#: includes/class-m365-login-admin.php:561
|
||||
msgid "Account prompt"
|
||||
msgstr "Kontoauswahl"
|
||||
|
||||
#: includes/class-m365-login-admin.php:493
|
||||
#: includes/class-m365-login-admin.php:563
|
||||
msgid "Always let the user pick an account (recommended)"
|
||||
msgstr "Benutzer wählt immer ein Konto aus (empfohlen)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:494
|
||||
#: includes/class-m365-login-admin.php:564
|
||||
msgid "Use the current Microsoft session if available"
|
||||
msgstr "Vorhandene Microsoft-Sitzung verwenden, falls vorhanden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:495
|
||||
#: includes/class-m365-login-admin.php:565
|
||||
msgid "Always require re-entering credentials"
|
||||
msgstr "Immer erneute Eingabe der Anmeldedaten verlangen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:504
|
||||
#: includes/class-m365-login-admin.php:574
|
||||
msgid "Appearance"
|
||||
msgstr "Darstellung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:507
|
||||
#: includes/class-m365-login-admin.php:577
|
||||
msgid "Live preview"
|
||||
msgstr "Live-Vorschau"
|
||||
|
||||
#: includes/class-m365-login-admin.php:521
|
||||
#: includes/class-m365-login-admin.php:591
|
||||
msgid "Button text"
|
||||
msgstr "Button-Text"
|
||||
|
||||
#: includes/class-m365-login-admin.php:525
|
||||
#: includes/class-m365-login-admin.php:595
|
||||
msgid "Divider text"
|
||||
msgstr "Trennlinien-Text"
|
||||
|
||||
#: includes/class-m365-login-admin.php:527
|
||||
#: includes/class-m365-login-admin.php:597
|
||||
msgid "Leave empty to hide the divider line."
|
||||
msgstr "Leer lassen, um die Trennlinie auszublenden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:532
|
||||
#: includes/class-m365-login-admin.php:602
|
||||
msgid "Icon"
|
||||
msgstr "Icon"
|
||||
|
||||
#: includes/class-m365-login-admin.php:535
|
||||
#: includes/class-m365-login-admin.php:605
|
||||
msgid "Show an icon on the button"
|
||||
msgstr "Icon auf dem Button anzeigen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:546
|
||||
#: includes/class-m365-login-admin.php:616
|
||||
msgid "Default: Microsoft logo"
|
||||
msgstr "Standard: Microsoft-Logo"
|
||||
|
||||
#: includes/class-m365-login-admin.php:548
|
||||
#: includes/class-m365-login-admin.php:618
|
||||
msgid "Choose from media library"
|
||||
msgstr "Aus Mediathek wählen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:549
|
||||
#: includes/class-m365-login-admin.php:619
|
||||
msgid "Use Microsoft logo"
|
||||
msgstr "Microsoft-Logo verwenden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:551
|
||||
#: includes/class-m365-login-admin.php:621
|
||||
msgid "PNG, SVG, JPG or WebP. Square images (e.g. 64×64 px) work best."
|
||||
msgstr "PNG, SVG, JPG oder WebP. Quadratische Bilder (z. B. 64×64 px) eignen sich am besten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:559
|
||||
#: includes/class-m365-login-admin.php:629
|
||||
msgid "Background"
|
||||
msgstr "Hintergrund"
|
||||
|
||||
#: includes/class-m365-login-admin.php:560
|
||||
#: includes/class-m365-login-admin.php:630
|
||||
msgid "Background (hover)"
|
||||
msgstr "Hintergrund (Hover)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:561
|
||||
#: includes/class-m365-login-admin.php:631
|
||||
msgid "Text colour"
|
||||
msgstr "Textfarbe"
|
||||
|
||||
#: includes/class-m365-login-admin.php:562
|
||||
#: includes/class-m365-login-admin.php:632
|
||||
msgid "Border"
|
||||
msgstr "Rahmen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:575
|
||||
#: includes/class-m365-login-admin.php:645
|
||||
msgid "Corner radius"
|
||||
msgstr "Eckenradius"
|
||||
|
||||
#: includes/class-m365-login-admin.php:579
|
||||
#: includes/class-m365-login-admin.php:649
|
||||
msgid "Position on the login page"
|
||||
msgstr "Position auf der Login-Seite"
|
||||
|
||||
#: includes/class-m365-login-admin.php:581
|
||||
#: includes/class-m365-login-admin.php:651
|
||||
msgid "Below the login form"
|
||||
msgstr "Unter dem Login-Formular"
|
||||
|
||||
#: includes/class-m365-login-admin.php:582
|
||||
#: includes/class-m365-login-admin.php:652
|
||||
msgid "Above the login form"
|
||||
msgstr "Über dem Login-Formular"
|
||||
|
||||
#: includes/class-m365-login-admin.php:588
|
||||
#: includes/class-m365-login-admin.php:658
|
||||
msgid "Quick presets"
|
||||
msgstr "Schnellauswahl"
|
||||
|
||||
#: includes/class-m365-login-admin.php:589
|
||||
#: includes/class-m365-login-admin.php:659
|
||||
msgid "Microsoft dark"
|
||||
msgstr "Microsoft dunkel"
|
||||
|
||||
#: includes/class-m365-login-admin.php:590
|
||||
#: includes/class-m365-login-admin.php:660
|
||||
msgid "Microsoft light"
|
||||
msgstr "Microsoft hell"
|
||||
|
||||
#: includes/class-m365-login-admin.php:591
|
||||
#: includes/class-m365-login-admin.php:661
|
||||
msgid "Azure blue"
|
||||
msgstr "Azure-Blau"
|
||||
|
||||
#: includes/class-m365-login-admin.php:592
|
||||
#: includes/class-m365-login-admin.php:662
|
||||
msgid "WordPress blue"
|
||||
msgstr "WordPress-Blau"
|
||||
|
||||
#: includes/class-m365-login-admin.php:596
|
||||
#: includes/class-m365-login-admin.php:666
|
||||
msgid "Custom login page"
|
||||
msgstr "Eigene Login-Seite"
|
||||
|
||||
#: includes/class-m365-login-admin.php:597
|
||||
#: includes/class-m365-login-admin.php:667
|
||||
msgid "Using your own login page instead of wp-login.php? Tell the plugin where it is so error messages, the fallback link and the post-logout redirect point there."
|
||||
msgstr "Eigene Login-Seite statt wp-login.php? Hier eintragen, damit Fehlermeldungen, der Fallback-Link und die Weiterleitung nach dem Abmelden dorthin zeigen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:600
|
||||
#: includes/class-m365-login-admin.php:670
|
||||
msgid "URL of your login page"
|
||||
msgstr "URL der Login-Seite"
|
||||
|
||||
#: includes/class-m365-login-admin.php:602
|
||||
#: includes/class-m365-login-admin.php:672
|
||||
msgid "Must be on this site. Leave empty to use wp-login.php."
|
||||
msgstr "Muss auf dieser Website liegen. Leer lassen, um wp-login.php zu verwenden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:608
|
||||
#: includes/class-m365-login-admin.php:678
|
||||
msgid "Add the button to every wp_login_form() form automatically"
|
||||
msgstr "Button automatisch in jedes wp_login_form()-Formular einfügen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:609
|
||||
#: includes/class-m365-login-admin.php:679
|
||||
msgid "Covers themes and plugins that use the WordPress login form function. Page-builder widgets need the shortcode or the template function below."
|
||||
msgstr "Deckt Themes und Plugins ab, die die WordPress-Login-Formularfunktion verwenden. Page-Builder-Widgets benötigen den Shortcode oder die Template-Funktion unten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:614
|
||||
#: includes/class-m365-login-admin.php:684
|
||||
msgid "Manual placement"
|
||||
msgstr "Manuelle Platzierung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:615
|
||||
#: includes/class-m365-login-admin.php:685
|
||||
msgid "Shortcode (block editor, page builders):"
|
||||
msgstr "Shortcode (Block-Editor, Page Builder):"
|
||||
|
||||
#: includes/class-m365-login-admin.php:617
|
||||
#: includes/class-m365-login-admin.php:687
|
||||
msgid "Template function (theme files):"
|
||||
msgstr "Template-Funktion (Theme-Dateien):"
|
||||
|
||||
#: includes/class-m365-login-admin.php:619
|
||||
#: includes/class-m365-login-admin.php:689
|
||||
msgid "Both show the error messages of the last attempt; use m365_login_messages() to place them separately."
|
||||
msgstr "Beide zeigen die Fehlermeldungen des letzten Versuchs; mit m365_login_messages() lassen sie sich separat platzieren."
|
||||
|
||||
#: includes/class-m365-login-admin.php:627
|
||||
#: includes/class-m365-login-admin.php:697
|
||||
msgid "User matching & hardening"
|
||||
msgstr "Benutzerzuordnung & Härtung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:628
|
||||
#: includes/class-m365-login-admin.php:698
|
||||
msgid "Users are never created automatically. A Microsoft sign-in only succeeds when a WordPress user with the same e-mail address already exists."
|
||||
msgstr "Benutzer werden nie automatisch angelegt. Eine Microsoft-Anmeldung gelingt nur, wenn bereits ein WordPress-Benutzer mit derselben E-Mail-Adresse existiert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:633
|
||||
#: includes/class-m365-login-admin.php:703
|
||||
msgid "Bind WordPress accounts to the Microsoft object ID"
|
||||
msgstr "WordPress-Konten an die Microsoft-Objekt-ID binden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:634
|
||||
#: includes/class-m365-login-admin.php:704
|
||||
msgid "On first sign-in the immutable Microsoft object ID is stored with the user. Later sign-ins with the same e-mail but a different Microsoft identity are rejected. Strongly recommended."
|
||||
msgstr "Bei der ersten Anmeldung wird die unveränderliche Microsoft-Objekt-ID am Benutzer gespeichert. Spätere Anmeldungen mit gleicher E-Mail, aber anderer Microsoft-Identität werden abgelehnt. Dringend empfohlen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:641
|
||||
#: includes/class-m365-login-admin.php:711
|
||||
msgid "Fall back to the user principal name (UPN)"
|
||||
msgstr "Auf den User Principal Name (UPN) zurückgreifen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:642
|
||||
#: includes/class-m365-login-admin.php:712
|
||||
msgid "If the token contains no \"email\" claim, use the UPN (e.g. jane@contoso.com) when it is a valid e-mail address. Usually required for work accounts."
|
||||
msgstr "Enthält das Token keinen „email“-Claim, wird der UPN (z. B. jane@contoso.com) verwendet, sofern er eine gültige E-Mail-Adresse ist. Für Geschäftskonten meist erforderlich."
|
||||
|
||||
#: includes/class-m365-login-admin.php:649
|
||||
#: includes/class-m365-login-admin.php:719
|
||||
msgid "Keep users signed in (\"Remember me\")"
|
||||
msgstr "Benutzer angemeldet lassen („Angemeldet bleiben“)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:650
|
||||
#: includes/class-m365-login-admin.php:720
|
||||
msgid "Issues a 14-day WordPress session instead of a browser session."
|
||||
msgstr "Erstellt eine 14-tägige WordPress-Sitzung statt einer Browser-Sitzung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:655
|
||||
#: includes/class-m365-login-admin.php:725
|
||||
msgid "Allowed e-mail domains (optional)"
|
||||
msgstr "Erlaubte E-Mail-Domains (optional)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:657
|
||||
#: includes/class-m365-login-admin.php:727
|
||||
msgid "One or more domains separated by commas or new lines. Leave empty to allow any domain of your tenant."
|
||||
msgstr "Eine oder mehrere Domains, getrennt durch Kommas oder Zeilenumbrüche. Leer lassen, um alle Domains des Tenants zuzulassen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:662
|
||||
#: includes/class-m365-login-admin.php:732
|
||||
msgid "Allowed Entra groups (optional)"
|
||||
msgstr "Erlaubte Entra-Gruppen (optional)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:663
|
||||
#: includes/class-m365-login-admin.php:733
|
||||
msgid "Only members of at least one of these groups may sign in. Leave empty to allow every matched user. Nested memberships count."
|
||||
msgstr "Nur Mitglieder mindestens einer dieser Gruppen dürfen sich anmelden. Leer lassen, um alle zugeordneten Benutzer zuzulassen. Verschachtelte Mitgliedschaften zählen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:666
|
||||
#: includes/class-m365-login-admin.php:736
|
||||
msgid "Search groups"
|
||||
msgstr "Gruppen suchen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:668
|
||||
#: includes/class-m365-login-admin.php:738
|
||||
msgid "Type a group name or paste an object ID…"
|
||||
msgstr "Gruppenname eingeben oder Objekt-ID einfügen …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:669
|
||||
#: includes/class-m365-login-admin.php:739
|
||||
msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:674
|
||||
#: includes/class-m365-login-admin.php:744
|
||||
msgid "Needs the application permission \"GroupMember.Read.All\" with admin consent. Without it you can still paste group object IDs."
|
||||
msgstr "Benötigt die Anwendungsberechtigung „GroupMember.Read.All“ mit Administratorzustimmung. Ohne sie können Gruppen-Objekt-IDs trotzdem eingefügt werden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:680
|
||||
#: includes/class-m365-login-admin.php:750
|
||||
msgid "Selected groups"
|
||||
msgstr "Ausgewählte Gruppen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:681
|
||||
#: includes/class-m365-login-admin.php:751
|
||||
msgid "No groups selected – every matched user may sign in."
|
||||
msgstr "Keine Gruppen ausgewählt – jeder zugeordnete Benutzer darf sich anmelden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:691
|
||||
#: includes/class-m365-login-admin.php:761
|
||||
msgid "Membership is read from the \"groups\" claim of the ID token when present; otherwise the plugin asks Microsoft Graph (application permission \"User.Read.All\" or \"Directory.Read.All\"). If neither works, the sign-in is refused."
|
||||
msgstr "Die Mitgliedschaft wird aus dem „groups“-Claim des ID-Tokens gelesen, falls vorhanden; andernfalls fragt das Plugin Microsoft Graph (Anwendungsberechtigung „User.Read.All“ oder „Directory.Read.All“). Funktioniert beides nicht, wird die Anmeldung abgelehnt."
|
||||
|
||||
#: includes/class-m365-login-admin.php:696
|
||||
#: includes/class-m365-login-admin.php:766
|
||||
msgid "Button-only mode"
|
||||
msgstr "Nur-Button-Modus"
|
||||
|
||||
#: includes/class-m365-login-admin.php:697
|
||||
#: includes/class-m365-login-admin.php:767
|
||||
msgid "Hides the username/password fields (on wp-login.php and in wp_login_form() forms) and refuses every interactive password sign-in on the site, including custom login forms. Application passwords, REST, XML-RPC and WP-CLI are not affected."
|
||||
msgstr "Blendet die Benutzername/Passwort-Felder aus (auf wp-login.php und in wp_login_form()-Formularen) und lehnt jede interaktive Passwort-Anmeldung auf der Website ab, auch in eigenen Login-Formularen. Anwendungspasswörter, REST, XML-RPC und WP-CLI sind nicht betroffen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:702
|
||||
#: includes/class-m365-login-admin.php:772
|
||||
msgid "Show only the Microsoft button on the login page"
|
||||
msgstr "Auf der Login-Seite nur den Microsoft-Button anzeigen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:703
|
||||
#: includes/class-m365-login-admin.php:773
|
||||
msgid "Becomes active once the connection is configured. Make sure your own account can sign in via Microsoft before enabling this."
|
||||
msgstr "Wird aktiv, sobald die Verbindung eingerichtet ist. Vor dem Aktivieren sicherstellen, dass das eigene Konto sich per Microsoft anmelden kann."
|
||||
|
||||
#: includes/class-m365-login-admin.php:708
|
||||
#: includes/class-m365-login-admin.php:778
|
||||
msgid "Fallback link (keep it secret)"
|
||||
msgstr "Fallback-Link (geheim halten)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:709
|
||||
#: includes/class-m365-login-admin.php:779
|
||||
msgid "Opening this link shows the password form again in that browser for 30 minutes and allows password sign-in there. Bookmark it somewhere safe – it is your way back in if Microsoft sign-in ever breaks."
|
||||
msgstr "Wer diesen Link öffnet, sieht in diesem Browser 30 Minuten lang wieder das Passwort-Formular und kann sich dort mit Passwort anmelden. Sicher aufbewahren – er ist der Weg zurück, falls die Microsoft-Anmeldung einmal nicht funktioniert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:717
|
||||
#: includes/class-m365-login-admin.php:787
|
||||
msgid "Generate a new key when saving"
|
||||
msgstr "Beim Speichern einen neuen Schlüssel erzeugen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:720
|
||||
#: includes/class-m365-login-admin.php:790
|
||||
msgid "A key is generated automatically the first time you save these settings."
|
||||
msgstr "Beim ersten Speichern dieser Einstellungen wird automatisch ein Schlüssel erzeugt."
|
||||
|
||||
#. translators: %s: PHP constant
|
||||
#: includes/class-m365-login-admin.php:726
|
||||
#: includes/class-m365-login-admin.php:796
|
||||
msgid "Emergency switch: add %s to wp-config.php to disable button-only mode entirely."
|
||||
msgstr "Notschalter: %s in die wp-config.php eintragen, um den Nur-Button-Modus vollständig abzuschalten."
|
||||
|
||||
#. translators: %s: PHP constant
|
||||
#: includes/class-m365-login-admin.php:735
|
||||
#: includes/class-m365-login-admin.php:805
|
||||
msgid "What the plugin does to keep sign-ins safe"
|
||||
msgstr "So schützt das Plugin die Anmeldung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:737
|
||||
#: includes/class-m365-login-admin.php:807
|
||||
msgid "OpenID Connect authorization code flow with PKCE (S256) – no tokens ever pass through the browser."
|
||||
msgstr "OpenID Connect Authorization Code Flow mit PKCE (S256) – Tokens laufen nie durch den Browser."
|
||||
|
||||
#: includes/class-m365-login-admin.php:738
|
||||
#: includes/class-m365-login-admin.php:808
|
||||
msgid "Single-use state and nonce values bound to the browser via an HttpOnly cookie (CSRF and replay protection)."
|
||||
msgstr "Einmalige State- und Nonce-Werte, per HttpOnly-Cookie an den Browser gebunden (CSRF- und Replay-Schutz)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:739
|
||||
#: includes/class-m365-login-admin.php:809
|
||||
msgid "ID token signature verified against Microsoft’s published signing keys; issuer, audience, tenant, expiry and nonce are checked."
|
||||
msgstr "Signatur des ID-Tokens wird gegen Microsofts veröffentlichte Signaturschlüssel geprüft; Issuer, Audience, Tenant, Ablauf und Nonce werden kontrolliert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:740
|
||||
#: includes/class-m365-login-admin.php:810
|
||||
msgid "Client secret encrypted at rest; no accounts are created, no passwords are changed."
|
||||
msgstr "Client Secret verschlüsselt gespeichert; es werden keine Konten angelegt und keine Passwörter geändert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:746
|
||||
#: includes/class-m365-login-admin.php:816
|
||||
msgid "Save changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
#: includes/class-m365-login-admin.php:752
|
||||
#: includes/class-m365-login-admin.php:822
|
||||
msgid "Redirect URI"
|
||||
msgstr "Umleitungs-URI (Redirect URI)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:753
|
||||
#: includes/class-m365-login-admin.php:823
|
||||
msgid "Register this URI in your app registration under Authentication → Web → Redirect URIs:"
|
||||
msgstr "Diese URI in der App-Registrierung unter Authentifizierung → Web → Umleitungs-URIs eintragen:"
|
||||
|
||||
#: includes/class-m365-login-admin.php:759
|
||||
#: includes/class-m365-login-admin.php:829
|
||||
msgid "Plain permalinks are active, so the callback uses a query string. If you enable pretty permalinks later, the redirect URI changes and must be updated in Entra ID."
|
||||
msgstr "Einfache Permalinks sind aktiv, daher verwendet der Callback einen Query-String. Werden später sprechende Permalinks aktiviert, ändert sich die Umleitungs-URI und muss in Entra ID angepasst werden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:762
|
||||
#: includes/class-m365-login-admin.php:832
|
||||
msgid "Your site does not use HTTPS. Microsoft only accepts http:// redirect URIs for localhost; production sites must use HTTPS."
|
||||
msgstr "Diese Website nutzt kein HTTPS. Microsoft akzeptiert http://-Umleitungs-URIs nur für localhost; produktive Websites benötigen HTTPS."
|
||||
|
||||
#: includes/class-m365-login-admin.php:767
|
||||
#: includes/class-m365-login-admin.php:837
|
||||
msgid "Setup guide: app registration"
|
||||
msgstr "Anleitung: App-Registrierung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:769
|
||||
#: includes/class-m365-login-admin.php:839
|
||||
msgid "Open entra.microsoft.com → Identity → Applications → App registrations → New registration."
|
||||
msgstr "entra.microsoft.com → Identität → Anwendungen → App-Registrierungen → Neue Registrierung öffnen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:770
|
||||
#: includes/class-m365-login-admin.php:840
|
||||
msgid "Name: e.g. \"WordPress login\". Supported account types: \"Accounts in this organizational directory only\" (single tenant)."
|
||||
msgstr "Name: z. B. „WordPress Login“. Unterstützte Kontotypen: „Nur Konten in diesem Organisationsverzeichnis“ (Single Tenant)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:771
|
||||
#: includes/class-m365-login-admin.php:841
|
||||
msgid "Redirect URI: choose the platform Web and paste the URI shown above. Then click Register."
|
||||
msgstr "Umleitungs-URI: Plattform „Web“ wählen und die oben angezeigte URI einfügen. Dann auf „Registrieren“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:772
|
||||
#: includes/class-m365-login-admin.php:842
|
||||
msgid "On the Overview page copy the Application (client) ID and the Directory (tenant) ID into the Connection tab."
|
||||
msgstr "Auf der Übersichtsseite die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant) in den Tab „Verbindung“ kopieren."
|
||||
|
||||
#: includes/class-m365-login-admin.php:773
|
||||
#: includes/class-m365-login-admin.php:843
|
||||
msgid "Authentication: leave \"ID tokens\" unchecked (the plugin uses the authorization code flow) and \"Allow public client flows\" on No."
|
||||
msgstr "Authentifizierung: „ID-Token“ nicht anhaken (das Plugin nutzt den Authorization Code Flow) und „Öffentliche Clientflows zulassen“ auf „Nein“ lassen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:774
|
||||
#: includes/class-m365-login-admin.php:844
|
||||
msgid "Token configuration → Add optional claim → ID → tick \"email\" → Add. Confirm the API permission prompt."
|
||||
msgstr "Tokenkonfiguration → Optionalen Anspruch hinzufügen → ID → „email“ anhaken → Hinzufügen. Die Rückfrage zur API-Berechtigung bestätigen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:775
|
||||
#: includes/class-m365-login-admin.php:845
|
||||
msgid "Pick the authentication method on the Connection tab and follow its step-by-step guide (client secret or certificate)."
|
||||
msgstr "Im Tab „Verbindung“ die Authentifizierungsmethode wählen und der zugehörigen Schritt-für-Schritt-Anleitung folgen (Client Secret oder Zertifikat)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:776
|
||||
#: includes/class-m365-login-admin.php:846
|
||||
msgid "Optional: restrict who may use the app under Enterprise applications → your app → Properties → \"Assignment required\" = Yes, then assign users/groups."
|
||||
msgstr "Optional: Unter Unternehmensanwendungen → deine App → Eigenschaften → „Zuweisung erforderlich“ = Ja einschränken, wer die App nutzen darf, und dann Benutzer/Gruppen zuweisen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:778
|
||||
#: includes/class-m365-login-admin.php:848
|
||||
msgid "Required API permission: openid, profile, email (delegated) – granted by default."
|
||||
msgstr "Benötigte API-Berechtigungen: openid, profile, email (delegiert) – standardmäßig vorhanden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:779
|
||||
#: includes/class-m365-login-admin.php:849
|
||||
msgid "Optional, for group restrictions: application permissions GroupMember.Read.All and User.Read.All (Microsoft Graph) with admin consent."
|
||||
msgstr "Optional für Gruppen-Beschränkungen: Anwendungsberechtigungen GroupMember.Read.All und User.Read.All (Microsoft Graph) mit Administratorzustimmung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:783
|
||||
#: includes/class-m365-login-admin.php:853
|
||||
msgid "Shortcode"
|
||||
msgstr "Shortcode"
|
||||
|
||||
#: includes/class-m365-login-admin.php:784
|
||||
#: includes/class-m365-login-admin.php:854
|
||||
msgid "Place the button on a custom login page:"
|
||||
msgstr "Button auf einer eigenen Login-Seite platzieren:"
|
||||
|
||||
#: includes/class-m365-login-admin.php:786
|
||||
#: includes/class-m365-login-admin.php:856
|
||||
msgid "More options on the Button tab under \"Custom login page\"."
|
||||
msgstr "Weitere Optionen im Tab „Button“ unter „Eigene Login-Seite“."
|
||||
|
||||
|
|
|
|||
|
|
@ -16,709 +16,709 @@ msgstr ""
|
|||
"X-Generator: bin/make-pot.py\n"
|
||||
"X-Domain: m365-login\n"
|
||||
|
||||
#: includes/class-m365-login-admin.php:79 includes/class-m365-login-admin.php:80 includes/class-m365-login-admin.php:315
|
||||
#: includes/class-m365-login-admin.php:81 includes/class-m365-login-admin.php:82 includes/class-m365-login-admin.php:93 includes/class-m365-login-admin.php:382
|
||||
msgid "M365 Login"
|
||||
msgstr "M365 Login"
|
||||
|
||||
#: includes/class-m365-login-admin.php:118
|
||||
#: includes/class-m365-login-admin.php:108
|
||||
msgid "Connection"
|
||||
msgstr "Verbindung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:109
|
||||
msgid "Button"
|
||||
msgstr "Button"
|
||||
|
||||
#: includes/class-m365-login-admin.php:110
|
||||
msgid "Security"
|
||||
msgstr "Sicherheit"
|
||||
|
||||
#: includes/class-m365-login-admin.php:185
|
||||
msgid "M365 Login is active but not connected to Microsoft Entra ID yet."
|
||||
msgstr "M365 Login ist aktiv, aber noch nicht mit Microsoft Entra ID verbunden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:120
|
||||
#: includes/class-m365-login-admin.php:187
|
||||
msgid "Open the settings"
|
||||
msgstr "Einstellungen öffnen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:150
|
||||
#: includes/class-m365-login-admin.php:217
|
||||
msgid "Choose button icon"
|
||||
msgstr "Button-Icon auswählen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:151
|
||||
#: includes/class-m365-login-admin.php:218
|
||||
msgid "Use this icon"
|
||||
msgstr "Dieses Icon verwenden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:152
|
||||
#: includes/class-m365-login-admin.php:219
|
||||
msgid "Copied!"
|
||||
msgstr "Kopiert!"
|
||||
|
||||
#: includes/class-m365-login-admin.php:153 includes/class-m365-login-admin.php:435 includes/class-m365-login-admin.php:713 includes/class-m365-login-admin.php:756
|
||||
#: includes/class-m365-login-admin.php:220 includes/class-m365-login-admin.php:505 includes/class-m365-login-admin.php:783 includes/class-m365-login-admin.php:826
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: includes/class-m365-login-admin.php:154
|
||||
#: includes/class-m365-login-admin.php:221
|
||||
msgid "Testing…"
|
||||
msgstr "Wird geprüft …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:155
|
||||
#: includes/class-m365-login-admin.php:222
|
||||
msgid "The tenant could not be reached. Check the tenant ID and the server’s outgoing connections."
|
||||
msgstr "Der Tenant ist nicht erreichbar. Bitte Tenant-ID und ausgehende Verbindungen des Servers prüfen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:156
|
||||
#: includes/class-m365-login-admin.php:223
|
||||
msgid "No groups found."
|
||||
msgstr "Keine Gruppen gefunden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:157
|
||||
#: includes/class-m365-login-admin.php:224
|
||||
msgid "Searching…"
|
||||
msgstr "Suche läuft …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:158
|
||||
#: includes/class-m365-login-admin.php:225
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:159 includes/class-m365-login-admin.php:687
|
||||
#: includes/class-m365-login-admin.php:226 includes/class-m365-login-admin.php:757
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:160 includes/class-m365-login-admin.php:218 includes/class-m365-login-admin.php:672
|
||||
#: includes/class-m365-login-admin.php:227 includes/class-m365-login-admin.php:285 includes/class-m365-login-admin.php:742
|
||||
msgid "Save the connection settings first, then search for groups."
|
||||
msgstr "Zuerst die Verbindungseinstellungen speichern, dann Gruppen suchen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:161
|
||||
#: includes/class-m365-login-admin.php:228
|
||||
msgid "Generate a new fallback key on save? The old link stops working."
|
||||
msgstr "Beim Speichern einen neuen Fallback-Schlüssel erzeugen? Der alte Link funktioniert dann nicht mehr."
|
||||
|
||||
#: includes/class-m365-login-admin.php:162
|
||||
#: includes/class-m365-login-admin.php:229
|
||||
msgid "Generating a 3072-bit key pair, this takes a moment…"
|
||||
msgstr "3072-Bit-Schlüsselpaar wird erzeugt, das dauert einen Moment …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:163
|
||||
#: includes/class-m365-login-admin.php:230
|
||||
msgid "Replace the stored certificate? Sign-in stops working until the new certificate is uploaded to Entra ID."
|
||||
msgstr "Gespeichertes Zertifikat ersetzen? Die Anmeldung funktioniert erst wieder, wenn das neue Zertifikat in Entra ID hochgeladen ist."
|
||||
|
||||
#: includes/class-m365-login-admin.php:164
|
||||
#: includes/class-m365-login-admin.php:231
|
||||
msgid "Remove the stored certificate when saving? Sign-in with the certificate method stops working."
|
||||
msgstr "Gespeichertes Zertifikat beim Speichern entfernen? Die Anmeldung per Zertifikat funktioniert dann nicht mehr."
|
||||
|
||||
#: includes/class-m365-login-admin.php:176 includes/class-m365-login-admin.php:215 includes/class-m365-login-admin.php:241 includes/class-m365-login-admin.php:273
|
||||
#: includes/class-m365-login-admin.php:243 includes/class-m365-login-admin.php:282 includes/class-m365-login-admin.php:308 includes/class-m365-login-admin.php:340
|
||||
msgid "You are not allowed to do this."
|
||||
msgstr "Dafür fehlt die Berechtigung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:181
|
||||
#: includes/class-m365-login-admin.php:248
|
||||
msgid "Please enter a valid tenant ID first."
|
||||
msgstr "Bitte zuerst eine gültige Tenant-ID eingeben."
|
||||
|
||||
#. translators: %d: HTTP status code
|
||||
#: includes/class-m365-login-admin.php:195
|
||||
#: includes/class-m365-login-admin.php:262
|
||||
msgid "Microsoft answered with HTTP %d. Is the tenant ID correct?"
|
||||
msgstr "Microsoft hat mit HTTP %d geantwortet. Ist die Tenant-ID korrekt?"
|
||||
|
||||
#. translators: %d: HTTP status code
|
||||
#: includes/class-m365-login-admin.php:204
|
||||
#: includes/class-m365-login-admin.php:271
|
||||
msgid "Tenant reachable. The OpenID configuration was loaded successfully."
|
||||
msgstr "Tenant erreichbar. Die OpenID-Konfiguration wurde erfolgreich geladen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:227
|
||||
#: includes/class-m365-login-admin.php:294
|
||||
msgid "Microsoft Graph refused the request. Grant the application permission \"GroupMember.Read.All\" (or \"Directory.Read.All\") with admin consent in Entra ID."
|
||||
msgstr "Microsoft Graph hat die Anfrage abgelehnt. In Entra ID die Anwendungsberechtigung „GroupMember.Read.All“ (oder „Directory.Read.All“) mit Administratorzustimmung erteilen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:245
|
||||
#: includes/class-m365-login-admin.php:312
|
||||
msgid "Unknown operation."
|
||||
msgstr "Unbekannte Aktion."
|
||||
|
||||
#: includes/class-m365-login-admin.php:262
|
||||
#: includes/class-m365-login-admin.php:329
|
||||
msgid "Certificate generated and stored. Download the .cer file and upload it in Entra ID."
|
||||
msgstr "Zertifikat erzeugt und gespeichert. Jetzt die .cer-Datei herunterladen und in Entra ID hochladen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:279
|
||||
#: includes/class-m365-login-admin.php:346
|
||||
msgid "No certificate is stored."
|
||||
msgstr "Es ist kein Zertifikat gespeichert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:297
|
||||
#: includes/class-m365-login-admin.php:364
|
||||
msgid "You are not allowed to access this page."
|
||||
msgstr "Für diese Seite fehlt die Berechtigung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:316
|
||||
#: includes/class-m365-login-admin.php:383
|
||||
msgid "Let existing users sign in with their Microsoft 365 / Entra ID account."
|
||||
msgstr "Bestehende Benutzer melden sich mit ihrem Microsoft 365 / Entra ID-Konto an."
|
||||
|
||||
#: includes/class-m365-login-admin.php:321
|
||||
#: includes/class-m365-login-admin.php:388
|
||||
msgid "Connected"
|
||||
msgstr "Verbunden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:321
|
||||
#: includes/class-m365-login-admin.php:388
|
||||
msgid "Setup incomplete"
|
||||
msgstr "Einrichtung unvollständig"
|
||||
|
||||
#: includes/class-m365-login-admin.php:329
|
||||
msgid "Connection"
|
||||
msgstr "Verbindung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:330
|
||||
msgid "Button"
|
||||
msgstr "Button"
|
||||
|
||||
#: includes/class-m365-login-admin.php:331
|
||||
msgid "Security"
|
||||
msgstr "Sicherheit"
|
||||
|
||||
#: includes/class-m365-login-admin.php:340
|
||||
#: includes/class-m365-login-admin.php:410
|
||||
msgid "Microsoft Entra ID app registration"
|
||||
msgstr "App-Registrierung in Microsoft Entra ID"
|
||||
|
||||
#: includes/class-m365-login-admin.php:341
|
||||
#: includes/class-m365-login-admin.php:411
|
||||
msgid "Enter the values from your app registration in the Microsoft Entra admin center."
|
||||
msgstr "Tragen Sie hier die Werte aus Ihrer App-Registrierung im Microsoft Entra Admin Center ein."
|
||||
|
||||
#: includes/class-m365-login-admin.php:344
|
||||
#: includes/class-m365-login-admin.php:414
|
||||
msgid "Directory (tenant) ID"
|
||||
msgstr "Verzeichnis-ID (Mandant/Tenant)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:347
|
||||
#: includes/class-m365-login-admin.php:417
|
||||
msgid "Test tenant"
|
||||
msgstr "Tenant testen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:349
|
||||
#: includes/class-m365-login-admin.php:419
|
||||
msgid "Recommended: the GUID of your tenant. Only sign-ins from this tenant are accepted. \"organizations\" allows any work or school account."
|
||||
msgstr "Empfohlen: die GUID Ihres Tenants. Dann werden nur Anmeldungen aus diesem Tenant akzeptiert. „organizations“ erlaubt beliebige Geschäfts-, Schul- oder Unikonten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:351
|
||||
#: includes/class-m365-login-admin.php:421
|
||||
msgid "Multi-tenant mode: accounts from any Microsoft tenant can sign in. Their \"email\" attribute is not verified, so the plugin matches on the user principal name (verified domain) only and ignores the e-mail claim unless Microsoft marks it as domain-verified. Use the e-mail domain allow-list on the Security tab, or better, pin your tenant GUID."
|
||||
msgstr "Multi-Tenant-Modus: Konten aus beliebigen Microsoft-Tenants können sich anmelden. Deren „email“-Attribut ist nicht verifiziert, deshalb ordnet das Plugin nur über den User Principal Name (verifizierte Domain) zu und ignoriert den E-Mail-Claim, sofern Microsoft ihn nicht als domain-verifiziert markiert. Nutze die Domain-Allowlist im Tab „Sicherheit“ oder besser: die Tenant-GUID eintragen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:357
|
||||
#: includes/class-m365-login-admin.php:427
|
||||
msgid "Application (client) ID"
|
||||
msgstr "Anwendungs-ID (Client)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:362
|
||||
#: includes/class-m365-login-admin.php:432
|
||||
msgid "How should WordPress authenticate to Microsoft?"
|
||||
msgstr "Wie soll sich WordPress bei Microsoft authentifizieren?"
|
||||
|
||||
#: includes/class-m365-login-admin.php:367 includes/class-m365-login-admin.php:384
|
||||
#: includes/class-m365-login-admin.php:437 includes/class-m365-login-admin.php:454
|
||||
msgid "Client secret"
|
||||
msgstr "Geheimer Clientschlüssel (Client Secret)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:368
|
||||
#: includes/class-m365-login-admin.php:438
|
||||
msgid "Quick to set up. A password-like value created in Entra ID that expires after 6–24 months and must be renewed."
|
||||
msgstr "Schnell eingerichtet. Ein passwortähnlicher Wert aus Entra ID, der nach 6–24 Monaten abläuft und erneuert werden muss."
|
||||
|
||||
#: includes/class-m365-login-admin.php:374
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
msgid "Certificate"
|
||||
msgstr "Zertifikat"
|
||||
|
||||
#: includes/class-m365-login-admin.php:374
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
msgid "Recommended"
|
||||
msgstr "Empfohlen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:375
|
||||
#: includes/class-m365-login-admin.php:445
|
||||
msgid "The private key never leaves this server; only the public certificate is uploaded to Entra ID. Generated here with one click, valid for 2 years."
|
||||
msgstr "Der private Schlüssel verlässt diesen Server nie; nur das öffentliche Zertifikat wird in Entra ID hochgeladen. Mit einem Klick hier erzeugt, 2 Jahre gültig."
|
||||
|
||||
#: includes/class-m365-login-admin.php:386
|
||||
#: includes/class-m365-login-admin.php:456
|
||||
msgid "•••••••••••• (stored, leave empty to keep)"
|
||||
msgstr "•••••••••••• (gespeichert – leer lassen, um zu behalten)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:386
|
||||
#: includes/class-m365-login-admin.php:456
|
||||
msgid "Paste the secret value"
|
||||
msgstr "Wert des Secrets einfügen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:387
|
||||
#: includes/class-m365-login-admin.php:457
|
||||
msgid "Show secret"
|
||||
msgstr "Secret anzeigen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:392
|
||||
#: includes/class-m365-login-admin.php:462
|
||||
msgid "Remove the stored secret"
|
||||
msgstr "Gespeichertes Secret entfernen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:395
|
||||
#: includes/class-m365-login-admin.php:465
|
||||
msgid "Stored encrypted (AES-256-GCM, key derived from your WordPress salts) and never displayed again. Client secrets expire – note the expiry date in Entra ID."
|
||||
msgstr "Wird verschlüsselt gespeichert (AES-256-GCM, Schlüssel aus den WordPress-Salts abgeleitet) und nie wieder angezeigt. Client Secrets laufen ab – Ablaufdatum in Entra ID notieren."
|
||||
|
||||
#: includes/class-m365-login-admin.php:399
|
||||
#: includes/class-m365-login-admin.php:469
|
||||
msgid "Step-by-step: create a client secret in Entra ID"
|
||||
msgstr "Schritt für Schritt: Client Secret in Entra ID erstellen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:402
|
||||
#: includes/class-m365-login-admin.php:472
|
||||
msgid "Open entra.microsoft.com and sign in with an account that has the \"Application Administrator\" or \"Global Administrator\" role."
|
||||
msgstr "entra.microsoft.com öffnen und mit einem Konto anmelden, das die Rolle „Anwendungsadministrator“ oder „Globaler Administrator“ hat."
|
||||
|
||||
#: includes/class-m365-login-admin.php:403
|
||||
#: includes/class-m365-login-admin.php:473
|
||||
msgid "Go to Identity → Applications → App registrations and open your app (or create it first, see the general guide in the sidebar)."
|
||||
msgstr "Zu Identität → Anwendungen → App-Registrierungen wechseln und die App öffnen (oder zuerst anlegen, siehe allgemeine Anleitung in der Seitenleiste)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:404
|
||||
#: includes/class-m365-login-admin.php:474
|
||||
msgid "In the left menu choose Certificates & secrets, then the tab Client secrets, and click New client secret."
|
||||
msgstr "Im linken Menü „Zertifikate & Geheimnisse“ wählen, dann den Reiter „Geheime Clientschlüssel“ und auf „Neuer geheimer Clientschlüssel“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:405
|
||||
#: includes/class-m365-login-admin.php:475
|
||||
msgid "Enter a description such as \"WordPress login\" and pick an expiry. Microsoft allows at most 24 months; put a reminder in your calendar two weeks before."
|
||||
msgstr "Eine Beschreibung wie „WordPress Login“ eingeben und eine Gültigkeit wählen. Microsoft erlaubt maximal 24 Monate; zwei Wochen vor Ablauf eine Kalender-Erinnerung setzen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:406
|
||||
#: includes/class-m365-login-admin.php:476
|
||||
msgid "Click Add. Copy the Value column immediately – it is shown only once. The Secret ID column is NOT what you need."
|
||||
msgstr "Auf „Hinzufügen“ klicken. Die Spalte „Wert“ sofort kopieren – sie wird nur einmal angezeigt. Die Spalte „Geheimnis-ID“ ist NICHT der gesuchte Wert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:407
|
||||
#: includes/class-m365-login-admin.php:477
|
||||
msgid "Paste the value into the Client secret field above and save this page."
|
||||
msgstr "Den Wert oben in das Feld „Geheimer Clientschlüssel“ einfügen und diese Seite speichern."
|
||||
|
||||
#: includes/class-m365-login-admin.php:409
|
||||
#: includes/class-m365-login-admin.php:479
|
||||
msgid "When the secret expires, sign-ins fail with \"Could not complete the sign-in with Microsoft\". Create a new secret, paste it here, save, then delete the old one in Entra ID."
|
||||
msgstr "Läuft das Secret ab, scheitern Anmeldungen mit „Die Anmeldung über Microsoft konnte nicht abgeschlossen werden“. Dann ein neues Secret erstellen, hier einfügen, speichern und das alte in Entra ID löschen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:422
|
||||
#: includes/class-m365-login-admin.php:492
|
||||
msgid "Expired"
|
||||
msgstr "Abgelaufen"
|
||||
|
||||
#. translators: %d: number of days
|
||||
#: includes/class-m365-login-admin.php:426
|
||||
#: includes/class-m365-login-admin.php:496
|
||||
msgid "Expires in %d days"
|
||||
msgstr "Läuft in %d Tagen ab"
|
||||
|
||||
#. translators: %d: number of days
|
||||
#: includes/class-m365-login-admin.php:429
|
||||
#: includes/class-m365-login-admin.php:499
|
||||
msgid "Valid"
|
||||
msgstr "Gültig"
|
||||
|
||||
#: includes/class-m365-login-admin.php:434
|
||||
#: includes/class-m365-login-admin.php:504
|
||||
msgid "Thumbprint (SHA-1)"
|
||||
msgstr "Fingerabdruck (SHA-1)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:436
|
||||
#: includes/class-m365-login-admin.php:506
|
||||
msgid "Subject"
|
||||
msgstr "Antragsteller"
|
||||
|
||||
#: includes/class-m365-login-admin.php:438
|
||||
#: includes/class-m365-login-admin.php:508
|
||||
msgid "Key size"
|
||||
msgstr "Schlüssellänge"
|
||||
|
||||
#: includes/class-m365-login-admin.php:440
|
||||
#: includes/class-m365-login-admin.php:510
|
||||
msgid "Valid until"
|
||||
msgstr "Gültig bis"
|
||||
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
#: includes/class-m365-login-admin.php:514
|
||||
msgid "Download certificate (.cer)"
|
||||
msgstr "Zertifikat herunterladen (.cer)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:445
|
||||
#: includes/class-m365-login-admin.php:515
|
||||
msgid "Generate new certificate"
|
||||
msgstr "Neues Zertifikat erzeugen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:448
|
||||
#: includes/class-m365-login-admin.php:518
|
||||
msgid "Remove certificate when saving"
|
||||
msgstr "Zertifikat beim Speichern entfernen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:452
|
||||
#: includes/class-m365-login-admin.php:522
|
||||
msgid "No certificate stored yet."
|
||||
msgstr "Noch kein Zertifikat gespeichert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:454
|
||||
#: includes/class-m365-login-admin.php:524
|
||||
msgid "Generate certificate"
|
||||
msgstr "Zertifikat erzeugen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:455
|
||||
#: includes/class-m365-login-admin.php:525
|
||||
msgid "3072-bit RSA, self-signed, valid for 2 years. The private key is stored encrypted and never shown or downloadable."
|
||||
msgstr "3072 Bit RSA, selbstsigniert, 2 Jahre gültig. Der private Schlüssel wird verschlüsselt gespeichert und nie angezeigt oder zum Download angeboten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:459
|
||||
#: includes/class-m365-login-admin.php:529
|
||||
msgid "Use your own certificate instead (paste PEM)"
|
||||
msgstr "Stattdessen eigenes Zertifikat verwenden (PEM einfügen)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:462
|
||||
#: includes/class-m365-login-admin.php:532
|
||||
msgid "Private key (PEM, unencrypted)"
|
||||
msgstr "Privater Schlüssel (PEM, unverschlüsselt)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:466
|
||||
#: includes/class-m365-login-admin.php:536
|
||||
msgid "Certificate (PEM)"
|
||||
msgstr "Zertifikat (PEM)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:468
|
||||
#: includes/class-m365-login-admin.php:538
|
||||
msgid "RSA, at least 2048 bits. The pair is validated and the key is encrypted when you save. Both fields stay empty afterwards."
|
||||
msgstr "RSA, mindestens 2048 Bit. Beim Speichern wird das Paar geprüft und der Schlüssel verschlüsselt. Beide Felder bleiben danach leer."
|
||||
|
||||
#: includes/class-m365-login-admin.php:474
|
||||
#: includes/class-m365-login-admin.php:544
|
||||
msgid "Step-by-step: register the certificate in Entra ID"
|
||||
msgstr "Schritt für Schritt: Zertifikat in Entra ID hinterlegen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:477
|
||||
#: includes/class-m365-login-admin.php:547
|
||||
msgid "Click Generate certificate above (or paste your own). Then click Download certificate (.cer) – the file contains only the public part."
|
||||
msgstr "Oben auf „Zertifikat erzeugen“ klicken (oder ein eigenes einfügen). Danach „Zertifikat herunterladen (.cer)“ – die Datei enthält nur den öffentlichen Teil."
|
||||
|
||||
#: includes/class-m365-login-admin.php:478
|
||||
#: includes/class-m365-login-admin.php:548
|
||||
msgid "Open entra.microsoft.com → Identity → Applications → App registrations and open your app."
|
||||
msgstr "entra.microsoft.com → Identität → Anwendungen → App-Registrierungen öffnen und die App auswählen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:479
|
||||
#: includes/class-m365-login-admin.php:549
|
||||
msgid "Choose Certificates & secrets in the left menu, then the tab Certificates, and click Upload certificate."
|
||||
msgstr "Im linken Menü „Zertifikate & Geheimnisse“ wählen, dann den Reiter „Zertifikate“ und auf „Zertifikat hochladen“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:480
|
||||
#: includes/class-m365-login-admin.php:550
|
||||
msgid "Select the downloaded .cer file, add a description such as \"WordPress login\" and click Add."
|
||||
msgstr "Die heruntergeladene .cer-Datei auswählen, eine Beschreibung wie „WordPress Login“ eingeben und auf „Hinzufügen“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:481
|
||||
#: includes/class-m365-login-admin.php:551
|
||||
msgid "Compare the thumbprint Entra ID shows with the thumbprint above – they must match exactly."
|
||||
msgstr "Den in Entra ID angezeigten Fingerabdruck mit dem Fingerabdruck oben vergleichen – beide müssen exakt übereinstimmen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:482
|
||||
#: includes/class-m365-login-admin.php:552
|
||||
msgid "Make sure Certificate is selected above and save this page. If a client secret was stored before, you may delete it in Entra ID now."
|
||||
msgstr "Sicherstellen, dass oben „Zertifikat“ ausgewählt ist, und diese Seite speichern. War vorher ein Client Secret gespeichert, kann es jetzt in Entra ID gelöscht werden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:484
|
||||
#: includes/class-m365-login-admin.php:554
|
||||
msgid "How it works: for every token request WordPress signs a short-lived JWT (client assertion) with the private key; Microsoft verifies it with the uploaded certificate. Nothing secret is ever transmitted."
|
||||
msgstr "So funktioniert es: Für jede Token-Anfrage signiert WordPress ein kurzlebiges JWT (Client Assertion) mit dem privaten Schlüssel; Microsoft prüft es mit dem hochgeladenen Zertifikat. Es wird nie ein Geheimnis übertragen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:485
|
||||
#: includes/class-m365-login-admin.php:555
|
||||
msgid "Before the certificate expires: generate a new one here, upload it to Entra ID (both may be registered at the same time), save, then remove the old one from Entra ID. Sign-ins keep working during the switch."
|
||||
msgstr "Vor Ablauf des Zertifikats: hier ein neues erzeugen, in Entra ID hochladen (beide dürfen gleichzeitig hinterlegt sein), speichern und danach das alte in Entra ID entfernen. Anmeldungen funktionieren während des Wechsels weiter."
|
||||
|
||||
#: includes/class-m365-login-admin.php:491
|
||||
#: includes/class-m365-login-admin.php:561
|
||||
msgid "Account prompt"
|
||||
msgstr "Kontoauswahl"
|
||||
|
||||
#: includes/class-m365-login-admin.php:493
|
||||
#: includes/class-m365-login-admin.php:563
|
||||
msgid "Always let the user pick an account (recommended)"
|
||||
msgstr "Benutzer wählt immer ein Konto aus (empfohlen)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:494
|
||||
#: includes/class-m365-login-admin.php:564
|
||||
msgid "Use the current Microsoft session if available"
|
||||
msgstr "Vorhandene Microsoft-Sitzung verwenden, falls vorhanden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:495
|
||||
#: includes/class-m365-login-admin.php:565
|
||||
msgid "Always require re-entering credentials"
|
||||
msgstr "Immer erneute Eingabe der Anmeldedaten verlangen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:504
|
||||
#: includes/class-m365-login-admin.php:574
|
||||
msgid "Appearance"
|
||||
msgstr "Darstellung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:507
|
||||
#: includes/class-m365-login-admin.php:577
|
||||
msgid "Live preview"
|
||||
msgstr "Live-Vorschau"
|
||||
|
||||
#: includes/class-m365-login-admin.php:521
|
||||
#: includes/class-m365-login-admin.php:591
|
||||
msgid "Button text"
|
||||
msgstr "Button-Text"
|
||||
|
||||
#: includes/class-m365-login-admin.php:525
|
||||
#: includes/class-m365-login-admin.php:595
|
||||
msgid "Divider text"
|
||||
msgstr "Trennlinien-Text"
|
||||
|
||||
#: includes/class-m365-login-admin.php:527
|
||||
#: includes/class-m365-login-admin.php:597
|
||||
msgid "Leave empty to hide the divider line."
|
||||
msgstr "Leer lassen, um die Trennlinie auszublenden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:532
|
||||
#: includes/class-m365-login-admin.php:602
|
||||
msgid "Icon"
|
||||
msgstr "Icon"
|
||||
|
||||
#: includes/class-m365-login-admin.php:535
|
||||
#: includes/class-m365-login-admin.php:605
|
||||
msgid "Show an icon on the button"
|
||||
msgstr "Icon auf dem Button anzeigen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:546
|
||||
#: includes/class-m365-login-admin.php:616
|
||||
msgid "Default: Microsoft logo"
|
||||
msgstr "Standard: Microsoft-Logo"
|
||||
|
||||
#: includes/class-m365-login-admin.php:548
|
||||
#: includes/class-m365-login-admin.php:618
|
||||
msgid "Choose from media library"
|
||||
msgstr "Aus Mediathek wählen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:549
|
||||
#: includes/class-m365-login-admin.php:619
|
||||
msgid "Use Microsoft logo"
|
||||
msgstr "Microsoft-Logo verwenden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:551
|
||||
#: includes/class-m365-login-admin.php:621
|
||||
msgid "PNG, SVG, JPG or WebP. Square images (e.g. 64×64 px) work best."
|
||||
msgstr "PNG, SVG, JPG oder WebP. Quadratische Bilder (z. B. 64×64 px) eignen sich am besten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:559
|
||||
#: includes/class-m365-login-admin.php:629
|
||||
msgid "Background"
|
||||
msgstr "Hintergrund"
|
||||
|
||||
#: includes/class-m365-login-admin.php:560
|
||||
#: includes/class-m365-login-admin.php:630
|
||||
msgid "Background (hover)"
|
||||
msgstr "Hintergrund (Hover)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:561
|
||||
#: includes/class-m365-login-admin.php:631
|
||||
msgid "Text colour"
|
||||
msgstr "Textfarbe"
|
||||
|
||||
#: includes/class-m365-login-admin.php:562
|
||||
#: includes/class-m365-login-admin.php:632
|
||||
msgid "Border"
|
||||
msgstr "Rahmen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:575
|
||||
#: includes/class-m365-login-admin.php:645
|
||||
msgid "Corner radius"
|
||||
msgstr "Eckenradius"
|
||||
|
||||
#: includes/class-m365-login-admin.php:579
|
||||
#: includes/class-m365-login-admin.php:649
|
||||
msgid "Position on the login page"
|
||||
msgstr "Position auf der Login-Seite"
|
||||
|
||||
#: includes/class-m365-login-admin.php:581
|
||||
#: includes/class-m365-login-admin.php:651
|
||||
msgid "Below the login form"
|
||||
msgstr "Unter dem Login-Formular"
|
||||
|
||||
#: includes/class-m365-login-admin.php:582
|
||||
#: includes/class-m365-login-admin.php:652
|
||||
msgid "Above the login form"
|
||||
msgstr "Über dem Login-Formular"
|
||||
|
||||
#: includes/class-m365-login-admin.php:588
|
||||
#: includes/class-m365-login-admin.php:658
|
||||
msgid "Quick presets"
|
||||
msgstr "Schnellauswahl"
|
||||
|
||||
#: includes/class-m365-login-admin.php:589
|
||||
#: includes/class-m365-login-admin.php:659
|
||||
msgid "Microsoft dark"
|
||||
msgstr "Microsoft dunkel"
|
||||
|
||||
#: includes/class-m365-login-admin.php:590
|
||||
#: includes/class-m365-login-admin.php:660
|
||||
msgid "Microsoft light"
|
||||
msgstr "Microsoft hell"
|
||||
|
||||
#: includes/class-m365-login-admin.php:591
|
||||
#: includes/class-m365-login-admin.php:661
|
||||
msgid "Azure blue"
|
||||
msgstr "Azure-Blau"
|
||||
|
||||
#: includes/class-m365-login-admin.php:592
|
||||
#: includes/class-m365-login-admin.php:662
|
||||
msgid "WordPress blue"
|
||||
msgstr "WordPress-Blau"
|
||||
|
||||
#: includes/class-m365-login-admin.php:596
|
||||
#: includes/class-m365-login-admin.php:666
|
||||
msgid "Custom login page"
|
||||
msgstr "Eigene Login-Seite"
|
||||
|
||||
#: includes/class-m365-login-admin.php:597
|
||||
#: includes/class-m365-login-admin.php:667
|
||||
msgid "Using your own login page instead of wp-login.php? Tell the plugin where it is so error messages, the fallback link and the post-logout redirect point there."
|
||||
msgstr "Eigene Login-Seite statt wp-login.php? Hier eintragen, damit Fehlermeldungen, der Fallback-Link und die Weiterleitung nach dem Abmelden dorthin zeigen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:600
|
||||
#: includes/class-m365-login-admin.php:670
|
||||
msgid "URL of your login page"
|
||||
msgstr "URL der Login-Seite"
|
||||
|
||||
#: includes/class-m365-login-admin.php:602
|
||||
#: includes/class-m365-login-admin.php:672
|
||||
msgid "Must be on this site. Leave empty to use wp-login.php."
|
||||
msgstr "Muss auf dieser Website liegen. Leer lassen, um wp-login.php zu verwenden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:608
|
||||
#: includes/class-m365-login-admin.php:678
|
||||
msgid "Add the button to every wp_login_form() form automatically"
|
||||
msgstr "Button automatisch in jedes wp_login_form()-Formular einfügen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:609
|
||||
#: includes/class-m365-login-admin.php:679
|
||||
msgid "Covers themes and plugins that use the WordPress login form function. Page-builder widgets need the shortcode or the template function below."
|
||||
msgstr "Deckt Themes und Plugins ab, die die WordPress-Login-Formularfunktion verwenden. Page-Builder-Widgets benötigen den Shortcode oder die Template-Funktion unten."
|
||||
|
||||
#: includes/class-m365-login-admin.php:614
|
||||
#: includes/class-m365-login-admin.php:684
|
||||
msgid "Manual placement"
|
||||
msgstr "Manuelle Platzierung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:615
|
||||
#: includes/class-m365-login-admin.php:685
|
||||
msgid "Shortcode (block editor, page builders):"
|
||||
msgstr "Shortcode (Block-Editor, Page Builder):"
|
||||
|
||||
#: includes/class-m365-login-admin.php:617
|
||||
#: includes/class-m365-login-admin.php:687
|
||||
msgid "Template function (theme files):"
|
||||
msgstr "Template-Funktion (Theme-Dateien):"
|
||||
|
||||
#: includes/class-m365-login-admin.php:619
|
||||
#: includes/class-m365-login-admin.php:689
|
||||
msgid "Both show the error messages of the last attempt; use m365_login_messages() to place them separately."
|
||||
msgstr "Beide zeigen die Fehlermeldungen des letzten Versuchs; mit m365_login_messages() lassen sie sich separat platzieren."
|
||||
|
||||
#: includes/class-m365-login-admin.php:627
|
||||
#: includes/class-m365-login-admin.php:697
|
||||
msgid "User matching & hardening"
|
||||
msgstr "Benutzerzuordnung & Härtung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:628
|
||||
#: includes/class-m365-login-admin.php:698
|
||||
msgid "Users are never created automatically. A Microsoft sign-in only succeeds when a WordPress user with the same e-mail address already exists."
|
||||
msgstr "Benutzer werden nie automatisch angelegt. Eine Microsoft-Anmeldung gelingt nur, wenn bereits ein WordPress-Benutzer mit derselben E-Mail-Adresse existiert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:633
|
||||
#: includes/class-m365-login-admin.php:703
|
||||
msgid "Bind WordPress accounts to the Microsoft object ID"
|
||||
msgstr "WordPress-Konten an die Microsoft-Objekt-ID binden"
|
||||
|
||||
#: includes/class-m365-login-admin.php:634
|
||||
#: includes/class-m365-login-admin.php:704
|
||||
msgid "On first sign-in the immutable Microsoft object ID is stored with the user. Later sign-ins with the same e-mail but a different Microsoft identity are rejected. Strongly recommended."
|
||||
msgstr "Bei der ersten Anmeldung wird die unveränderliche Microsoft-Objekt-ID am Benutzer gespeichert. Spätere Anmeldungen mit gleicher E-Mail, aber anderer Microsoft-Identität werden abgelehnt. Dringend empfohlen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:641
|
||||
#: includes/class-m365-login-admin.php:711
|
||||
msgid "Fall back to the user principal name (UPN)"
|
||||
msgstr "Auf den User Principal Name (UPN) zurückgreifen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:642
|
||||
#: includes/class-m365-login-admin.php:712
|
||||
msgid "If the token contains no \"email\" claim, use the UPN (e.g. jane@contoso.com) when it is a valid e-mail address. Usually required for work accounts."
|
||||
msgstr "Enthält das Token keinen „email“-Claim, wird der UPN (z. B. jane@contoso.com) verwendet, sofern er eine gültige E-Mail-Adresse ist. Für Geschäftskonten meist erforderlich."
|
||||
|
||||
#: includes/class-m365-login-admin.php:649
|
||||
#: includes/class-m365-login-admin.php:719
|
||||
msgid "Keep users signed in (\"Remember me\")"
|
||||
msgstr "Benutzer angemeldet lassen („Angemeldet bleiben“)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:650
|
||||
#: includes/class-m365-login-admin.php:720
|
||||
msgid "Issues a 14-day WordPress session instead of a browser session."
|
||||
msgstr "Erstellt eine 14-tägige WordPress-Sitzung statt einer Browser-Sitzung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:655
|
||||
#: includes/class-m365-login-admin.php:725
|
||||
msgid "Allowed e-mail domains (optional)"
|
||||
msgstr "Erlaubte E-Mail-Domains (optional)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:657
|
||||
#: includes/class-m365-login-admin.php:727
|
||||
msgid "One or more domains separated by commas or new lines. Leave empty to allow any domain of your tenant."
|
||||
msgstr "Eine oder mehrere Domains, getrennt durch Kommas oder Zeilenumbrüche. Leer lassen, um alle Domains des Tenants zuzulassen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:662
|
||||
#: includes/class-m365-login-admin.php:732
|
||||
msgid "Allowed Entra groups (optional)"
|
||||
msgstr "Erlaubte Entra-Gruppen (optional)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:663
|
||||
#: includes/class-m365-login-admin.php:733
|
||||
msgid "Only members of at least one of these groups may sign in. Leave empty to allow every matched user. Nested memberships count."
|
||||
msgstr "Nur Mitglieder mindestens einer dieser Gruppen dürfen sich anmelden. Leer lassen, um alle zugeordneten Benutzer zuzulassen. Verschachtelte Mitgliedschaften zählen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:666
|
||||
#: includes/class-m365-login-admin.php:736
|
||||
msgid "Search groups"
|
||||
msgstr "Gruppen suchen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:668
|
||||
#: includes/class-m365-login-admin.php:738
|
||||
msgid "Type a group name or paste an object ID…"
|
||||
msgstr "Gruppenname eingeben oder Objekt-ID einfügen …"
|
||||
|
||||
#: includes/class-m365-login-admin.php:669
|
||||
#: includes/class-m365-login-admin.php:739
|
||||
msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:674
|
||||
#: includes/class-m365-login-admin.php:744
|
||||
msgid "Needs the application permission \"GroupMember.Read.All\" with admin consent. Without it you can still paste group object IDs."
|
||||
msgstr "Benötigt die Anwendungsberechtigung „GroupMember.Read.All“ mit Administratorzustimmung. Ohne sie können Gruppen-Objekt-IDs trotzdem eingefügt werden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:680
|
||||
#: includes/class-m365-login-admin.php:750
|
||||
msgid "Selected groups"
|
||||
msgstr "Ausgewählte Gruppen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:681
|
||||
#: includes/class-m365-login-admin.php:751
|
||||
msgid "No groups selected – every matched user may sign in."
|
||||
msgstr "Keine Gruppen ausgewählt – jeder zugeordnete Benutzer darf sich anmelden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:691
|
||||
#: includes/class-m365-login-admin.php:761
|
||||
msgid "Membership is read from the \"groups\" claim of the ID token when present; otherwise the plugin asks Microsoft Graph (application permission \"User.Read.All\" or \"Directory.Read.All\"). If neither works, the sign-in is refused."
|
||||
msgstr "Die Mitgliedschaft wird aus dem „groups“-Claim des ID-Tokens gelesen, falls vorhanden; andernfalls fragt das Plugin Microsoft Graph (Anwendungsberechtigung „User.Read.All“ oder „Directory.Read.All“). Funktioniert beides nicht, wird die Anmeldung abgelehnt."
|
||||
|
||||
#: includes/class-m365-login-admin.php:696
|
||||
#: includes/class-m365-login-admin.php:766
|
||||
msgid "Button-only mode"
|
||||
msgstr "Nur-Button-Modus"
|
||||
|
||||
#: includes/class-m365-login-admin.php:697
|
||||
#: includes/class-m365-login-admin.php:767
|
||||
msgid "Hides the username/password fields (on wp-login.php and in wp_login_form() forms) and refuses every interactive password sign-in on the site, including custom login forms. Application passwords, REST, XML-RPC and WP-CLI are not affected."
|
||||
msgstr "Blendet die Benutzername/Passwort-Felder aus (auf wp-login.php und in wp_login_form()-Formularen) und lehnt jede interaktive Passwort-Anmeldung auf der Website ab, auch in eigenen Login-Formularen. Anwendungspasswörter, REST, XML-RPC und WP-CLI sind nicht betroffen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:702
|
||||
#: includes/class-m365-login-admin.php:772
|
||||
msgid "Show only the Microsoft button on the login page"
|
||||
msgstr "Auf der Login-Seite nur den Microsoft-Button anzeigen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:703
|
||||
#: includes/class-m365-login-admin.php:773
|
||||
msgid "Becomes active once the connection is configured. Make sure your own account can sign in via Microsoft before enabling this."
|
||||
msgstr "Wird aktiv, sobald die Verbindung eingerichtet ist. Vor dem Aktivieren sicherstellen, dass das eigene Konto sich per Microsoft anmelden kann."
|
||||
|
||||
#: includes/class-m365-login-admin.php:708
|
||||
#: includes/class-m365-login-admin.php:778
|
||||
msgid "Fallback link (keep it secret)"
|
||||
msgstr "Fallback-Link (geheim halten)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:709
|
||||
#: includes/class-m365-login-admin.php:779
|
||||
msgid "Opening this link shows the password form again in that browser for 30 minutes and allows password sign-in there. Bookmark it somewhere safe – it is your way back in if Microsoft sign-in ever breaks."
|
||||
msgstr "Wer diesen Link öffnet, sieht in diesem Browser 30 Minuten lang wieder das Passwort-Formular und kann sich dort mit Passwort anmelden. Sicher aufbewahren – er ist der Weg zurück, falls die Microsoft-Anmeldung einmal nicht funktioniert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:717
|
||||
#: includes/class-m365-login-admin.php:787
|
||||
msgid "Generate a new key when saving"
|
||||
msgstr "Beim Speichern einen neuen Schlüssel erzeugen"
|
||||
|
||||
#: includes/class-m365-login-admin.php:720
|
||||
#: includes/class-m365-login-admin.php:790
|
||||
msgid "A key is generated automatically the first time you save these settings."
|
||||
msgstr "Beim ersten Speichern dieser Einstellungen wird automatisch ein Schlüssel erzeugt."
|
||||
|
||||
#. translators: %s: PHP constant
|
||||
#: includes/class-m365-login-admin.php:726
|
||||
#: includes/class-m365-login-admin.php:796
|
||||
msgid "Emergency switch: add %s to wp-config.php to disable button-only mode entirely."
|
||||
msgstr "Notschalter: %s in die wp-config.php eintragen, um den Nur-Button-Modus vollständig abzuschalten."
|
||||
|
||||
#. translators: %s: PHP constant
|
||||
#: includes/class-m365-login-admin.php:735
|
||||
#: includes/class-m365-login-admin.php:805
|
||||
msgid "What the plugin does to keep sign-ins safe"
|
||||
msgstr "So schützt das Plugin die Anmeldung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:737
|
||||
#: includes/class-m365-login-admin.php:807
|
||||
msgid "OpenID Connect authorization code flow with PKCE (S256) – no tokens ever pass through the browser."
|
||||
msgstr "OpenID Connect Authorization Code Flow mit PKCE (S256) – Tokens laufen nie durch den Browser."
|
||||
|
||||
#: includes/class-m365-login-admin.php:738
|
||||
#: includes/class-m365-login-admin.php:808
|
||||
msgid "Single-use state and nonce values bound to the browser via an HttpOnly cookie (CSRF and replay protection)."
|
||||
msgstr "Einmalige State- und Nonce-Werte, per HttpOnly-Cookie an den Browser gebunden (CSRF- und Replay-Schutz)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:739
|
||||
#: includes/class-m365-login-admin.php:809
|
||||
msgid "ID token signature verified against Microsoft’s published signing keys; issuer, audience, tenant, expiry and nonce are checked."
|
||||
msgstr "Signatur des ID-Tokens wird gegen Microsofts veröffentlichte Signaturschlüssel geprüft; Issuer, Audience, Tenant, Ablauf und Nonce werden kontrolliert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:740
|
||||
#: includes/class-m365-login-admin.php:810
|
||||
msgid "Client secret encrypted at rest; no accounts are created, no passwords are changed."
|
||||
msgstr "Client Secret verschlüsselt gespeichert; es werden keine Konten angelegt und keine Passwörter geändert."
|
||||
|
||||
#: includes/class-m365-login-admin.php:746
|
||||
#: includes/class-m365-login-admin.php:816
|
||||
msgid "Save changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
#: includes/class-m365-login-admin.php:752
|
||||
#: includes/class-m365-login-admin.php:822
|
||||
msgid "Redirect URI"
|
||||
msgstr "Umleitungs-URI (Redirect URI)"
|
||||
|
||||
#: includes/class-m365-login-admin.php:753
|
||||
#: includes/class-m365-login-admin.php:823
|
||||
msgid "Register this URI in your app registration under Authentication → Web → Redirect URIs:"
|
||||
msgstr "Diese URI in der App-Registrierung unter Authentifizierung → Web → Umleitungs-URIs eintragen:"
|
||||
|
||||
#: includes/class-m365-login-admin.php:759
|
||||
#: includes/class-m365-login-admin.php:829
|
||||
msgid "Plain permalinks are active, so the callback uses a query string. If you enable pretty permalinks later, the redirect URI changes and must be updated in Entra ID."
|
||||
msgstr "Einfache Permalinks sind aktiv, daher verwendet der Callback einen Query-String. Werden später sprechende Permalinks aktiviert, ändert sich die Umleitungs-URI und muss in Entra ID angepasst werden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:762
|
||||
#: includes/class-m365-login-admin.php:832
|
||||
msgid "Your site does not use HTTPS. Microsoft only accepts http:// redirect URIs for localhost; production sites must use HTTPS."
|
||||
msgstr "Diese Website nutzt kein HTTPS. Microsoft akzeptiert http://-Umleitungs-URIs nur für localhost; produktive Websites benötigen HTTPS."
|
||||
|
||||
#: includes/class-m365-login-admin.php:767
|
||||
#: includes/class-m365-login-admin.php:837
|
||||
msgid "Setup guide: app registration"
|
||||
msgstr "Anleitung: App-Registrierung"
|
||||
|
||||
#: includes/class-m365-login-admin.php:769
|
||||
#: includes/class-m365-login-admin.php:839
|
||||
msgid "Open entra.microsoft.com → Identity → Applications → App registrations → New registration."
|
||||
msgstr "entra.microsoft.com → Identität → Anwendungen → App-Registrierungen → Neue Registrierung öffnen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:770
|
||||
#: includes/class-m365-login-admin.php:840
|
||||
msgid "Name: e.g. \"WordPress login\". Supported account types: \"Accounts in this organizational directory only\" (single tenant)."
|
||||
msgstr "Name: z. B. „WordPress Login“. Unterstützte Kontotypen: „Nur Konten in diesem Organisationsverzeichnis“ (Single Tenant)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:771
|
||||
#: includes/class-m365-login-admin.php:841
|
||||
msgid "Redirect URI: choose the platform Web and paste the URI shown above. Then click Register."
|
||||
msgstr "Umleitungs-URI: Plattform „Web“ wählen und die oben angezeigte URI einfügen. Dann auf „Registrieren“ klicken."
|
||||
|
||||
#: includes/class-m365-login-admin.php:772
|
||||
#: includes/class-m365-login-admin.php:842
|
||||
msgid "On the Overview page copy the Application (client) ID and the Directory (tenant) ID into the Connection tab."
|
||||
msgstr "Auf der Übersichtsseite die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant) in den Tab „Verbindung“ kopieren."
|
||||
|
||||
#: includes/class-m365-login-admin.php:773
|
||||
#: includes/class-m365-login-admin.php:843
|
||||
msgid "Authentication: leave \"ID tokens\" unchecked (the plugin uses the authorization code flow) and \"Allow public client flows\" on No."
|
||||
msgstr "Authentifizierung: „ID-Token“ nicht anhaken (das Plugin nutzt den Authorization Code Flow) und „Öffentliche Clientflows zulassen“ auf „Nein“ lassen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:774
|
||||
#: includes/class-m365-login-admin.php:844
|
||||
msgid "Token configuration → Add optional claim → ID → tick \"email\" → Add. Confirm the API permission prompt."
|
||||
msgstr "Tokenkonfiguration → Optionalen Anspruch hinzufügen → ID → „email“ anhaken → Hinzufügen. Die Rückfrage zur API-Berechtigung bestätigen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:775
|
||||
#: includes/class-m365-login-admin.php:845
|
||||
msgid "Pick the authentication method on the Connection tab and follow its step-by-step guide (client secret or certificate)."
|
||||
msgstr "Im Tab „Verbindung“ die Authentifizierungsmethode wählen und der zugehörigen Schritt-für-Schritt-Anleitung folgen (Client Secret oder Zertifikat)."
|
||||
|
||||
#: includes/class-m365-login-admin.php:776
|
||||
#: includes/class-m365-login-admin.php:846
|
||||
msgid "Optional: restrict who may use the app under Enterprise applications → your app → Properties → \"Assignment required\" = Yes, then assign users/groups."
|
||||
msgstr "Optional: Unter Unternehmensanwendungen → Ihre App → Eigenschaften → „Zuweisung erforderlich“ = Ja einschränken, wer die App nutzen darf, und dann Benutzer/Gruppen zuweisen."
|
||||
|
||||
#: includes/class-m365-login-admin.php:778
|
||||
#: includes/class-m365-login-admin.php:848
|
||||
msgid "Required API permission: openid, profile, email (delegated) – granted by default."
|
||||
msgstr "Benötigte API-Berechtigungen: openid, profile, email (delegiert) – standardmäßig vorhanden."
|
||||
|
||||
#: includes/class-m365-login-admin.php:779
|
||||
#: includes/class-m365-login-admin.php:849
|
||||
msgid "Optional, for group restrictions: application permissions GroupMember.Read.All and User.Read.All (Microsoft Graph) with admin consent."
|
||||
msgstr "Optional für Gruppen-Beschränkungen: Anwendungsberechtigungen GroupMember.Read.All und User.Read.All (Microsoft Graph) mit Administratorzustimmung."
|
||||
|
||||
#: includes/class-m365-login-admin.php:783
|
||||
#: includes/class-m365-login-admin.php:853
|
||||
msgid "Shortcode"
|
||||
msgstr "Shortcode"
|
||||
|
||||
#: includes/class-m365-login-admin.php:784
|
||||
#: includes/class-m365-login-admin.php:854
|
||||
msgid "Place the button on a custom login page:"
|
||||
msgstr "Button auf einer eigenen Login-Seite platzieren:"
|
||||
|
||||
#: includes/class-m365-login-admin.php:786
|
||||
#: includes/class-m365-login-admin.php:856
|
||||
msgid "More options on the Button tab under \"Custom login page\"."
|
||||
msgstr "Weitere Optionen im Tab „Button“ unter „Eigene Login-Seite“."
|
||||
|
||||
|
|
|
|||
|
|
@ -14,709 +14,709 @@ msgstr ""
|
|||
"X-Generator: bin/make-pot.py\n"
|
||||
"X-Domain: m365-login\n"
|
||||
|
||||
#: includes/class-m365-login-admin.php:79 includes/class-m365-login-admin.php:80 includes/class-m365-login-admin.php:315
|
||||
#: includes/class-m365-login-admin.php:81 includes/class-m365-login-admin.php:82 includes/class-m365-login-admin.php:93 includes/class-m365-login-admin.php:382
|
||||
msgid "M365 Login"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:118
|
||||
#: includes/class-m365-login-admin.php:108
|
||||
msgid "Connection"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:109
|
||||
msgid "Button"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:110
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:185
|
||||
msgid "M365 Login is active but not connected to Microsoft Entra ID yet."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:120
|
||||
#: includes/class-m365-login-admin.php:187
|
||||
msgid "Open the settings"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:150
|
||||
#: includes/class-m365-login-admin.php:217
|
||||
msgid "Choose button icon"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:151
|
||||
#: includes/class-m365-login-admin.php:218
|
||||
msgid "Use this icon"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:152
|
||||
#: includes/class-m365-login-admin.php:219
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:153 includes/class-m365-login-admin.php:435 includes/class-m365-login-admin.php:713 includes/class-m365-login-admin.php:756
|
||||
#: includes/class-m365-login-admin.php:220 includes/class-m365-login-admin.php:505 includes/class-m365-login-admin.php:783 includes/class-m365-login-admin.php:826
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:154
|
||||
#: includes/class-m365-login-admin.php:221
|
||||
msgid "Testing…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:155
|
||||
#: includes/class-m365-login-admin.php:222
|
||||
msgid "The tenant could not be reached. Check the tenant ID and the server’s outgoing connections."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:156
|
||||
#: includes/class-m365-login-admin.php:223
|
||||
msgid "No groups found."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:157
|
||||
#: includes/class-m365-login-admin.php:224
|
||||
msgid "Searching…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:158
|
||||
#: includes/class-m365-login-admin.php:225
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:159 includes/class-m365-login-admin.php:687
|
||||
#: includes/class-m365-login-admin.php:226 includes/class-m365-login-admin.php:757
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:160 includes/class-m365-login-admin.php:218 includes/class-m365-login-admin.php:672
|
||||
#: includes/class-m365-login-admin.php:227 includes/class-m365-login-admin.php:285 includes/class-m365-login-admin.php:742
|
||||
msgid "Save the connection settings first, then search for groups."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:161
|
||||
#: includes/class-m365-login-admin.php:228
|
||||
msgid "Generate a new fallback key on save? The old link stops working."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:162
|
||||
#: includes/class-m365-login-admin.php:229
|
||||
msgid "Generating a 3072-bit key pair, this takes a moment…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:163
|
||||
#: includes/class-m365-login-admin.php:230
|
||||
msgid "Replace the stored certificate? Sign-in stops working until the new certificate is uploaded to Entra ID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:164
|
||||
#: includes/class-m365-login-admin.php:231
|
||||
msgid "Remove the stored certificate when saving? Sign-in with the certificate method stops working."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:176 includes/class-m365-login-admin.php:215 includes/class-m365-login-admin.php:241 includes/class-m365-login-admin.php:273
|
||||
#: includes/class-m365-login-admin.php:243 includes/class-m365-login-admin.php:282 includes/class-m365-login-admin.php:308 includes/class-m365-login-admin.php:340
|
||||
msgid "You are not allowed to do this."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:181
|
||||
#: includes/class-m365-login-admin.php:248
|
||||
msgid "Please enter a valid tenant ID first."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d: HTTP status code
|
||||
#: includes/class-m365-login-admin.php:195
|
||||
#: includes/class-m365-login-admin.php:262
|
||||
msgid "Microsoft answered with HTTP %d. Is the tenant ID correct?"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d: HTTP status code
|
||||
#: includes/class-m365-login-admin.php:204
|
||||
#: includes/class-m365-login-admin.php:271
|
||||
msgid "Tenant reachable. The OpenID configuration was loaded successfully."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:227
|
||||
#: includes/class-m365-login-admin.php:294
|
||||
msgid "Microsoft Graph refused the request. Grant the application permission \"GroupMember.Read.All\" (or \"Directory.Read.All\") with admin consent in Entra ID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:245
|
||||
#: includes/class-m365-login-admin.php:312
|
||||
msgid "Unknown operation."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:262
|
||||
#: includes/class-m365-login-admin.php:329
|
||||
msgid "Certificate generated and stored. Download the .cer file and upload it in Entra ID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:279
|
||||
#: includes/class-m365-login-admin.php:346
|
||||
msgid "No certificate is stored."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:297
|
||||
#: includes/class-m365-login-admin.php:364
|
||||
msgid "You are not allowed to access this page."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:316
|
||||
#: includes/class-m365-login-admin.php:383
|
||||
msgid "Let existing users sign in with their Microsoft 365 / Entra ID account."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:321
|
||||
#: includes/class-m365-login-admin.php:388
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:321
|
||||
#: includes/class-m365-login-admin.php:388
|
||||
msgid "Setup incomplete"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:329
|
||||
msgid "Connection"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:330
|
||||
msgid "Button"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:331
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:340
|
||||
#: includes/class-m365-login-admin.php:410
|
||||
msgid "Microsoft Entra ID app registration"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:341
|
||||
#: includes/class-m365-login-admin.php:411
|
||||
msgid "Enter the values from your app registration in the Microsoft Entra admin center."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:344
|
||||
#: includes/class-m365-login-admin.php:414
|
||||
msgid "Directory (tenant) ID"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:347
|
||||
#: includes/class-m365-login-admin.php:417
|
||||
msgid "Test tenant"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:349
|
||||
#: includes/class-m365-login-admin.php:419
|
||||
msgid "Recommended: the GUID of your tenant. Only sign-ins from this tenant are accepted. \"organizations\" allows any work or school account."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:351
|
||||
#: includes/class-m365-login-admin.php:421
|
||||
msgid "Multi-tenant mode: accounts from any Microsoft tenant can sign in. Their \"email\" attribute is not verified, so the plugin matches on the user principal name (verified domain) only and ignores the e-mail claim unless Microsoft marks it as domain-verified. Use the e-mail domain allow-list on the Security tab, or better, pin your tenant GUID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:357
|
||||
#: includes/class-m365-login-admin.php:427
|
||||
msgid "Application (client) ID"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:362
|
||||
#: includes/class-m365-login-admin.php:432
|
||||
msgid "How should WordPress authenticate to Microsoft?"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:367 includes/class-m365-login-admin.php:384
|
||||
#: includes/class-m365-login-admin.php:437 includes/class-m365-login-admin.php:454
|
||||
msgid "Client secret"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:368
|
||||
#: includes/class-m365-login-admin.php:438
|
||||
msgid "Quick to set up. A password-like value created in Entra ID that expires after 6–24 months and must be renewed."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:374
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
msgid "Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:374
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
msgid "Recommended"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:375
|
||||
#: includes/class-m365-login-admin.php:445
|
||||
msgid "The private key never leaves this server; only the public certificate is uploaded to Entra ID. Generated here with one click, valid for 2 years."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:386
|
||||
#: includes/class-m365-login-admin.php:456
|
||||
msgid "•••••••••••• (stored, leave empty to keep)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:386
|
||||
#: includes/class-m365-login-admin.php:456
|
||||
msgid "Paste the secret value"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:387
|
||||
#: includes/class-m365-login-admin.php:457
|
||||
msgid "Show secret"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:392
|
||||
#: includes/class-m365-login-admin.php:462
|
||||
msgid "Remove the stored secret"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:395
|
||||
#: includes/class-m365-login-admin.php:465
|
||||
msgid "Stored encrypted (AES-256-GCM, key derived from your WordPress salts) and never displayed again. Client secrets expire – note the expiry date in Entra ID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:399
|
||||
#: includes/class-m365-login-admin.php:469
|
||||
msgid "Step-by-step: create a client secret in Entra ID"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:402
|
||||
#: includes/class-m365-login-admin.php:472
|
||||
msgid "Open entra.microsoft.com and sign in with an account that has the \"Application Administrator\" or \"Global Administrator\" role."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:403
|
||||
#: includes/class-m365-login-admin.php:473
|
||||
msgid "Go to Identity → Applications → App registrations and open your app (or create it first, see the general guide in the sidebar)."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:404
|
||||
#: includes/class-m365-login-admin.php:474
|
||||
msgid "In the left menu choose Certificates & secrets, then the tab Client secrets, and click New client secret."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:405
|
||||
#: includes/class-m365-login-admin.php:475
|
||||
msgid "Enter a description such as \"WordPress login\" and pick an expiry. Microsoft allows at most 24 months; put a reminder in your calendar two weeks before."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:406
|
||||
#: includes/class-m365-login-admin.php:476
|
||||
msgid "Click Add. Copy the Value column immediately – it is shown only once. The Secret ID column is NOT what you need."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:407
|
||||
#: includes/class-m365-login-admin.php:477
|
||||
msgid "Paste the value into the Client secret field above and save this page."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:409
|
||||
#: includes/class-m365-login-admin.php:479
|
||||
msgid "When the secret expires, sign-ins fail with \"Could not complete the sign-in with Microsoft\". Create a new secret, paste it here, save, then delete the old one in Entra ID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:422
|
||||
#: includes/class-m365-login-admin.php:492
|
||||
msgid "Expired"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d: number of days
|
||||
#: includes/class-m365-login-admin.php:426
|
||||
#: includes/class-m365-login-admin.php:496
|
||||
msgid "Expires in %d days"
|
||||
msgstr ""
|
||||
|
||||
#. translators: %d: number of days
|
||||
#: includes/class-m365-login-admin.php:429
|
||||
#: includes/class-m365-login-admin.php:499
|
||||
msgid "Valid"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:434
|
||||
#: includes/class-m365-login-admin.php:504
|
||||
msgid "Thumbprint (SHA-1)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:436
|
||||
#: includes/class-m365-login-admin.php:506
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:438
|
||||
#: includes/class-m365-login-admin.php:508
|
||||
msgid "Key size"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:440
|
||||
#: includes/class-m365-login-admin.php:510
|
||||
msgid "Valid until"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:444
|
||||
#: includes/class-m365-login-admin.php:514
|
||||
msgid "Download certificate (.cer)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:445
|
||||
#: includes/class-m365-login-admin.php:515
|
||||
msgid "Generate new certificate"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:448
|
||||
#: includes/class-m365-login-admin.php:518
|
||||
msgid "Remove certificate when saving"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:452
|
||||
#: includes/class-m365-login-admin.php:522
|
||||
msgid "No certificate stored yet."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:454
|
||||
#: includes/class-m365-login-admin.php:524
|
||||
msgid "Generate certificate"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:455
|
||||
#: includes/class-m365-login-admin.php:525
|
||||
msgid "3072-bit RSA, self-signed, valid for 2 years. The private key is stored encrypted and never shown or downloadable."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:459
|
||||
#: includes/class-m365-login-admin.php:529
|
||||
msgid "Use your own certificate instead (paste PEM)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:462
|
||||
#: includes/class-m365-login-admin.php:532
|
||||
msgid "Private key (PEM, unencrypted)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:466
|
||||
#: includes/class-m365-login-admin.php:536
|
||||
msgid "Certificate (PEM)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:468
|
||||
#: includes/class-m365-login-admin.php:538
|
||||
msgid "RSA, at least 2048 bits. The pair is validated and the key is encrypted when you save. Both fields stay empty afterwards."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:474
|
||||
#: includes/class-m365-login-admin.php:544
|
||||
msgid "Step-by-step: register the certificate in Entra ID"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:477
|
||||
#: includes/class-m365-login-admin.php:547
|
||||
msgid "Click Generate certificate above (or paste your own). Then click Download certificate (.cer) – the file contains only the public part."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:478
|
||||
#: includes/class-m365-login-admin.php:548
|
||||
msgid "Open entra.microsoft.com → Identity → Applications → App registrations and open your app."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:479
|
||||
#: includes/class-m365-login-admin.php:549
|
||||
msgid "Choose Certificates & secrets in the left menu, then the tab Certificates, and click Upload certificate."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:480
|
||||
#: includes/class-m365-login-admin.php:550
|
||||
msgid "Select the downloaded .cer file, add a description such as \"WordPress login\" and click Add."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:481
|
||||
#: includes/class-m365-login-admin.php:551
|
||||
msgid "Compare the thumbprint Entra ID shows with the thumbprint above – they must match exactly."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:482
|
||||
#: includes/class-m365-login-admin.php:552
|
||||
msgid "Make sure Certificate is selected above and save this page. If a client secret was stored before, you may delete it in Entra ID now."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:484
|
||||
#: includes/class-m365-login-admin.php:554
|
||||
msgid "How it works: for every token request WordPress signs a short-lived JWT (client assertion) with the private key; Microsoft verifies it with the uploaded certificate. Nothing secret is ever transmitted."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:485
|
||||
#: includes/class-m365-login-admin.php:555
|
||||
msgid "Before the certificate expires: generate a new one here, upload it to Entra ID (both may be registered at the same time), save, then remove the old one from Entra ID. Sign-ins keep working during the switch."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:491
|
||||
#: includes/class-m365-login-admin.php:561
|
||||
msgid "Account prompt"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:493
|
||||
#: includes/class-m365-login-admin.php:563
|
||||
msgid "Always let the user pick an account (recommended)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:494
|
||||
#: includes/class-m365-login-admin.php:564
|
||||
msgid "Use the current Microsoft session if available"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:495
|
||||
#: includes/class-m365-login-admin.php:565
|
||||
msgid "Always require re-entering credentials"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:504
|
||||
#: includes/class-m365-login-admin.php:574
|
||||
msgid "Appearance"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:507
|
||||
#: includes/class-m365-login-admin.php:577
|
||||
msgid "Live preview"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:521
|
||||
#: includes/class-m365-login-admin.php:591
|
||||
msgid "Button text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:525
|
||||
#: includes/class-m365-login-admin.php:595
|
||||
msgid "Divider text"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:527
|
||||
#: includes/class-m365-login-admin.php:597
|
||||
msgid "Leave empty to hide the divider line."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:532
|
||||
#: includes/class-m365-login-admin.php:602
|
||||
msgid "Icon"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:535
|
||||
#: includes/class-m365-login-admin.php:605
|
||||
msgid "Show an icon on the button"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:546
|
||||
#: includes/class-m365-login-admin.php:616
|
||||
msgid "Default: Microsoft logo"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:548
|
||||
#: includes/class-m365-login-admin.php:618
|
||||
msgid "Choose from media library"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:549
|
||||
#: includes/class-m365-login-admin.php:619
|
||||
msgid "Use Microsoft logo"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:551
|
||||
#: includes/class-m365-login-admin.php:621
|
||||
msgid "PNG, SVG, JPG or WebP. Square images (e.g. 64×64 px) work best."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:559
|
||||
#: includes/class-m365-login-admin.php:629
|
||||
msgid "Background"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:560
|
||||
#: includes/class-m365-login-admin.php:630
|
||||
msgid "Background (hover)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:561
|
||||
#: includes/class-m365-login-admin.php:631
|
||||
msgid "Text colour"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:562
|
||||
#: includes/class-m365-login-admin.php:632
|
||||
msgid "Border"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:575
|
||||
#: includes/class-m365-login-admin.php:645
|
||||
msgid "Corner radius"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:579
|
||||
#: includes/class-m365-login-admin.php:649
|
||||
msgid "Position on the login page"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:581
|
||||
#: includes/class-m365-login-admin.php:651
|
||||
msgid "Below the login form"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:582
|
||||
#: includes/class-m365-login-admin.php:652
|
||||
msgid "Above the login form"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:588
|
||||
#: includes/class-m365-login-admin.php:658
|
||||
msgid "Quick presets"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:589
|
||||
#: includes/class-m365-login-admin.php:659
|
||||
msgid "Microsoft dark"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:590
|
||||
#: includes/class-m365-login-admin.php:660
|
||||
msgid "Microsoft light"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:591
|
||||
#: includes/class-m365-login-admin.php:661
|
||||
msgid "Azure blue"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:592
|
||||
#: includes/class-m365-login-admin.php:662
|
||||
msgid "WordPress blue"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:596
|
||||
#: includes/class-m365-login-admin.php:666
|
||||
msgid "Custom login page"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:597
|
||||
#: includes/class-m365-login-admin.php:667
|
||||
msgid "Using your own login page instead of wp-login.php? Tell the plugin where it is so error messages, the fallback link and the post-logout redirect point there."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:600
|
||||
#: includes/class-m365-login-admin.php:670
|
||||
msgid "URL of your login page"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:602
|
||||
#: includes/class-m365-login-admin.php:672
|
||||
msgid "Must be on this site. Leave empty to use wp-login.php."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:608
|
||||
#: includes/class-m365-login-admin.php:678
|
||||
msgid "Add the button to every wp_login_form() form automatically"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:609
|
||||
#: includes/class-m365-login-admin.php:679
|
||||
msgid "Covers themes and plugins that use the WordPress login form function. Page-builder widgets need the shortcode or the template function below."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:614
|
||||
#: includes/class-m365-login-admin.php:684
|
||||
msgid "Manual placement"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:615
|
||||
#: includes/class-m365-login-admin.php:685
|
||||
msgid "Shortcode (block editor, page builders):"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:617
|
||||
#: includes/class-m365-login-admin.php:687
|
||||
msgid "Template function (theme files):"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:619
|
||||
#: includes/class-m365-login-admin.php:689
|
||||
msgid "Both show the error messages of the last attempt; use m365_login_messages() to place them separately."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:627
|
||||
#: includes/class-m365-login-admin.php:697
|
||||
msgid "User matching & hardening"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:628
|
||||
#: includes/class-m365-login-admin.php:698
|
||||
msgid "Users are never created automatically. A Microsoft sign-in only succeeds when a WordPress user with the same e-mail address already exists."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:633
|
||||
#: includes/class-m365-login-admin.php:703
|
||||
msgid "Bind WordPress accounts to the Microsoft object ID"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:634
|
||||
#: includes/class-m365-login-admin.php:704
|
||||
msgid "On first sign-in the immutable Microsoft object ID is stored with the user. Later sign-ins with the same e-mail but a different Microsoft identity are rejected. Strongly recommended."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:641
|
||||
#: includes/class-m365-login-admin.php:711
|
||||
msgid "Fall back to the user principal name (UPN)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:642
|
||||
#: includes/class-m365-login-admin.php:712
|
||||
msgid "If the token contains no \"email\" claim, use the UPN (e.g. jane@contoso.com) when it is a valid e-mail address. Usually required for work accounts."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:649
|
||||
#: includes/class-m365-login-admin.php:719
|
||||
msgid "Keep users signed in (\"Remember me\")"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:650
|
||||
#: includes/class-m365-login-admin.php:720
|
||||
msgid "Issues a 14-day WordPress session instead of a browser session."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:655
|
||||
#: includes/class-m365-login-admin.php:725
|
||||
msgid "Allowed e-mail domains (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:657
|
||||
#: includes/class-m365-login-admin.php:727
|
||||
msgid "One or more domains separated by commas or new lines. Leave empty to allow any domain of your tenant."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:662
|
||||
#: includes/class-m365-login-admin.php:732
|
||||
msgid "Allowed Entra groups (optional)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:663
|
||||
#: includes/class-m365-login-admin.php:733
|
||||
msgid "Only members of at least one of these groups may sign in. Leave empty to allow every matched user. Nested memberships count."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:666
|
||||
#: includes/class-m365-login-admin.php:736
|
||||
msgid "Search groups"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:668
|
||||
#: includes/class-m365-login-admin.php:738
|
||||
msgid "Type a group name or paste an object ID…"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:669
|
||||
#: includes/class-m365-login-admin.php:739
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:674
|
||||
#: includes/class-m365-login-admin.php:744
|
||||
msgid "Needs the application permission \"GroupMember.Read.All\" with admin consent. Without it you can still paste group object IDs."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:680
|
||||
#: includes/class-m365-login-admin.php:750
|
||||
msgid "Selected groups"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:681
|
||||
#: includes/class-m365-login-admin.php:751
|
||||
msgid "No groups selected – every matched user may sign in."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:691
|
||||
#: includes/class-m365-login-admin.php:761
|
||||
msgid "Membership is read from the \"groups\" claim of the ID token when present; otherwise the plugin asks Microsoft Graph (application permission \"User.Read.All\" or \"Directory.Read.All\"). If neither works, the sign-in is refused."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:696
|
||||
#: includes/class-m365-login-admin.php:766
|
||||
msgid "Button-only mode"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:697
|
||||
#: includes/class-m365-login-admin.php:767
|
||||
msgid "Hides the username/password fields (on wp-login.php and in wp_login_form() forms) and refuses every interactive password sign-in on the site, including custom login forms. Application passwords, REST, XML-RPC and WP-CLI are not affected."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:702
|
||||
#: includes/class-m365-login-admin.php:772
|
||||
msgid "Show only the Microsoft button on the login page"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:703
|
||||
#: includes/class-m365-login-admin.php:773
|
||||
msgid "Becomes active once the connection is configured. Make sure your own account can sign in via Microsoft before enabling this."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:708
|
||||
#: includes/class-m365-login-admin.php:778
|
||||
msgid "Fallback link (keep it secret)"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:709
|
||||
#: includes/class-m365-login-admin.php:779
|
||||
msgid "Opening this link shows the password form again in that browser for 30 minutes and allows password sign-in there. Bookmark it somewhere safe – it is your way back in if Microsoft sign-in ever breaks."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:717
|
||||
#: includes/class-m365-login-admin.php:787
|
||||
msgid "Generate a new key when saving"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:720
|
||||
#: includes/class-m365-login-admin.php:790
|
||||
msgid "A key is generated automatically the first time you save these settings."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s: PHP constant
|
||||
#: includes/class-m365-login-admin.php:726
|
||||
#: includes/class-m365-login-admin.php:796
|
||||
msgid "Emergency switch: add %s to wp-config.php to disable button-only mode entirely."
|
||||
msgstr ""
|
||||
|
||||
#. translators: %s: PHP constant
|
||||
#: includes/class-m365-login-admin.php:735
|
||||
#: includes/class-m365-login-admin.php:805
|
||||
msgid "What the plugin does to keep sign-ins safe"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:737
|
||||
#: includes/class-m365-login-admin.php:807
|
||||
msgid "OpenID Connect authorization code flow with PKCE (S256) – no tokens ever pass through the browser."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:738
|
||||
#: includes/class-m365-login-admin.php:808
|
||||
msgid "Single-use state and nonce values bound to the browser via an HttpOnly cookie (CSRF and replay protection)."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:739
|
||||
#: includes/class-m365-login-admin.php:809
|
||||
msgid "ID token signature verified against Microsoft’s published signing keys; issuer, audience, tenant, expiry and nonce are checked."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:740
|
||||
#: includes/class-m365-login-admin.php:810
|
||||
msgid "Client secret encrypted at rest; no accounts are created, no passwords are changed."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:746
|
||||
#: includes/class-m365-login-admin.php:816
|
||||
msgid "Save changes"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:752
|
||||
#: includes/class-m365-login-admin.php:822
|
||||
msgid "Redirect URI"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:753
|
||||
#: includes/class-m365-login-admin.php:823
|
||||
msgid "Register this URI in your app registration under Authentication → Web → Redirect URIs:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:759
|
||||
#: includes/class-m365-login-admin.php:829
|
||||
msgid "Plain permalinks are active, so the callback uses a query string. If you enable pretty permalinks later, the redirect URI changes and must be updated in Entra ID."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:762
|
||||
#: includes/class-m365-login-admin.php:832
|
||||
msgid "Your site does not use HTTPS. Microsoft only accepts http:// redirect URIs for localhost; production sites must use HTTPS."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:767
|
||||
#: includes/class-m365-login-admin.php:837
|
||||
msgid "Setup guide: app registration"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:769
|
||||
#: includes/class-m365-login-admin.php:839
|
||||
msgid "Open entra.microsoft.com → Identity → Applications → App registrations → New registration."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:770
|
||||
#: includes/class-m365-login-admin.php:840
|
||||
msgid "Name: e.g. \"WordPress login\". Supported account types: \"Accounts in this organizational directory only\" (single tenant)."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:771
|
||||
#: includes/class-m365-login-admin.php:841
|
||||
msgid "Redirect URI: choose the platform Web and paste the URI shown above. Then click Register."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:772
|
||||
#: includes/class-m365-login-admin.php:842
|
||||
msgid "On the Overview page copy the Application (client) ID and the Directory (tenant) ID into the Connection tab."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:773
|
||||
#: includes/class-m365-login-admin.php:843
|
||||
msgid "Authentication: leave \"ID tokens\" unchecked (the plugin uses the authorization code flow) and \"Allow public client flows\" on No."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:774
|
||||
#: includes/class-m365-login-admin.php:844
|
||||
msgid "Token configuration → Add optional claim → ID → tick \"email\" → Add. Confirm the API permission prompt."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:775
|
||||
#: includes/class-m365-login-admin.php:845
|
||||
msgid "Pick the authentication method on the Connection tab and follow its step-by-step guide (client secret or certificate)."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:776
|
||||
#: includes/class-m365-login-admin.php:846
|
||||
msgid "Optional: restrict who may use the app under Enterprise applications → your app → Properties → \"Assignment required\" = Yes, then assign users/groups."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:778
|
||||
#: includes/class-m365-login-admin.php:848
|
||||
msgid "Required API permission: openid, profile, email (delegated) – granted by default."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:779
|
||||
#: includes/class-m365-login-admin.php:849
|
||||
msgid "Optional, for group restrictions: application permissions GroupMember.Read.All and User.Read.All (Microsoft Graph) with admin consent."
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:783
|
||||
#: includes/class-m365-login-admin.php:853
|
||||
msgid "Shortcode"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:784
|
||||
#: includes/class-m365-login-admin.php:854
|
||||
msgid "Place the button on a custom login page:"
|
||||
msgstr ""
|
||||
|
||||
#: includes/class-m365-login-admin.php:786
|
||||
#: includes/class-m365-login-admin.php:856
|
||||
msgid "More options on the Button tab under \"Custom login page\"."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ Microsoft terms and privacy: [Microsoft Services Agreement](https://www.microsof
|
|||
== Installation ==
|
||||
|
||||
1. Upload the plugin folder to `/wp-content/plugins/` or install it through the WordPress plugin screen, then activate it.
|
||||
2. Go to **Settings → M365 Login** and copy the **Redirect URI** shown in the sidebar.
|
||||
2. Open the new **M365 Login** menu entry and copy the **Redirect URI** shown in the sidebar.
|
||||
3. In the [Microsoft Entra admin center](https://entra.microsoft.com/) open **App registrations → New registration**. Choose *Accounts in this organizational directory only*, select the **Web** platform and paste the redirect URI.
|
||||
4. From the app's overview page copy the **Application (client) ID** and the **Directory (tenant) ID** into the plugin settings.
|
||||
5. Pick the authentication method: either generate a certificate in the plugin and upload the downloaded `.cer` under **Certificates & secrets → Certificates**, or create a client secret under **Certificates & secrets → Client secrets** and paste its *value*. Both methods have a step-by-step guide in the settings.
|
||||
|
|
@ -125,9 +125,9 @@ The settings, cached data and the per-user Microsoft object ID are removed.
|
|||
== Screenshots ==
|
||||
|
||||
1. The customised button on the WordPress login screen.
|
||||
2. Settings – Connection tab with redirect URI and tenant test.
|
||||
3. Settings – Button tab with live preview, colour pickers and icon picker.
|
||||
4. Settings – Security tab with the Entra group picker and button-only mode.
|
||||
2. M365 Login – Connection tab with redirect URI and tenant test.
|
||||
3. M365 Login – Button tab with live preview, colour pickers and icon picker.
|
||||
4. M365 Login – Security tab with the Entra group picker and button-only mode.
|
||||
5. Login screen in button-only mode.
|
||||
|
||||
== Changelog ==
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue