Accesso 4D e Microsoft 365

Tradotto automaticamente da Deepl

Nella versione 4D v18 R6, 4D ha introdotto l’autenticazione OAuth 2.0 per accedere alle e-mail attraverso i trasportatori IMAP, SMTP o POP3. A partire da 4D v19 R3, 4D continua a implementare il protocollo OAuth 2.0 e fornisce un modo per richiedere facilmente programmando un token dalla piattaforma di identità Microsoft per connettersi all’API per Microsoft 365.

HDI OAUTH2 Microsoft

Prerequisiti

Prima di ottenere un token dalla piattaforma di identità Microsoft, il primo passo è registrare l’applicazione nel portale Azure. In questo modo si stabilisce una relazione di fiducia tra l’applicazione e la piattaforma di identità Microsoft. La fiducia è unidirezionale: l’applicazione si fida della piattaforma di identità Microsoft e non viceversa.

Questo tutorial di Microsoft è un’ottima risorsa per capire come registrare l’applicazione nel portale Azure.

La registrazione integra l’applicazione con la piattaforma di identità Microsoft e stabilisce le informazioni che utilizza per ottenere i token, tra cui:

  • un ID cliente: Un identificatore unico assegnato dalla piattaforma di identità Microsoft.
  • un URI/URL di reindirizzamento: Uno o più endpoint dove l’applicazione riceverà le risposte dalla piattaforma di identità Microsoft.
  • a Client Secret: una password o una coppia di chiavi pubbliche/private che l’applicazione utilizza per autenticarsi con la piattaforma di identità Microsoft. (richiesto solo quando si ottiene l’accesso a un servizio).

ottenere un token di accesso

I token di accesso emessi dalla piattaforma di identità Microsoft contengono informazioni che Microsoft Graph, l’API per Microsoft 365, utilizza per convalidare il chiamante e garantire che abbia le autorizzazioni adeguate per eseguire l’operazione richiesta.

Per ottenere il token, è sufficiente utilizzare il comando New OAuth2 provider con tutte le informazioni fornite durante la registrazione:

$param:=New object()
$param .name:="Microsoft"
$param .permission:="signedIn"
$param .clientId:="7008ebf5-xxxx-xxxx"
$param .redirectURI:="http://127.0.0.1:50993/"
$param .scope:="https://outlook.office.com/IMAP.AccessAsUser.All"
// Create new OAuth2 object
$oAuth2 :=New OAuth2 provider($param)
// Ask for a token
$token :=$oAuth2.getToken()
If ($token#Null)
// Using of the token to access emails over IMAP
$IMAPParameters :=New object
$IMAPParameters .authenticationMode:=IMAP authentication OAUTH2

// Token received from the server
$IMAPParameters .accessTokenOAuth2:=$token.token.access_token
// e-mail address of the user for whom the token was created
$IMAPParameters.user:=$user
$IMAPParameters .host:="Outlook.office365.com"
$IMAPTransporter :=IMAP New transporter($IMAPParameters)
$ status :=$IMAPTransporter .checkConnection()
If (Not($
status .success))
ALERT("Accesso negato al server IMAP")
End if
End if

Questo comando fa parte del nuovo componente 4D NetKit, i cui sorgenti e la cui documentazione sono disponibili su github.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.