Synchronisierung von SharePoint-Profilen

Table of Contents

This post is also available in: English

KanBo für die Synchronisierung von SharePoint-Profilen können Sie Daten aus SharePoint-Profilen in KanBo zuordnen und synchronisieren. Die Synchronisierungskomponente für die Profilsynchronisierung wird separat auf Ihrer VM ausgeführt. Sie müssen es nicht als WSP auf Ihrem SharePoint installieren.

Die Komponente kann sowohl als eigenständige App (als geplante Aufgabe im Taskplaner) als auch in KanBo web.config ausgeführt werden.
In einem Szenario, in dem dieser Job als eigenständige App ausgeführt wird, haben Sie die volle Kontrolle über den Zeitpunkt des Starts der Anwendung und können das richtige Konto verwenden, um sie zu starten.

Voraussetzungen

  • SharePoint, das für MySites konfiguriert ist.
    MySites sollte in einer separaten Webanwendung ausgeführt werden, die für HTTPS konfiguriert ist und ein gültiges SSL-Zertifikat verwendet.
  • Benutzerprofile sollten bereits im Abschnitt „Über mich“ in SharePoint ausgefüllt sein.
  • Ein Zertifikat für die Komponente, das für die Kommunikation der Komponente mit KanBo verantwortlich ist.
  • Ihre KanBo sollte auf dem neuesten Stand sein.
    Wenden Sie sich an KanBo (support@kanboapp.com), um weitere Informationen zu Ihrer Version zu erhalten und wie
    KanBo kann aktualisiert werden.

Konfiguration für den Start von Console Job Host Runner als eigenständige App

Sie können Job Host als eigenständige App auf Ihrer virtuellen Maschine konfigurieren und starten.
Console Job Host Runner lässt
Sie synchronisieren Benutzerprofile mit SharePoint-Profilen, indem Sie den wiederkehrenden Start im Taskplaner konfigurieren.

Wenn Sie einen Console Job Host Runner als eigenständige App starten, können Sie auch sicher sein, dass nichts aufhört oder
Unterbrechen Sie die Ausführung Ihrer Aufgaben durch Ihre Anwendung.

1. Öffnen Sie das extrahierte KanBo .

2. Verschieben Sie DLL-Dateien aus Ordnern: KanBo. SharepointProfilesPlugin, KanBo. SyncJobPlugin, KanBo. ProfileSyncJob in KanBo. ConsoleJobHostRunner Ordner.

3. Verschieben Sie alle Dateien aus dem Papierkorb (der sich im Webordner befindet) nach KanBo. KonsoleJobHostRunner.

4. Fügen Sie KanBo hinzu KanBo. ConsoleJobHostRunner auf Ihrer C-Disk oder in ein bestimmtes Verzeichnis.

5. Generieren Sie ein Paar Zertifikate für die Kommunikation.

So geht's:

Gehen Sie zum IIS-Server-Manager, klicken Sie auf Ihren Server und wählen Sie Serverzertifikate. Wählen Sie im Menü auf der rechten Seite "Selbstsigniertes Zertifikat erstellen", wählen Sie einen Namen für Ihr Zertifikat und folgen Sie den nächsten Schritten, um es zu erstellen. Nachdem das Zertifikat erstellt wurde, speichern Sie es in einer Datei, indem Sie die folgenden Schritte ausführen:

  1. Auswählen -> Klicken Sie auf "Exportieren" -> Folgen Sie den Schritten, um es als .pfx-Datei an einem ausgewählten Ort zu speichern (wir werden den Speicherort später bei der Konfiguration der App verwenden)
  2. Auswählen -> Klicken Sie auf "Ansicht" -> Details -> In Datei kopieren -> Speichern Sie sie als .cer Datei am selben Ort wie die .pfx-Datei
  3. Installieren Sie das Zertifikat im CurrentUser-Speicher (Doppelklicken Sie darauf). Stellen Sie sicher, dass das Zertifikat in der persönlichen Struktur vorhanden ist, indem Sie Computerzertifikate verwalten (certlm) verwenden.

