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

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.

Leave A Comment