Molte aziende utilizzano Microsoft 365 (ex Office 365). Oltre a fornire l’accesso alle applicazioni Office, Microsoft offre una Active Directory basata su Azure, che consente agli utenti di accedere a servizi come Microsoft Sharepoint o OneDrive utilizzando un browser Web.
Tutti i servizi Microsoft utilizzano lo stesso Single Sign-On, basato sull’indirizzo e-mail. A partire da 4D v19 R6, 4D NetKit consente di aderire a questo concetto, permettendo agli utenti di accedere alla vostra applicazione utilizzando le loro credenziali aziendali abituali.
Oltre a consentire il Single Sign-On, permette di recuperare le informazioni dell’utente autenticato, come l’e-mail, il reparto e il numero di telefono. Se l’amministratore lo consente, è possibile recuperare tali informazioni anche sui colleghi della stessa azienda.
Vediamo come funziona.
Per prima cosa, per accedere alle informazioni di un utente, dovrete ottenere l’accesso a suo nome e utilizzare il comando New OAuth2 provider per creare il vostro provider 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)
Quando il provider OAuth2 è pronto, usare il comando New Office365 provider per istanziare un oggetto che gestirà l’accesso al vostro account Microsoft 365 attraverso l’API Microsoft Graph:
var $Office365 : cs.NetKit.Office365Provider
$Office365:=New Office365 provider($tokenProvider)
informazioni sull’utente
È possibile ottenere informazioni sull’utente come displayName, givenName e altro.
Se si è connessi in modalità Sign In, è possibile ottenere le informazioni sull’utente corrente:
$currentUser:=$Office365.user.getCurrent()
//$currentUser=
//{displayName:My Name,givenName:Name,mail:myname@mycompany.com,...}
Se appartenete all’account Azure AD “lavoro o scuola”, potete accedere alle informazioni di un utente specifico della vostra organizzazione:
$user:=$Office365.user.get("myname@mycompany.com")
oppure accedere all’elenco di tutti gli utenti dell’organizzazione:
$users:=$Office365.user.list()
Consultate la documentazione per maggiori dettagli e non esitate a condividere con noi la vostra esperienza sul forum 4D.