Zum Hauptinhalt springen

SharePoint Aktionen in Benutzerkontext durchführen

Wenn Sie SharePoint Aktionen im Kontext des angemeldeten Benutzers (oder im Kontext der Person, die einen Prozess gestartet hat), können Sie in OnPremise Umgebungen eine SharePoint Provider Hosted App ausrollen. Diese muss als eine High-Trust App ausgerollt werden, um die Möglichkeit zu bieten sich im Kontext der verschiedenen Personen am SharePoint anzumelden. Dabei wird ein entsprechender Benutzertoken für die unterschiedlichen Personen über diese Provider Hosted App generiert. Folgende Schritte sind für das Rollout nötig:

SharePoint Client Registrieren

  • Öffnen Sie das SharePoint Web auf das zugegriffen werden soll in einem beliebigen Browser
  • Öffnen Sie die Url /_layouts/15/appregnew.aspx (sprich https://WEBURL/_layouts/15/appregnew.aspx)
  • Geben Sie als Client Id die von linqi genannte Client Id ein
  • Generieren Sie ein Client Secret
  • Geben Sie die als App Domain die Domain ein unter der Sie die Provider Hosted App hosten wollen (ohne https oder ähnliches)
  • Geben Sie als Redirect URI die App Domain mit https:// ein
  • Legen Sie die App Registrierung über Create an

SharePoint Client Berechtigen

  • Öffnen Sie das SharePoint Web auf das zugegriffen werden soll in einem beliebigen Browser
  • Öffnen Sie die Url /_layouts/15/appinv.aspx (sprich https://WEBURL/_layouts/15/appinv.aspx)
  • Nutzen Sie die genannte Client Id um die App über Lookup zu laden
  • Geben Sie als Permission Request XML folgendes an:
    <AppPermissionRequests>  
    <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
    </AppPermissionRequests>

IIS Anwendung ausrollen

  • Die IIS Anwendung können Sie z.B. auf den selben Server ausrollen aufdem auch linqi läuft
  • Es muss .Net Framework 4.8 installiert sein, sowie ASP für IIS
  • Legen Sie einen neuen Apppool (z.B. linqi SharePoint Auth) an
  • Legen Sie eine neue Seite (z.B. linqi SharePoint Auth) an die den Application Pool nutzt
  • Deaktivieren Sie Anonymous Auth für diese Seite, und aktivieren Sie Windows Auth für diese Seite
  • Kopieren Sie den Inhalt der Provider Hosted App welche Ihnen durch linqi bereitgestellt wurde in den Ordner der Seite
  • Passen Sie die web.config wie folgt an:
    • ClientSigningCertificatePath: Geben Sie hier den Pfad zu der PFX Datei an die für die High Trust Provider Hosted App im SharePoint registriert wurde
    • ClientSigningCertificatePassword: Geben Sie hier das verschlüsselte Passwort für die PFX Datei an. Um das Passwort zu verschlüsseln können Sie das linqi Encryption Tool nutzen welches durch den Installer mitgeliefert wird.
    • LdapDomain: Geben Sie hier die LDAP Domain ein welche genutzt wird um die Benutzerdaten zu laden mit denen der Zugriff auf Sharepoint läuft. Die Domain muss daher die selbe sein wie die, die SharePoint nutzt
    • LdapUsername: Geben Sie hier den Benutzername des Accounts an mit dem die lesenden Zugriffe auf das Active Directory erfolgen
    • LdapPassword: Geben hier das verschlüsselte Passwort für den Account an an mit dem die lesenden Zugriffe auf das Active Directory erfolgen

SharePoint App ausrollen

  • Fügen Sie die mitgelieferte SharePoint App im SharePoint Katalog ein
  • Installieren Sie die App in den SharePoint Webs auf die der Zugriff erfolgt

SharePoint Provider Hosted App in linqi konfigurieren

  • Öffnen Sie die appsettings.json Datei im linqi Ordner (z.B. C:\inetpub\wwwroot\linqi\appsettings.json)
  • Im Bereich "SharePoint" fügende Sie folgende Werte ein:
    "SharePointAuthProxy": "https://PROVIDER_HOSTED_APP_DOMAIN/?SPHostUrl={0}&SPLanguage=en-US&SPClientTag=0&SPProductNumber=16%2E0%2E10337%2E12109&userId={1}",
    "SharePointAuthProxyUsername": "PROVIDER_HOSTED_APP_BENUTZER_NAME",
    "SharePointAuthProxyPassword": "PROVIDER_HOSTED_APP_BENUTZER_PASSWORT"
  • Dabei ersetzen Sie die Werte wie folgt:
    • PROVIDER_HOSTED_APP_DOMAIN: Fügen Sie hier die Domain unter der die IIS Anwendung erreichbar ist
    • PROVIDER_HOSTED_APP_BENUTZER_NAME: Geben Sie hier den Namen des Benutzers an der für den Zugriff auf die Anwendung genutzt wird. Sie können die IIS Anwendung dabei so konfigurieren das nur dieser Benutzer Zugriff auf die Anwendung hat.
    • PROVIDER_HOSTED_APP_BENUTZER_PASSWORT: Geben Sie hier das verschlüsselte Passwort des Benutzers an der für den Zugriff auf die Anwendung genutzt wird.
  • Starten Sie die linqi Anwendung im IIS neu um die neue Konfiguration zu ziehen.
  • Anschließend können Sie in linqi bei SharePoint Verbindungen als Art der Authentifizierung Als angemeldeter Benutzer oder Als Prozessinitiator nutzen um die Aktionen im entsprechenden Kontext durchzuführen.