Acceso a 4D y Microsoft 365

Traducido automáticamente de Deepl

En la versión 4D v18 R6, 4D introdujo la autenticación OAuth 2.0 para acceder a los correos electrónicos a través de los transportadores IMAP, SMTP o POP3. A partir de 4D v19 R3, 4D continúa implementando el protocolo OAuth 2.0 y proporciona una forma de solicitar fácilmente programando un token de la plataforma de identidad de Microsoft para conectarse a la API de Microsoft 365.

HDI OAUTH2 Microsoft

Requisitos previos

Antes de obtener un token de la plataforma de identidad de Microsoft, el primer paso es registrar tu aplicación en el portal de Azure. Esto establece una relación de confianza entre su aplicación y la plataforma de identidad de Microsoft. La confianza es unidireccional: su aplicación confía en la plataforma de identidad de Microsoft y no al revés.

Este tutorial de Microsoft es un gran recurso para entender cómo registrar su aplicación en el portal de Azure .

El registro integra su aplicación con la plataforma de identidad de Microsoft y establece la información que utiliza para obtener tokens, incluyendo

  • un ID de cliente: Un identificador único asignado por la plataforma de identidad de Microsoft.
  • una URI/URL de redirección: Uno o más puntos finales en los que su aplicación recibirá respuestas de la plataforma de identidad de Microsoft.
  • a Secreto del cliente: Una contraseña o un par de claves públicas/privadas que su aplicación utiliza para autenticarse con la plataforma de identidad de Microsoft. (sólo se requiere cuando se obtiene acceso para un servicio)

obtener un token de acceso

Los tokens de acceso emitidos por la plataforma de identidad de Microsoft contienen información que Microsoft Graph, la API de Microsoft 365, utiliza para validar a la persona que llama y asegurarse de que tiene los permisos adecuados para realizar la operación que solicita.

Para obtener su token, sólo tiene que utilizar el comando New OAuth2 provider con toda la información dada durante el registro:

$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("Acceso denegado al servidor IMAP")
End if
End if

Este comando forma parte del nuevo componente 4D NetKit, cuyas fuentes y documentación pueden encontrarse en github.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.