Einbindung geschützter Dienste in Webanwendungen

Beabsichtigen Sie unsere geschützten Dienste innerhalb Ihrer Webanwendung einzusetzen, können Sie als registrierter Benutzer einen Applikationsschlüssel beantragen. Wenden Sie sich dazu an das des BKG. Nach Erhalt des Applikationsschlüssels können Sie diesen wie unten beschrieben in Ihrer Anwendung integrieren und die für Sie freigeschaltenen Diensten nutzen.

Funktionsweise

Mit Hilfe des Applikationsschlüssel wird zunächst ein Session-Token generiert. Auf Basis des Session-Tokens kann ein Internet-Nutzer als Nutzer Ihrer Anwendung identifiziert werden. Damit erhält der Nutzer im Rahmen der Webanwendung Zugriff auf die dem Applikationsschlüssel zugeordneten Webdienste. Das Session-Token ist nur für eine begrenzte Dauer gültig (ca. 8 Stunden).

Die Initialisierung des Session-Token erfolgt über einen speziellen API-Aufruf, der Applikationsschlüssel sowie die Domain der Anwendung übermittelt: https://sg.geodatenzentrum.de/gdz_getSession?bkg_appid=$API_KEY&domain=$APP_DOMAIN Wobei $API_KEY durch den Applikationsschlüssel und $APP_DOMAIN durch die Domain der Anwendung ersetzt werden muss. Der Applikationsschlüssel kann nur im Rahmen der gemeldeten Domain(s) verwendet werden. Es erfolgt eine Überprüfung anhand des Domain-Parameters als auch des Referer-Headers.

Bei erfolgreicher Initialisierung wird ein Session-Token generiert und als Antwort der Anfrage ausgegeben. Bsp.:

sess-1234abcde-45ab-67cd-89ef-1234abcd5678

Ungültige Anfragen werden mit einem ServiceExceptionReport beantwortet.

Das Session-Token wird beim Aufruf der Webdienste als Teil der URL übergeben. Dies erfolgt analog zur Verwendung der UUID. Dazu wird der Dienstename (erstes Segment im Pfad der URL, z.B. wms_dop) um __ (zwei Unterstriche) und dem Session-Token erweitert. Bsp.:

  • https://sg.geodatenzentrum.de/wms_dop__sess-1234abcde-45ab-67cd-89ef-1234abcd5678?SERVICE=WMS&REQUEST=GetMap...
  • https://sg.geodatenzentrum.de/wmts_dop__sess-1234abcde-45ab-67cd-89ef-1234abcd5678/tile/1.0.0/rgb/default/DE_EPSG_25832_DOP/12/969/1228.png

Code-Beispiele

Javascript

> const response = await fetch('https://sg.geodatenzentrum.de/gdz_getSession?bkg_appid=$API-KEY&domain=$API-DOMAIN');
> if (!response.ok) {
>     throw new Error("Fehler beim Initialisieren des Session-Token");
> }
> const token = await response.text();
>
> let serviceBaseURL = 'https://sg.geodatenzentrum.de/wms_dop__' + token 
> // ...
>