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 Dienstleistungszentrum. Nach Erhalt des Applikationsschlüssels können Sie Ihre Anwendung mit den für Sie freigeschaltenen Diensten konfigurieren.

Egal ob Sie die BKG WebMap oder Ihr eigenes Framework als Grundlage für Ihre Webanwendung verwenden, es stehen Ihnen immer die folgenden beiden Optionen zur Verfügung den Applikationsschlüssel zur Authentifizierung geschützter Dienste einzusetzen:

BKG WebMap mit SessionID per Cookie

Der Applikationsschlüssel muss beim Aufruf der Javascript-Bibliothek im URL-Parameter bkg_appid übergeben werden:

<script type="text/javascript" src="https://sg.geodatenzentrum.de/web_bkg_webmap/lib/bkgwebmap-0.12.5.js?bkg_appid=IHR_API_KEY" charset="utf-8"></script>

BKG WebMap mit SessionID per URL

Der Applikationsschlüssel und die Domain der Anwendung müssen in den folgenden JavaScipt-Varaiblen definiert werden:

<script type="text/javascript">
  BKGWebMap.APP_ID = "IHR_API_KEY";
  BKGWebMap.APP_DOMAIN = "IHRE_APP_DOMAIN";
</script>

Eigenes Framework mit SessionID per Cookie

Bei der Verwendung Ihres eigenen Frameworks zur Erstellung der Webanwendung, können Sie die SessionID per Cookie über folgende Leerdateien initialisieren:

Eigenes Framework mit SessionID per URL

Bei der Initialisierung der Webanwendung muss die SessionID generiert werden. Dies erfolgt durch den Aufruf folgender URL: https://sg.geodatenzentrum.de/gdz_getSession?bkg_appid=IHR_API_KEY&domain=IHRE_APP_DOMAIN. Die Antwort dieses Aufrufs liefert die SessionID.

Die SessionID kann nun zum Aufruf geschützter Dienste in der URL direkt hinter dem Dienstname (erstes Pfadsegment) durch __ angegeben werden: http://sg.geodatenzentrum.de/NAME-DIENST__SESSIONID...
Beispiele:

Im Folgenden sei eine exemplarische Implementierung unter OpenLayers 2 gezeigt:

  function getSessionToken(appId , appDomain) {
    try {
      var request = OpenLayers.Request.GET({
        url: "http://sg.geodatenzentrum.de/gdz_getSession",
        params: {bkg_appid: appId, domain: appDomain},
        async: false
      });
      if (request.status !== 200) {
        console.log("Problem bei der Session-Initialisierung: " + request.responseText);
        return "n.a.";
      }
      return request.responseText;
    } catch (err) {
      console.log(err);
      return "n.a.";
    }
  }

  var session = getSessionToken(API_KEY, API_DOMAIN);
  var webatlasde = new OpenLayers.Layer.WMS(
      "WebAtlasDE",
      "http://sg.geodatenzentrum.de/wms_webatlasde__" + session,
      { layers: 'webatlasde' },
      { isBaseLayer: true, attribution: '© GeoBasis-DE / BKG 2017' }
  );