So melden Sie sich mit persönlichem Schlüssel und zweitem Faktor an
Ein persönlicher Schlüssel (beginnt mit wkl_, 53 Zeichen) ist die Anmeldung einer Person am
Datendienst, die überall funktioniert – ohne Domäne, ohne VPN und ohne SQL-Kennwort. Verlangt der
Dienst zusätzlich einen zweiten Faktor, fragt der Treiber einmal je Sitzung einen Code aus der
Authenticator-App ab. Diese Anleitung richtet beides für Access ein.
Lösungsübersicht
Die Verbindung nennt AUTH=KEY und keinen Schlüssel. Den Schlüssel gibt der Benutzer einmal im
Anmeldeformular des Treibers ein und lässt ihn in der Windows-Anmeldeinformationsverwaltung
speichern; die Access-Datei enthält ihn nie. Verlangt der Dienst einen zweiten Faktor, tauscht der
Treiber einen Code gegen eine Sitzung, die für alle Verbindungen des Access-Prozesses gilt.
Umsetzung
- Lassen Sie sich einen Schlüssel ausstellen. Das tut die Verwaltung des Datendienstes, als Text oder als Einmal-Link; mit der Selbstbedienung des Dienstes auch die Person selbst (siehe „So legen Sie eine Person an und stellen ihr einen Schlüssel aus“ (Dokumentation der Verwaltungsanwendung)).
Geben Sie die Verbindung ohne Schlüssel an: Wählen Sie beim Einrichten der Datenquelle unter Authentifizierung den Eintrag Persönlicher Schlüssel aus, oder setzen Sie per Code
ODBC;DRIVER={Wkl OData};URL=https://daten.example.com/odata/v4/fachdaten/dbo/;AUTH=KEYDie Adresse muss mit
httpsbeginnen oder auf den eigenen Rechner zeigen; sonst sendet der Treiber den Schlüssel nicht und weist die Verbindung ab, bevor etwas gesendet ist (28000; siehe Verbindungszeichenfolge: Ausnahmen).Geben Sie beim ersten Verbinden den Schlüssel ein. Es erscheint das Formular Anmelden mit dem Hinweis „… Bitte geben Sie Ihren persönlichen Schlüssel ein (beginnt mit wkl_).“ Fügen Sie den Schlüssel ein, aktivieren Sie Schlüssel speichern (Windows-Anmeldeinformationen), und wählen Sie Anmelden aus. Der Treiber legt den Schlüssel unter dem Ziel
Wkl.Data.OData.Odbc:(persönlicher Schlüssel)@<Dienststamm>ab, nur für Ihr Windows-Konto, und meldet sich künftig ohne Rückfrage an.
Geben Sie den zweiten Faktor ein, wenn der Dienst ihn verlangt: Im Dialog Zweiter Faktor auf dem Access-Fenster geben Sie im Feld Code aus der Authenticator-App den sechsstelligen Code ein und wählen Anmelden aus. Einen falschen Code fragt der Treiber mit der Meldung des Dienstes neu ab, höchstens dreimal.
Ergebnis: Access verknüpft und liest; der Dienst nennt im Protokoll die Person und die Kennung des Schlüssels. Weitere Verknüpfungen desselben Access-Prozesses fragen keinen Code mehr, bis die Sitzung abläuft. Wie lange sie gilt, legt der Dienst fest, nicht der Treiber; beim Datendienst Wkl.Data.Gateway sind es in der Vorgabe 10 Stunden.
Anwendungen ohne Dialog (Skripte, Dienste, ADO.NET ohne Fenster) geben den Schlüssel in PWD und
den Code in TOTP mit – oder eine Sitzung, die sie selbst eröffnet haben, in SESSION:
DRIVER={Wkl OData};URL=https://daten.example.com/odata/v4/fachdaten/dbo/;AUTH=KEY;PWD=wkl_…;TOTP=123456
Hinweise
- Die Sitzung lebt im Prozess, nicht auf der Platte. Nach einem Neustart von Access fragt der Treiber einmal neu. Endet sie während der Arbeit, erscheint der Dialog erneut.
- Ein Code für Anwendung und Treiber. Eine Access-Anwendung, die selbst einen Code gegen eine Sitzung getauscht hat (etwa mit der VBA-Klasse
WklGatewayClientdes Datendienstes), übergibt diese mitSESSION=; der Treiber fragt dann nicht noch einmal. - Berichte in Excel und Power BI können keinen Code eingeben. Dafür stellt die Verwaltung einen nur lesenden Schlüssel aus, der vom zweiten Faktor ausgenommen ist.
- Nach „Abbrechen“ fragt der Treiber für denselben Dienst fünf Sekunden lang nicht erneut.
- Access zeigt bei einem Fehlschlag nur „ODBC-Verbindung fehlgeschlagen“ (3151). Den Grund – etwa „Der persönliche Schlüssel ist abgelaufen.“ – zeigt die Ablaufverfolgung des Treibers und das Protokoll des Dienstes; andere Anwendungen erhalten ihn als Meldung.
- Gespeicherten Schlüssel ersetzen oder entfernen: Öffnen Sie Systemsteuerung > Anmeldeinformationsverwaltung > Windows-Anmeldeinformationen, und bearbeiten oder entfernen Sie den Eintrag
Wkl.Data.OData.Odbc:(persönlicher Schlüssel)@….