Wenn Sie kein selbstsigniertes Zertifikat erstellen möchten, können Sie dieses Handbuch verwenden, um Zertifikate mit Ihrer Unternehmenszertifizierungsstelle zu generieren -  Erstellen eines Paares von Authentifizierungszertifikaten in KanBo.

6. Gehen Sie zu Ihrem KanBo , öffnen Sie web.config und fügen Sie Informationen zum Zertifikat im Authentifizierungsbereich hinzu.

<provider id="app" type="AppSignedService" name="Some service">
        <signer type="X509SignerFromFile" file="C:\path to your certificate\certificate.cer" />
      </provider>

Sie können Fingerabdruck (Zertifikat aus dem Speicher) verwenden, anstatt auf ein Zertifikat aus der Datei zu verweisen.

<signer type="X509SignerFromStore" storeName="My" storeLocation="CurrentUser" key="Thumbprint" value="{Your Thumbprint}" /> 

7. Öffnen Sie das KanBo. ConsoleJobHostRunner.exe.config

8. Beginnen Sie mit der Bearbeitung. Geben Sie zunächst Ihre KanBo-Datenbankverbindungszeichenfolge ein (Sie können sie aus der KanBo web.config kopieren).KanBo

9. Erstellen Sie einen Job zum Ausführen der SP-Profilsynchronisierung im <Abschnitt Plugins> .

 <plugin alias="plugin-loader.directory" path="."></plugin>
<job-host name="job" options="log_time(debug) catch">
       <job name="spsync" />
      </job-host> 
      <job.profile-sync name="spsync" chunk="100" />

10. Konfigurieren Sie die<profiles-provider.sp> verwenden. Im ersten Teil passen Sie folgendes an - Sie können diese Werte aus KanBo web.config kopieren:

- sphost url – Ihre SharePoint-Websitesammlungsadresse (an der KanBo installiert ist),

- Client ID - die Client-ID-Nummer aus web.config,

- Aussteller-ID - Aussteller-ID-Nummer aus web.config,

- Pfad zum KanBo aus web.config,

- Passwort für das Zertifikat.

<profiles-provider.sp>
        <sp type="from-web-conf">
         <provider id="sp" type="Sharepoint" sphosturl="{SHAREPOINT ADDRESS}" clientid="{CLIENTID}" issuerid="{ISSUERID}">
        <!-- signer is described below, this one must contain a private key -->
 </provider>
  <signer type="X509SignerFromFile" file="{PATH TO CERTIFICATE}" key="{PASSWORD}"></signer>
 </sp></profiles-provider.sp>

Sie können Fingerabdruck (Zertifikat aus dem Speicher) verwenden, anstatt auf ein Zertifikat aus der Datei zu verweisen.

<signer type="X509SignerFromStore" storeName="My" storeLocation="Localstore" key="Thumbprint" value="‎{Your Thumbprint}" />

Sie können diesen Abschnitt auch so konfigurieren, dass der Auftrag von einem SharePoint Service-Konto ausgeführt wird.

Die Konfiguration sieht wie folgt aus. Passen Sie die folgenden Elemente an:

- Name des Dienstkontos

- Passwort für das Dienstkonto.

- SharePoint-URL-Adresse

    <profiles-provider.sp>
        <sp type="user" user="{SERVICE ACCOUNT NAME}" pass="{PASSWORD}" url="{SHAREPOINT URL}" />

11. Konfigurieren Sie den folgenden Zuordnungsabschnitt so, dass Ihre SharePoint-Profilinformationen aus ausgewählten Feldern in KanBo importiert werden.

 <mapping sp="SPS-Responsibility" kanbo="AskMeAbout" />
        <mapping sp="AboutMe" kanbo="AboutMe" type="html" />
        <mapping sp="WorkEmail" kanbo="Email" />
        <mapping sp="FirstName" kanbo="Name" />
        <mapping sp="LastName" kanbo="Surname" />
        <mapping sp="CellPhone" kanbo="Phone" />
        <mapping sp="PictureURL" kanbo="Picture" type="file" /> 
      </profiles-provider.sp>

