Hallo zusammen, manche werden schon die Stirn runzeln, wenn sie schon die Überschrift lesen.
Aber der Reihe nach, ich fasse mal zusammen. In unserer Firma (gehört zu einem Konzern), sind alle Mitarbeiter-PC' in der Domäne eingegliedert, habe somit Berechtigung auf unsrere Server, je nachdem was für die User konfiguriert ist.
Jetzt haben wir auch noch Windows-Terminals, die sind nicht in der Domäne (oder jedenfalls nicht der angemeldete User), somit haben diese Terminals nun auf bestimmte Netzwerkbereiche keinen Zugriff. Diese Terminals sind für die Auftragswerfassung nötig. Dafür habe ich auch eine Applikation geschrieben, die aus dieser Auftragssoftware heraus angesprochen werden kann. Es wird eine ausführbare "EXE-Datei" mit Übergabeparameter gestartet, damit werden einmal gewisse Dinge in SAP geprüft, zum anderen werden aber auch PDF-Dateien zum Auftrag geprüft, und wenn diese vorhanden sind werden diese angezeigt.
Und hier ist jetzt mein Problem. Diese Netzwerkressource auf der diese PDF's abgelegt werden, wurde vor einer Woche ersetzt, weil diese nicht mehr den aktuellen Richtinien entsprochen hat, somit sind jetzt auch die Rechte "futsch".
Nun muss ich mir überlegen wie man das allgemein für diese Terminals wieder zum Rennen bekommt. Es soll auch eine kostengünstige uns ressourcenschonende Möglichkeit sein (Geräte sind noch gut), eventuell dann auch für spätere Transfers zu verwenden.
Folgende dinge habe ich schon angedacht, aber ich bin in der Abwägung was das beste, schnellste, einfachsteist zuweit weg weil ich die Erfahrung damit nciht habe. Hier mal Punkte, was ich mir gedacht habe:
Gibt es einen WebService oder kann man das relativ leicht selber machen, mit dem ich Dateien aus einem Verzeichnis erfassen und lesen kann, ohne dass der angemeldete User von dem Terminal Zugriff auf den Netzwerkbereich hat (Netzlaufwerk) ?? Gibt es da schon fertige DLL's die ich in C# verwenden kann? Eventuell wäre das auch eine Lösung für Maschinen die noch mit einem alten Betriebssystem arbeiten, um Dateien auszutauschen ??
Impersonation, ich weiss nicht ob das aus der Anwendung heraus funktionieren kann, wenn man für die Auswertung der PDF-Dateien und das anzeigen der PDF's im Code einen anderen user vorschaltet, der in der Konzerndomäne bekannt ist ??
Eine ausführbare Datei oder Batch mit den Argumenten die notwendig sind aufrufen. Die Batch müßte dann auch mit einem User arbeiten, welcher der Konzernsomäne bekannt ist. Wäre so etwas möglich?
Sonstige Ideen von euch ??
Ihr seht, ich bin mir sehr unschlüssig was ich genau machen soll oder was allgemein die beste oder alltagstaugliche Lösung wäre.
Bin jetzt echt etwas am Boden, denn diese bisherige Lösung hatte ich vor zwei Jahren mit diesen Kollegen erstellt, und jetzt das ...
Gibt es da schon fertige DLL's die ich in C# verwenden kann?
Nein, das hat auch mit C# nichts zutun. C# ist eine reine Sprache und auch .NET bringt Dir keine Logik-DLLs.
.NET bietet Dir Bausteine, mit denen Du eigene Logik umsetzen kannst. Natürlich nicht fertige Windows-Funktionalitäten wie hier.
Generell: es ist richtig und gut so, dass eure Maschinen sich in einem getrennten Netz befinden und nicht teil der Domäne sind. Das sind absolute Security und Netzwerk-Basics. Hab ich auch schon genug mit zutun gehabt; ich komm aus dem Maschinenbau-Umfeld.
Ja - eine solche Trennung macht viele Dinge komplex. Aber es ist deutlich komplexer, wenn eine Firma mehrere Wochen stillsteht, weil vulnerable Maschinen angegriffen wurden. Ich erinner da nur an die Stuxnet-Zeit.
Seit Stuxnet ist das sogar bei den aller meisten Machinenbauern bzw. Maschinenpark-Inhabern so, dass Maschinen generell keinerlei physikalischen Kontakt zum Unternehmensnetzwerk oder Internet haben dürfen. Gewisse Sicherheitsempfehlungen sagen hier sogar explizit den Datenaustausch per USB vor. USB: auch nicht mega toll, aber besser als die Direktanbindung.
Ich kenne Netzwerkimplementierungen in solchen Fällen, die nur eine One-Way-Schreibrichtung erlauben. So können Daten von der Maschine auf ein gewisses Laufwerk geschoben werden, und auch Daten vom Netz (zB Maschinenprogrammierer) an die Maschine kommen. Kenne aber keine einzige Lösung, die in allen Unternehmensnetzwerken mit Maschinenanbindung funktioniert, weil alle Firmen dann doch gewisse Unterschiede in Sachen Netzwerksegmentierung, Netzwerksicherheit und Domänen-Verwaltung haben.
An Deiner Stelle würde ich mich mit der IT zusammensetzen und eine Lösung suchen, die praktibel und für eure Anforderungen auch sicher ist. Alleine irgendwas erfinden ist in den aller meisten Fällen nur von kurzer Freude.
Bin jetzt echt etwas am Boden, denn diese bisherige Lösung hatte ich vor zwei Jahren mit diesen Kollegen erstellt, und jetzt das
Kann Dich trösten. Sowas war einfach vor 2 Jahren schon keine nachhaltig gute Idee, sondern nur ein Workaround. Abhaken.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt, danke für die Info. Aber Prizipiell wird das in die Richtung mit dem Webservice gehen? Ich meine, ist da die Berechtigungseinschränkung weniger restriktiv?
Beim Webservice brauche ich ja definitiv immer zwei Seiten, den Client und den Server. Die Terminals wären die Clients .... das heißt dann ich bräuchte noch eine Serverfunktionalität mit ASP oder dergleichen .... korrekt? Über Commands muss ich dann etwas beim Server antriggern ...
Da fällt mir ein, so etwas könnte man dann auch per MQTT oder OPC-UA steuern, wobei MQTT ja keine Datein versendet ...
Zitat von oehrle
Hallo Abt, danke für die Info. Aber Prizipiell wird das in die Richtung mit dem Webservice gehen? Ich meine, ist da die Berechtigungseinschränkung weniger restriktiv?
Ja - klar kannst nen "TCP/HTTP Server-Endpunkt" laufen lassen, den von Außen erreichbar machen und damit kommunizieren.
Bei den Maschinenbauern, bei denen ich war bzw. die meine Kunden waren, wurde aber sowas unterbunden.
Hat ja dann alles aber natürlich nichts mit irgendwelchen Domänenrechten zutun.
Ich würd wirklich lieber ne aktive Lösung mit der IT zusammen suchen, als jetzt irgendwelche Rechner mit TCP/HTTP-Endpunkten aufzubohren, wo dann eigentlich die nächsten Issues damit nur ne Frage der Zeit sind. Davon abgesehen kann eure IT sicherlich innerhalb Sekunden und vermutlich sogar automatisiert Dein Vorhaben erkennen und unterbinden. Üblich bei Enterprise-Grade Netzwerk-Komponenten.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Ok, ja.
Die IT hat sich heute morgen schon offenbart, es wird eine weiter ADirectory geben, dann kann das so weiterlaufen wie bisher.