Muchas empresas utilizan Microsoft 365 (antiguo Office 365). Además de proporcionar acceso a las aplicaciones de Office, Microsoft ofrece un Directorio Activo basado en Azure, que permite a los usuarios iniciar sesión para acceder a servicios como Microsoft Sharepoint o OneDrive utilizando un navegador web.
Todos los servicios de Microsoft utilizan el mismo Single Sign-On, basado en la dirección de correo electrónico. A partir de 4D v19 R6, 4D NetKit le permite unirse a este concepto, permitiendo a los usuarios iniciar sesión en su aplicación utilizando sus credenciales habituales de la empresa.
Además de permitir el Single Sign-On, permitirá recuperar la información del usuario autentificado, como el correo electrónico, el departamento y el número de teléfono. Si el administrador lo permite, puede incluso recuperar estos detalles sobre los colegas de la misma empresa.
Veamos cómo funciona.
En primer lugar, para acceder a la información de un usuario, tendrá que obtener acceso en su nombre y utilizar el comando New OAuth2 provider para crear su proveedor OAuth2:
$param:=New object()
$param.name:="Microsoft"
$param.permission:="signedIn"
$param.clientId:="XXX"
$param.redirectURI:="http://127.0.0.1:50993/authorize/"
$param.scope:="https://graph.microsoft.com/.default"
// Create new OAuth2 object
$tokenProvider:=New OAuth2 provider($param)
Cuando su proveedor OAuth2 esté listo, utilice el comando New Office365 provider para instanciar un objeto que gestionará el acceso a su cuenta de Microsoft 365 a través de la API de Microsoft Graph:
var $Office365 : cs.NetKit.Office365Provider
$Office365:=New Office365 provider($tokenProvider)
información del usuario
Puedes obtener la información del usuario como displayName, givenName, y más.
Si está conectado en el modo de inicio de sesión, puede obtener la información del usuario actual:
$currentUser:=$Office365.user.getCurrent()
//$currentUser=
//{displayName:My Name,givenName:Name,mail:myname@mycompany.com,...}
Si perteneces a la cuenta «trabajo o escuela» de Azure AD, puedes acceder a la información de un usuario específico de tu organización:
$user:=$Office365.user.get("myname@mycompany.com")
o acceder a la lista de todos los usuarios de tu organización:
$users:=$Office365.user.list()
Consulte la documentación para más detalles, y no dude en compartir con nosotros su experiencia en el foro de 4D.