12. Passen Sie den  AbschnittKanBo mit Ihren Zertifikatsinformationen an.

<kanbo-api.service 
    issuer="me"
    url="{KANBO ADDRESS}">
     <signer type="X509SignerFromFile" file="{PATH TO CERTIFICATE}" />
    </kanbo-api.service>

Um diesen Abschnitt anzupassen, können Sie Fingerabdruck (Zertifikat aus dem Speicher) verwenden, anstatt auf ein Zertifikat aus der Datei zu verweisen.

<kanbo-api.service issuer="me" 
url="{https://YOUR KANBO ADDRESS">
<signer type="X509SignerFromStore" 
storename="My" storelocation="CurrentUser" 
key="Thumbprint" value="‎{THUMBPRINT}" 
validonly="false"></signer>    
    </kanbo-api.service>

13. Jetzt können SieKanBo ausführen . ConsoleJobHostRunner.exe (führen Sie es als Administrator in CMD aus), um zu überprüfen, ob der Job korrekt läuft und keine Fehler auftreten (siehe KanBo.log im Ordner).



Erstellen einer Aufgabe im Taskplaner für die Synchronisierungskomponente  "SP-Profile"

13. Gehen Sie zum Taskplaner. Klicken Sie auf Aufgabe erstellen.

14. Legen Sie einen Namen fest, z. B. "Job Host".

Wählen Sie "Nur ausführen, wenn der Benutzer angemeldet ist oder nicht".

Speichern Sie diese Änderungen.

15. Gehen Sie zum Abschnitt Auslöser. Klicken Sie auf die Schaltfläche "Neu".

Wählen Sie "Täglich" und stellen Sie "Aufgabe alle 5 Minuten wiederholen" ein (oder eine höhere Anzahl von Minuten - je nachdem, wie effizient Ihr Job seine Aufgaben zum Importieren von AD-Benutzern ausführen soll).

Speichern Sie diese Änderungen.

16. Gehen Sie zum Abschnitt Aktionen.

Wählen Sie die Aktion "Programm starten".

Klicken Sie auf Browser und wählen Sie das KanBo aus. ConsoleJobHostRunner.exe.

Speichern Sie diese Änderungen.

17. Überprüfen Sie, ob die Aufgabe im Taskplaner ordnungsgemäß ausgeführt wird.



Konfigurieren der Synchronisierung von SharePoint-Profilen in KanBo web.config.

1. Kopieren Sie Dateien aus den folgenden Ordnern KanBo. SharepointProfilesPlugin, KanBo. SyncJobPlugin, KanBo. ProfileSyncJob, KanBo. JobHostPlugin in den Ordner Erweiterungen.

2. Öffnen Sie KanBo web.config.

3. Konfigurieren Sie den Job (Namen der Jobs) und wie oft er ausgeführt werden soll, im <Plugins-Bereich> der web.config)


Konfiguration eines Jobs:

- name - enthält den Namen für die Pipeline, er muss eindeutig sein
- background - definiert, ob die Pipeline im Hintergrund des Webservers ausgeführt werden soll, verwenden Sie dies nicht auf Console Runner
- options – deklariert die Pipeline, die beschreibt, wie der Job ausgeführt wird


Beispiele:
- 'bg repeat wait_after(1s) catch timeout(5s) log_time(debug)' - weist den Job an, einen getrennten, wiederholten Job auszuführen, der 1s wartet, nachdem er abgeschlossen ist, alle Fehler werden abgefangen, so dass er nach einem Fehler nicht stoppt, lassen Sie ihn 5s lang laufen und protokollieren, ob er abgeschlossen ist
- 'repeat catch wait_after(1s) timeout(1m) log_time(debug)' - weist den Job an, einen wiederholten Job auszuführen, alle Fehler werden abgefangen, so dass er nach einem Fehler nicht stoppt, 1s warten, wenn der Job erfolgreich abgeschlossen wurde, ihn 5s laufen lassen und protokollieren, wenn er abgeschlossen ist


