COMPAREX AG
InfoPath mit SharePoint Log ID: 5566

InfoPath mit SharePoint 2013 und Claims

Die fehlende Weiterentwicklung von InfoPath führt z.B. bei Nutzung des Webservices „GetUserProfileByName“ zur Fehlermeldungen (Log ID 5566): die Claims-Authentifizierung wird in SharePoint 2013 mit InfoPath nicht sauber unterstützt. Unser Autor bietet eine bereits in Kundenprojekten erfolgreich eingesetzte Lösung an.

Ein Blogbeitrag von Torsten Gladbach, seit 2006 zertifizierter SharePoint Consultant bei COMPAREX.

Wie bereits mein Kollege Jürgen Slaar in einem seiner letzten Blogartikel, Formulare mit SharePoint 2016: Was passiert mit InfoPath? Welche Alternativen gibt es?, beschrieben hat, ist InfoPath in SharePoint nach wie vor das gesetzte Tool für Formularentwicklung in diesem Umfeld. Neben InfoPath können verschiedene Drittanbieter-Tools ebenfalls genutzt werden. Doch noch immer ist InfoPath ein sehr leistungsfähiges Tool, das sich für die Formularerstellung sehr gut eignet.

Heute stelle ich Ihnen eine kleine Lösung vor, die ein bekanntes Problem zwischen InfoPath und SharePoint 2013 umgeht. Dabei handelt es sich um den Webservice Aufruf „GetUserProfileByName“.

InfoPath: Erstellen einer neuen Datenverbindung "GetUserByProfileName"
Abbildung 1: InfoPath: Erstellen einer neuen Datenverbindung "GetUserByProfileName"

Ausgangssituation: Formularfehler bei Datenverbindungen („GetUserProfileByName“)

In einem Kundenprojekt wurde eine SharePoint Migration von Version 2010 auf Version 2013 durchgeführt. Dabei wurde festgestellt, dass bei vielen Formularen, die im speziellen über eine Datenverbindung („GetUserProfileByName“) Benutzerdaten vom Benutzerprofildienst abfragen, beim Öffnen im Browser Fehler erzeugt werden.

InfoPath Webformular: Fehler beim Formular Log ID: 5566
Abbildung 2: InfoPath Webformular: Fehler beim Formular Log ID: 5566

Fehlersuche: Claims-Authentifizierung nicht akzeptiert

Eine Fehleranalyse auf Basis der Log ID 5566 sowie der generierten Korrelation ID hat die Erkenntnis gebracht, dass der WebService „GetUserProfileByName“ die in SharePoint 2013 standardmäßige Claims-Authentifizierung nicht unterstützt. Dies ist u.a. auf die Nicht-Weiterentwicklung von InfoPath zurückzuführen.

Lösungsbeschreibung: NTLM oder Secure Store?

Um das Problem zu umgehen, sind mehrere Lösungsszenarien möglich.

1) Erstellung einer Webanwendung in NTLM

Diese Methode kann ich jedoch nicht empfehlen, da u.a. die Office Web Apps mit dieser Authentifizierungsmethode nicht funktionieren. Hinzu kommt auch die generelle Problematik, dass gerade in bestehenden Strukturen eine solche Änderung des Authentifizierungsanbieters nicht vorhersehbare Probleme mit sich bringen kann.

2) Secure Store-Dienstanwendung

Im Folgenden zeige ich Ihnen in kurzen Schritten, wie der InfoPath Webservice „GetUserProfileByName“ trotz der Claims-Authentifizierung erfolgreich genutzt werden kann.

Innerhalb der Secure Store-Dienstanwendung (Foundation-, Standard- & Enterprise Feature) muss eine neue Zielanwendung angelegt und mit Anmeldedaten versehen werden.

Secure Store Zielanwendung erstellen
Abbildung 3: Secure Store Zielanwendung erstellen

Hierfür empfiehlt es sich, einen dedizierten Service Account zu verwenden.

Secure Store Anmeldedaten übergeben
Abbildung 4: Secure Store Anmeldedaten übergeben

Datenverbindung erstellen und in einer Datenverbindungsbibliothek bereitstellen

Nachdem im InfoPath Formular die Datenverbindung angelegt worden ist, muss diese exportiert werden.

Datenverbindungsdatei konvertieren
Abbildung 5: Datenverbindungsdatei konvertieren

Der Speicherort hierfür ist eine sogenannte Datenverbindungsbibliothek.

Datenverbindungsbibliothek
Abbildung 6: Datenverbindungsbibliothek

Im nächsten Schritt muss noch eine Änderung innerhalb dieser Datei gemacht werden.

Der Bereich <udc:Authentication> wird dahingehend angepasst, dass als AppID die im Secure Store erstellte Zielanwendung eingetragen wird. Der CredentialType lautet „NTLM“

Datenverbindungsdatei GetUserByProfileName
Abbildung 7: Datenverbindungsdatei GetUserByProfileName

Formularregeln: Übergabe der Datenverbindungsdatei im Formular

Zum Abschluss müssen noch innerhalb des Formulars sogenannte Form-Load-Regeln erstellt werden.

Wichtig hierbei ist, dass über die Funktion UserName() der AccountName der Datenverbindungsdatei übergeben werden muss.

Formularregeln
Abbildung 8: Formularregeln

Mit dieser Lösung schaffen Sie die Möglichkeit, den WebService „GetUserProfileByName“ auch trotz der Claims-Authentifizierung zu nutzen.

Diesen Artikel teilen

Artikel vom:
19.08.2015

geschrieben von:

TAGS:
InfoPath, SharePoint, Software

Thema:
 

Kommentare

  • Hans Markgraf kommentierte vor 1 Monat
    Sehr geehrter Herr Gldbach, In Zusammenhang mit InfoPath,,SharePoint und Datensicherheit las ich Ihren Artikel vom10.08.2015. Ich möchte ein Anmeldeformular einem definierten Teilnehmerkreis über einen Link zum Eintragen seiner Wünsche zur Verfügung stellen.. Die Reihenfolge der Rückmeldungen möchte Zeitgenau erfassen und dann in einer Excel-Tabelle auswerten. Von besonderer Bedeutung für uns ist hierbei die Datensicherheit. Ihrem Artikel entnehme ich ,dass diese nur mit einem erheblichen Mehraufwand gewährleistet ist. Ist meine Annahme richtig. Über eine Antwort würde ich sehr dankbar. Mit freundlichem Gruß Hans. Markgraf

Kommtar abgeben

© COMPAREX AG
Zurück nach oben