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

Authentifizierung gegen die Datenbank über einen zentralen technischen User

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 6 Antworten | 2 Followers

Ohne Rang
13 Beiträge
wSharePointw erstellt in 14 Mai 2013 22:41

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

Top-10-Beitragsschreiber
19.067 Beiträge

wSharePointw:
um dies mittels "RevertToSelf" zu realisieren. [...] In den ConnectionString die Benutzerdaten in Klartext reinzuschreiben

Im Grunde hast Du nur diese Möglichkeiten.

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
391 Beiträge

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

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

Top-10-Beitragsschreiber
19.067 Beiträge

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

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!

Top-10-Beitragsschreiber
19.067 Beiträge

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
Seite 1 von 1 (7 Elemente) | RSS