Sintomi:
Durante il tentativo di invio mail tramite SMTP autenticato, nel client di posta \ stampante \ scanner viene segnato l’errore
504 5.7.4 Unrecognized authentication type
Controllare i registri di accesso su:
Azure Active Directory – Log di accesso – Aggiungere i filtri per “App client” – Selezionare le app con autenticazione legacy.
I tentativi di accesso tramite app legacy che utilizzano autenticazione di base, registrano questi log di errore in Azure AD:
L’accesso viene bloccato dai criteri di sicurezza predefiniti applicati.
Soluzione:
Comprendere le differenze tra i metodi di autenticazione ed eventualmente disabilitare i criteri di sicurezza predefiniti (Security Defaults) implementando le policy di autenticazione (Authentication Policies) per gestire le eccezioni.
NOTA: I criteri di sicurezza predefiniti attivano automaticamente la Modern Auth e disabilitano la Basic Auth. Non sarà quindi attivabile tramite le authentication policies.
Basic Authentication
L’autenticazione di base utilizza richieste semplici di username e password per ogni interazione con le risorse di Exchange Online. Nessun altro requisito di accesso è richiesto. Se una connessione non è sicura (non crittografata), la password potrebbe essere intercettata da attacchi MITM e compromessa.
Modern Authentication
L’autenticazione moderna è basata utilizzando OAUTH 2.0 e ADAL (Active Directory Authentication Library) utilizzando token basati su autenticazione moderna. Le vecchie tenant di Microsoft 365 potrebbero avere la Modern Auth disabilitata, mentre le nuove tenant potrebbero averla abilitata di default. Possiamo controllarlo sulla nostra tenant con il seguente comando PowerShell Online:
Get-OrganizationConfig | Ft OAuth2ClientProfileEnabled
Ricapitolando, se dovete abilitare la Basic Auth per applicativi legacy che richiedono autenticazione con nome utente e password:
- Disabilitare i criteri per la sicurezza predefinita
- Creare le policy di autenticazione
- Applicare la policy di default
- Applicazione policy ai singoli utenti
- Abilitare SMTP autenticato sulle impostazioni dell’utente desiderato
- Creare la password per le APP per l’utente desiderato
- Autenticare gli applicativi legacy
- Test
1. Disabilitare i criteri per la sicurezza predefinita
Aprire l’interfaccia di amministrazione di Azure Active Directory e navigare su
Azure Active Directory – Proprietà – Gestisci le impostazioni predefinite per la sicurezza
2. Creare le policy di autenticazione
Di seguito gli esempi per la creazione di diverse policy:
Enable all BasicAuth
New-AuthenticationPolicy “Enable all BasicAuth” -AllowBasicAuthActiveSync -AllowBasicAuthAutodiscover -AllowBasicAuthImap -AllowBasicAuthMapi -AllowBasicAuthOfflineAddressBook -AllowBasicAuthOutlookService -AllowBasicAuthPop -AllowBasicAuthReportingWebServices -AllowBasicAuthRpc -AllowBasicAuthSmtp -AllowBasicAuthWebServices -AllowBasicAuthPowershell
Disable all BasicAuth
New-AuthenticationPolicy “Disable all BasicAuth”
Allow only BasicAuth PowerShell
New-AuthenticationPolicy “Allow only BasicAuth PowerShell” -AllowBasicAuthPowerShell
Allow only BasicAuth PowerShell, EWS
New-AuthenticationPolicy “Allow only BasicAuth PowerShell, EWS” -AllowBasicAuthWebServices -AllowBasicAuthPowerShell
Allow only BasicAuth SMTP
New-AuthenticationPolicy “Allow only BasicAuth SMTP” -AllowBasicAuthSMTP
Allow only BasicAuth EWS
New-AuthenticationPolicy “Allow only BasicAuth EWS” -AllowBasicAuthWebServices
Allow only BasicAuth SMTP, EWS
New-AuthenticationPolicy “Allow only BasicAuth SMTP, EWS” -AllowBasicAuthSMTP -AllowBasicAuthWebServices
Allow only BasicAuth IMAP
New-AuthenticationPolicy “Allow only BasicAuth IMAP” -AllowBasicAuthImap
Allow only BasicAuth SMTP, IMAP
New-AuthenticationPolicy “Allow only BasicAuth SMTP, IMAP” -AllowBasicAuthSMTP -AllowBasicAuthImap
3. Applicare la policy di default
Con il seguente comando si imposta la policy di default applicata per tutta l’organizzazione.
Nell’esempio seguente, si applica la “Disable all BasicAuth” creata in precedenza, imponendo quindi l’utilizzo della Modern Auth.
Set-OrganizationConfig -DefaultAuthenticationPolicy “Disable all BasicAuth”
4. Applicazione policy ai singoli utenti
Per gestire le eccezioni, i comandi seguenti ci tornano utili:
Controllare l’associazione delle policy agli utenti
Get-Recipient -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-User | Format-Table DisplayName, AuthenticationPolicy, Sts*
Applicare le policy agli utenti
Set-User -Identity [email protected] -AuthenticationPolicy “Allow only BasicAuth SMTP”
Rimuovere le policy agli utenti
Set-User -Identity [email protected] -AuthenticationPolicy $Null
L’impostazione delle policy di autenticazione degli utenti può impiegate anche 24 ore.
Per forzare l’applicazione della policy entro 30 minuti:
Set-User -Identity [email protected] -STSRefreshTokensValidFrom $([System.DateTime]::UtcNow)
5. Abilitare SMTP autenticato
Modificare le proprietà dell’utente dell’interfaccia di amministrazione di Office365 nella sezione
Posta – Gestire le applicazioni di posta elettronica
6. Creare la password per le APP
Loggarsi come utente finale all’interno di Office365
- Cliccare sul proprio nome in alto a destra e selezionare “Visualizza account”
- Cliccare sul menu di sinistra “Informazione di sicurezza”
- Aggiungere metodo di accesso
- Selezionare “Password dell’app” e generarla
NOTA: se l’opzione per creare la password per le app non è disponibile, va attivata la Multi Factor Authentication (MFA) dalla console di amministrazione di Office365
7. Autenticare gli applicativi legacy
Nel nostro caso, utilizzeremo SMTP autenticato via legacy authentication con la password per le app generata in precedenza, utilizzando l’utente alla quale abbiamo applicato la policy di autenticazione “Allow only BasicAuth SMTP”
Il client SMTP andrà configurato come segue:
- SMTP server: smtp.office365.com
- Crittografia: STARTTLS
- Porta: 587
- Nome utente: utente configurato con la policy Allow only BasicAuth SMTP
- Password: password per le app generata in precedenza
7. Test
Se testiamo l’invio mail con credenziali di un utente non all’interno della policy che consente l’invio SMTP basic, riceveremo questo messaggio:
Se invece testiamo l’invio mail con credenziali di un utente membro della policy Allow All Basic Auth, l’invio funzionerà correttamente.