SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Authentifizierung gegen die Datenbank über einen zentralen technischen User

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
13 Beiträge
wSharePointw erstellt 14 Mai 2013 22:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe ein Webpart entwickelt, welches über die Business Connectivity Services mit einem SQL Server kommuniziert.

Wenn sich nun ein User am SharePoint anmeldet, wird sein UserAccount zur Authentifizierung an der Datenbank verwendet. Da dies jedoch nicht gewünscht ist, um nicht jeden einzelnen Benutzer berechtigen zu müssen, möchte ich gerne einen zentralen technischen Account dafür nutzen. Über diesen Account soll dann immer eine Verbindung zur Datenbank hergestellt werden.

Das Problem ist nun, dass wir SharePoint Foundation verwenden und dort der Secure Store Service nicht zur Verfügung steht.

Kann mir jemand bei diesem Problem helfen und mir Lösungvorschläge bieten? Ich habe bereits gelesen, dass ich den Connector für die BCS zur Verbindung mit dem SQL Server selber schreiben muss, um dies mittels "RevertToSelf" zu realisieren. Gibt es noch andere Möglichkeiten? In den ConnectionString die Benutzerdaten in Klartext reinzuschreiben, kommt auch nicht in Frage.

Vielen lieben Dank im Voraus.

Liebe Grüße

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Mai 2013 08:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="wSharePointw"]um dies mittels "RevertToSelf" zu realisieren. [...] In den ConnectionString die Benutzerdaten in Klartext reinzuschreiben[/quote]

Im Grunde hast Du nur diese Möglichkeiten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
391 Beiträge
Frank Daske Als Antwort am 15 Mai 2013 10:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Im Falle der Foundation speichern wir für den Business Data List Connector die Connection Strings standardmäßig in der Web.Config und lesen diese bei Bedarf über die ASP.NET API aus:

http://www.layer2.de/de/produkte/Seiten/SharePoint-Business-Data-List-Connector.aspx

Grüße, Frank

Ohne Rang
13 Beiträge
wSharePointw Als Antwort am 15 Mai 2013 21:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

vielen Dank für die Antworten.

Der Einsatz eines weiteren Produkts kommt leider auch nicht in Frage.

Ich würde gerne die Lösung "RevertToSelf" ausprobieren, weiß jedoch nicht so recht, wie ich dort am besten anfange. In den Eigenschaften der Datenbankverbindung in Visual Studio gibt es diese Auswahlmöglichkeit nicht.

Kann mir jemand vielleicht eine kleine Hilfestellung oder sogar ein Beispiel schicken, wie das Ganze innerhalb von Visual Studio eingerichtet werden muss? Ist es wirklich notwendig, dass ich einen eigenen Connector schreiben muss? siehe "http://msdn.microsoft.com/en-us/library/ee554911.aspx"

Vielen lieben Dank.

Liebe Grüße

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Mai 2013 08:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du kannst die externe Datenverbindung auch ohne Visual Studio mit RevertToSelf einrichten: http://blogs.evocom.de/af/archive/2011/05/06/bcs-–-application-pool-konto-für-die-verbindung-nutzen-reverttoself.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
13 Beiträge
wSharePointw Als Antwort am 16 Mai 2013 20:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

danke für den Hinweis.. das habe ich heute gleich einmal ausprobier - und es funktioniert! :)

Das Problem, was ich nun habe ist, dass ich bereits ein Business Data Connectivity Projekt in Visual Studio angelegt habe und alle Methoden zum Abfragen der Daten aus dem SQL Server implementiert habe. Die Verbindung zur Datenbank habe ich über ein Ado.Net Projekt hergestellt.

Es handelt sich bei dem BDC-Projekt um eine .NET Assembly..und wie ich es nachgelesen habe, kann ich dort nicht sagen, dass die BDC Identität zur Authentifizierung genommen werden soll.

Gibt es eine elegante Lösung, das bestehende in eine Lösung zu überführen, bei der RevertToSelf möglich ist? Oder bleibt mir wohl leider nichts anderes übrig, die Abfragen erneut über den SharePoint Designer zu definieren?

Kann ich eventuell auch auf die Business Connectivity Services verzichten und die Verwendung eines Apppool Users auf andere Art und Weise erzwingen?

Vielen Dank!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Mai 2013 09:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn Du den Connector selbst entwickelst, bist Du auch selbst für die Verbindung verantwortlich. Dabei gibt es sowas wie RevertToSelf nicht direkt. Du kannst den Code zum Verbindungsaufbau in ein SPSecurity.RunWithElevatedPriviledges packen, dann läuft es unter dem App Pool Account. Ich bin mir aber nicht sicher, ob das bei BDC in allen Fällen funktioniert. Prinziepiell geht das nur, wenn der Code im Kontext eines HTTP-Requests läuft, aber nicht wenn z.B. ein Workflow auf die Daten zugreifen möchte.

Viele Grüße
Andi
af @ evocom de
Blog