Viele Unternehmen nutzen Microsoft 365 (früher Office 365). Neben dem Zugriff auf Office-Anwendungen bietet Microsoft ein Azure-basiertes Active Directory an, mit dem sich Benutzer über einen Webbrowser für den Zugriff auf Dienste wie Microsoft Sharepoint oder OneDrive anmelden können.
Alle Microsoft-Dienste nutzen das gleiche Single Sign-On, das auf der E-Mail-Adresse basiert. Mit 4D v19 R6 können Sie sich mit 4D NetKit an diesem Konzept beteiligen, so dass sich Benutzer mit ihren üblichen Unternehmensdaten in Ihre Anwendung einloggen können.
Neben der Möglichkeit des Single Sign-On können auch Informationen über den authentifizierten Benutzer abgerufen werden, wie z. B. E-Mail, Abteilung und Telefonnummer. Wenn der Administrator dies erlaubt, können Sie sogar die Daten von Kollegen aus demselben Unternehmen abrufen.
Schauen wir uns an, wie es funktioniert.
Um auf die Daten eines Benutzers zuzugreifen, müssen Sie sich zunächst in dessen Namen Zugang verschaffen und mit dem New OAuth2 provider Befehl, um Ihren OAuth2 Provider zu erstellen:
$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)
Wenn Ihr OAuth2-Provider fertig ist, verwenden Sie den New Office365 provider um ein Objekt zu instanziieren, das den Zugriff auf Ihr Microsoft 365-Konto über die Microsoft Graph API verwaltet:
var $Office365 : cs.NetKit.Office365Provider
$Office365:=New Office365 provider($tokenProvider)
Benutzerinformationen
Sie können die Benutzerinformationen wie displayName, givenName und mehr abrufen.
Wenn Sie im Anmeldemodus verbunden sind, können Sie die aktuellen Benutzerinformationen abrufen:
$currentUser:=$Office365.user.getCurrent()
//$currentUser=
//{displayName:My Name,givenName:Name,mail:myname@mycompany.com,...}
Wenn Sie zu einem Azure AD „work or school“ Konto gehören, können Sie auf die Informationen eines bestimmten Benutzers Ihrer Organisation zugreifen:
$user:=$Office365.user.get("myname@mycompany.com")
oder auf die Liste aller Benutzer Ihrer Organisation zugreifen:
$users:=$Office365.user.list()
Weitere Details finden Sie in der Dokumentation, und zögern Sie nicht, uns Ihre Erfahrungen im 4D Forum mitzuteilen.