Arten von Optionen:
- 'log_time(log_level)' - protokolliert den Schritt auf der rechten Seite, um zu protokollieren, wenn er erfolgreich abgeschlossen wurde
- Protokollebenen sind: 'debug', 'info', 'warn', 'error', 'fatal'
- 'timeout(time)' - weist den Schritt auf der rechten Seite an, mitten in der Verarbeitung zu stoppen, wenn er auftritt, und weist ihn an, die Pipeline auf der linken Seite zu verwerfen, bis sie von 'catch' abgefangen wird
- 'wait_before(Zeit)' - weist den Schritt auf der rechten Seite an, sofort zu warten, bevor er ausgeführt wird
- 'wait_after(Zeit)' - weist den Schritt auf der rechten Seite an, sofort nach dem Ausführen zu warten
- 'bg' - löst die Schritte auf der rechten Seite von der Pipeline und schließt sie sofort ab (verwenden Sie nicht 'repeat bg' - es werden so viele Pipelines wie möglich erzeugt)
- 'repeat' - weist die Pipeline auf der rechten Seite an, für immer zu wiederholen
- 'catch' - weist die Pipeline an, alle Fehler auf der rechten Seite der Pipeline abzufangen, wenn sie nicht festgelegt sind, wird jeder Fehler die gesamte Pipeline zum Absturz bringen

In unserem Szenario wird es sein:

<job-host
        name="SpJob"
        background="true"
        options="repeat wait_after(60s) log_time(debug) catch">
   <job name="SPsync" />
   </job-host> 
<job.profile-sync name="first" chunk="100" /> 

Konfigurieren Sie den folgenden Zuordnungsabschnitt so, dass Ihre SharePoint-Profilinformationen aus ausgewählten Feldern in KanBo importiert werden.

 <mapping sp="SPS-Responsibility" kanbo="AskMeAbout" />
        <mapping sp="AboutMe" kanbo="AboutMe" type="html" />
        <mapping sp="WorkEmail" kanbo="Email" />
        <mapping sp="FirstName" kanbo="Name" />
        <mapping sp="LastName" kanbo="Surname" />
        <mapping sp="CellPhone" kanbo="Phone" />
        <mapping sp="PictureURL" kanbo="Picture" type="file" /> 
      </profiles-provider.sp>


Fehlerbehebung

1) Ausstellung eines ungültigen Zertifikats

EXCEPTION: System.Exception: Failed getting file by url:
https://your mysites address/image.jpg ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)

Wenn dieser Fehler auftritt, überprüfen Sie, ob das Zertifikat für MySites gültig ist. Ist dies nicht der Fall, erwerben Sie ein neues Zertifikat, und fügen Sie es an die MySites-Website in IIS an.

2)

System.Exception: Failed getting file by url ---> Microsoft.SharePoint.Client.ServerException: Cannot open file "https://yoursharepoint mysites= address/User Photos/Profile Pictures/someimage.jpg".

Dieser Fehler bedeutet, dass die Komponente die falsche URL für MySites verwendet, um das Profilbild zu erfassen. In diesem Szenario sollten Sie die Konfiguration Zuordnungen in der Konfiguration der Komponente erweitern.

Dieser Fehler kann bedeuten, dass die Synchronisierung keine Verbindung zur SharePoint-URL herstellen konnte - das häufigste Problem ist, wenn die gespeicherten Bild-URLs keine gültigen Endpunkte sind ("Server/Benutzerfotos/Profilbilder/user_MThumb.jpg"
anstelle von 'http://mysite.example.com/User Fotos/Profilbildern/user_MThumb.jpg"). Sie können ''Knoten' zum 'PictureURL'-Mapping hinzufügen:
Dadurch werden URLs so umgeschrieben, dass sie den richtigen Server verwenden, bevor sie abgerufen werden.

<mapping sp="PictureURL" kanbo="Picture" type="file">
    <transform type="replace" from="^server" to="http://mysite.example.com" />
</mapping>

War dieser Beitrag hilfreich?

Bitte kontaktieren Sie uns, wenn Sie weitere Fragen haben.