Ich habe eine Anforderung, bei der ich während der Anmeldeauthentifizierung eine sichere ID aus dem RSA-Token eingeben und dann den Automatisierungstest starten muss.
Ist es möglich, den Wert des RSA-Tokens programmatisch über eine beliebige API oder auf andere Weise zu erreichen, so dass der Testablauf vollständig automatisiert werden kann?
Wir haben unsere Anmeldung an einem VPN mit rsa secure id und Cisco AnyConnect wie folgt automatisiert:
1) Öffnen Sie rsa secure id programmatisch so, wie Sie möchten
2) Führen Sie die folgenden .ps1
aus %Vor%Alles, was Sie jetzt noch tun müssen, ist, Ihren vpn und Benutzer auf das obige Skript zu setzen.
Sie müssen angeben, welche Art von Token Sie verwenden.
Es gibt eine Reihe von Möglichkeiten, von denen ich gehört habe:
Bitte überprüfen Sie diesen Link für weitere Details: Ссылка
Mit Hardware-Token müssen Sie eine Art von Kamera verwenden und Pixel des aufgenommenen Bildes lesen (ich kann Ihnen dort nicht helfen)
Software-Token ist einfacher.
Ich habe vor kurzem ein kleines Befehlszeilenprogramm erstellt, das ausgeführt werden kann, PIN eingeben und den in der Token-Anwendung generierten Code lesen kann. Ich kann Ihnen das Tool (Eigentum meiner Firma) nicht senden, aber ich kann Ihnen einige Tipps geben, was Sie tun müssen, um Ihre eigene Anwendung zu erstellen, die dasselbe macht.
Aber zuerst müssen Sie mir sagen, ob Sie Software-Token verwenden oder nicht.
OK. Da Sie ein Software-Token haben, beschreibe ich, was meine App macht, um sich automatisch mit dem VPN zu verbinden.
1) Sie müssen zuvor Ihren Software-Token konfigurieren lassen.
Darüber hinaus muss der VPN-Client ebenfalls konfiguriert werden und die Verbindung muss in der Liste der verfügbaren Verbindungen aufgeführt sein.
Wenn es konfiguriert ist, können Sie Ihre automatische VPN-Verbindung herstellen.
Wir haben ein ähnliches Software-Token:
Ссылка
Unser VPN Client sieht in etwa so aus:
Ссылка
2) Sobald alle Tools konfiguriert sind, können Sie Ihre VPN-Verbindung starten.
Sie müssen darauf vorbereitet sein, eine gründliche Untersuchung durchzuführen.
Jungs von RSA haben wirklich hart gearbeitet, um es unmöglich zu machen, was wir hier machen.
Sie verwenden keine gewöhnlichen Steuerelemente. Sie haben ihre eigenen Kontrollen erstellt, die ich nicht habe
Spezifikation für.
Ich habe es mit C ++ - und WIN32-API-Funktionen gemacht. Das ist mein Rezept.
a) liest Parameter, die an das Programm übergeben wurden
b) validiert die Parameter Ich habe eine Anzahl von Parametern wie PIN, Verbindungsnummer, Befehl, der ausgeführt wird, wenn die Verbindung hergestellt wird usw. Sie können natürlich hartkodiert sein, aber um flexibel zu sein, kann ich sie von der Befehlszeile aus übergeben.
c) Suche nach Token-Anwendung [EnumWindows]
Die Token-App kann zwei Top-Level-Fenster haben [Dasjenige, das Sie PIN eingeben, und das mit Passcode]
Wenn ich beide geöffneten Fenster erfahre, schließe ich die App und starte sie neu.
Sie können versuchen, die Nachricht WM_CLOSE zu senden, um die App zu schließen. Ich simuliere Benutzeraktion, um "X" zu drücken, schließen Sie Taste
Um es zu starten, verwende ich die Funktion CreateProcess .
Wenn Sie die App neu starten oder nur ein Fenster geöffnet hat, können Sie jetzt PIN eingeben.
d) Geben Sie die PIN ein
Ich simuliere Benutzer Linksklick auf Pin-Fenster WM_LBUTTONDOWN, WM_LBUTTONUP.
Ich gebe den Pin mit WM_CHAR ein.
Klicken Sie nach der Eingabe mit WM_LBUTTONDOWN, WM_LBUTTONUP auf die Schaltfläche OK.
Sobald Sie fertig sind, sollte das Passwortfenster angezeigt werden.
e) Passcode lesen
Um den Passcode zu erhalten, benutze ich den Button Kopieren vom Token. Diese Schaltfläche Kopiert Daten in die Zwischenablage.
Wir simulieren das Drücken dieser Schaltfläche: WM_LBUTTONDOWN, WM_LBUTTONUP
Und lesen Sie Daten aus der Zwischenablage:
Jetzt haben Sie den Passcode für die Verwendung im CISCO VPN-Client bereit.
Bitte lassen Sie mich wissen, ob es für Sie einen Sinn ergibt.
Wenn dies der Fall ist und Ihre App bis zu diesem Punkt funktioniert, lassen Sie es mich bitte wissen und ich werde Anweisungen zur Bearbeitung des VPN-Clients weitergeben.
Wenn Sie detailliertere Anweisungen für die obigen Schritte benötigen, lassen Sie es mich bitte wissen.
Eine Idee ist es, eine Reihe von Clock / Token-Paaren aufzuzeichnen und die Uhr für Ihr Programm zurück zu spielen und die Aufzeichnung wiederzugeben. Eigentlich, wenn Sie die Option haben, die Uhr zu kochen, brauchen Sie wirklich nur ein Paar.
(Ich habe nicht gesagt, dass es eine GUTE Idee war.)
Viel Glück, / Bob Bryan
Tags und Links security automation rsa