Benutzerdaten aus DingTalk synchronisieren
DingTalkProfessional Edition+Einführung
Das Plugin DingTalk synchronisiert Benutzer und Abteilungen einer DingTalk-Organisation mit NocoBase. Es unterstützt eine manuelle Vollsynchronisation sowie inkrementelle Aktualisierungen über HTTP-Callback oder Stream-Verbindung.
Voraussetzungen
- Installieren und aktivieren Sie die Plugins DingTalk und Benutzerdatensynchronisation.
- Erstellen Sie in der DingTalk-Entwicklerkonsole eine unternehmensinterne Anwendung.
- Erteilen Sie die unten beschriebenen Kontaktberechtigungen und konfigurieren Sie den Datenberechtigungsbereich.
- Kopieren Sie Client ID und Client Secret. Weitere Informationen finden Sie unter Authentifizierung: DingTalk.
Kontaktberechtigungen und Datenberechtigungsbereich konfigurieren
Öffnen Sie in der DingTalk-Entwicklerkonsole die Berechtigungsverwaltung der Anwendung und erteilen Sie folgende Berechtigungen:
Konfigurieren Sie anschließend den Datenberechtigungsbereich der Anwendung so, dass alle zu synchronisierenden Abteilungen und Mitarbeiter enthalten sind. Für eine vollständige Organisationssynchronisation wählen Sie alle Mitarbeiter aus.
API-Berechtigungen bestimmen, welche Felder gelesen werden dürfen. Der Datenberechtigungsbereich bestimmt, welche Abteilungen und Mitarbeiter gelesen werden dürfen. Beides muss konfiguriert sein. Ereignisabonnements ersetzen die Leseberechtigungen nicht.
Wenn dieselbe Anwendung auch zur Anmeldung verwendet wird, erteilen Sie zusätzlich die unter Authentifizierung: DingTalk beschriebenen persönlichen Berechtigungen.
DingTalk-Synchronisationsquelle hinzufügen
Öffnen Sie Benutzer & Berechtigungen > Synchronisieren, klicken Sie auf Hinzufügen und wählen Sie DingTalk.
Speichern und aktivieren Sie die Quelle. Führen Sie anschließend über Synchronisieren zuerst eine Vollsynchronisation aus.
Ereignisempfangsmodus auswählen
Stream-Modus
Der Stream-Modus stellt vom NocoBase-Server aus eine dauerhafte Verbindung zu DingTalk her. Eine öffentliche Callback-URL, ein Token und ein EncodingAESKey sind nicht erforderlich.
- Wählen Sie in den Ereignisabonnement-Einstellungen von DingTalk den Stream-Modus.
- Abonnieren Sie die benötigten Benutzer- und Abteilungsereignisse.
- Wählen Sie in NocoBase den Stream-Modus, speichern und aktivieren Sie die Quelle.
Der Stream-Client wird beim Aktivieren der Quelle gestartet. Beim Aktualisieren, Deaktivieren oder Löschen wird die Verbindung entsprechend aktualisiert oder geschlossen.
Der NocoBase-Server muss ausgehende Verbindungen zu DingTalk herstellen können. Ein Reverse Proxy oder eine öffentliche eingehende Callback-Adresse ist nicht erforderlich.
HTTP-Callback
- Wählen Sie in NocoBase HTTP-Callback.
- Geben Sie Token und EncodingAESKey aus dem DingTalk-Ereignisabonnement ein.
- Speichern Sie die Quelle und kopieren Sie die erzeugte Ereignis-Callback-URL.
- Hinterlegen Sie diese URL in DingTalk und abonnieren Sie die Benutzer- und Abteilungsereignisse.
Die Callback-URL muss für DingTalk erreichbar sein. Verwenden Sie in Produktion HTTPS und stellen Sie sicher, dass der Reverse Proxy den Pfad unverändert weiterleitet.
Unterstützte inkrementelle Ereignisse
Synchronisierte Felder
Abteilungsfelder
Benutzerfelder
Abteilungsverantwortliche
NocoBase synchronisiert leader_in_dept für jede Abteilung getrennt. Ein Benutzer kann mehrere Abteilungen verantworten; eine verantwortete Abteilung muss nicht die Hauptabteilung sein. Wird die Kennzeichnung in DingTalk entfernt, entfernt die nächste Synchronisation sie auch in NocoBase. Manuelle Änderungen in NocoBase können überschrieben werden.
Vollständige und inkrementelle Synchronisation verwenden dieselbe Feldzuordnung. Profilbild, Position und Mitarbeiternummer werden derzeit nicht synchronisiert.
Fehlerbehebung
- Prüfen Sie bei leeren oder unvollständigen Ergebnissen die drei erforderlichen Leseberechtigungen und den Datenberechtigungsbereich.
- Prüfen Sie bei fehlender Mobilnummer oder E-Mail die Berechtigungen
fieldMobilebzw.fieldEmail. - Benutzer ohne das konfigurierte eindeutige Feld werden übersprungen.
- Suchen Sie für den Stream-Modus in den Anwendungsprotokollen nach
Dingtalk stream client starting,Dingtalk stream client startedoder Verbindungsfehlern. - Prüfen Sie beim HTTP-Callback die öffentliche Erreichbarkeit sowie Token und EncodingAESKey.
- Führen Sie nach Änderungen an Berechtigungen oder Datenbereich erneut eine Vollsynchronisation aus.

