Siden giver eksempler på hvordan du kan benytte certifikater på Datafordeleren.

Siden indeholder ældre eksempler, som ikke er opdateret til de nye OCES3 certifikater.



Sideinformation




.NET

Client auth SSL

Eksemplet er oprettet for at vise Direct SSL klient certifikat autorisation på Datafordeleren.

Fremgangsmåde

  • Kopier et FOCES eller VOCES service user keystore til /App_Data/ folder
  • Skab en reference til filen og din adgangskode, mens du kører DataDistributor.Switchboard.Authorization.CertTest.exe
  • Skift url'en til den tjeneste på Datafordeleren, som du ønsker at benytte

Status code: OK
Response Content-Type: application/json; charset=UTF8



Eksempel på output
 {
    "datafordelerOpdateringstid": "2016-10-07T19:27:59.802+02:00",
    "adgangsadressebetegnelse": "Spaden C 2, Høje Taastrup, 2630 Taastrup",
    "afstemningsområde": {
      "id": "1566156",
      "afstemningsområdenummer": "06",
      "navn": "Gadehaveskolen"
    },
    "forretningshændelse": "3",
    "forretningsområde": "54.15.10.07",
    "forretningsproces": "0",
    "geoDanmarkBygning": "1005307686",
    "husnummerretning": "POINT(0.946085358827545 -0.32391741819815)",
    "husnummertekst": "2",
    "id_lokalId": "0a3f507d-1a3d-32b8-e044-0003ba298018",
    "id_namespace": "http://data.gov.dk/dar/husnummer",
    "jordstykke": "402274",
    "kommuneinddeling": {
      "id": "389114",
      "kommunekode": "0169",
      "navn": "Høje Taastrup"
    },
    "menighedsrådsafstemningsområde": {
      "id": "1700977",
      "mrafstemningsområdenummer": "1",
      "navn": "Høje Taastrup"
    },
    "registreringFra": "2016-07-08T17:10:50+02:00",
    "registreringsaktør": "DAR",
    "sogneinddeling": {
      "id": "107659",
      "sognekode": "7152",
      "navn": "Høje Taastrup"
    },
    "status": "3",
    "vejmidte": "1006309113",
    "virkningFra": "2016-09-16T12:34:43+02:00",
    "virkningsaktør": "Konvertering2017",
    "navngivenVej": {
      "datafordelerOpdateringstid": "2016-10-07T20:23:50.386+02:00",
      "administreresAfKommune": "0169",
      "forretningshændelse": "0",
      "forretningsområde": "54.15.10.06",
      "forretningsproces": "0",
      "id_lokalId": "55595d06-fac1-4a07-b7e8-7365fe9428cc",
      "id_namespace": "http://data.gov.dk/dar/navngivenvej",
      "registreringFra": "2016-07-08T17:10:50+02:00",
      "registreringsaktør": "DAR",
      "status": "3",
      "udtaltVejnavn": "Spaden C",
      "vejadresseringsnavn": "Spaden C",
      "vejnavn": "Spaden C",
      "vejnavnebeliggenhed_oprindelse_kilde": "Ekstern",
      "vejnavnebeliggenhed_oprindelse_nøjagtighedsklasse": "B",
      "vejnavnebeliggenhed_oprindelse_registrering": "2016-09-01T18:20:58.068+02:00",
      "vejnavnebeliggenhed_oprindelse_tekniskStandard": "NO",
      "vejnavnebeliggenhed_vejnavneområde": "POLYGON((706160.12 6172245.95,706186.79 6172080.73,706152.796674 6172075.24276,706126.126674 6172240.46276,706160.12 6172245.95))",
      "virkningFra": "1900-01-01T13:00:00+01:00",
      "virkningsaktør": "Konvertering2017SDFE",
      "navngivenVejKommunedelList": [
        {
          "id_lokalId": "a07f8a98-6f7e-11e6-a528-063320a53a26",
          "navngivenVejKommunedel": {
            "datafordelerOpdateringstid": "2016-10-07T20:24:18.076+02:00",
            "forretningshændelse": "1",
            "forretningsområde": "54.15.10.06",
            "forretningsproces": "0",
            "id_lokalId": "a07f8a98-6f7e-11e6-a528-063320a53a26",
            "id_namespace": "http://data.gov.dk/dar/navngivenvejkommunedel",
            "kommune": "0169",
            "navngivenVej": "55595d06-fac1-4a07-b7e8-7365fe9428cc",
            "registreringFra": "2016-07-08T17:10:50+02:00",
            "registreringsaktør": "DAR",
            "status": "3",
            "vejkode": "7428",
            "virkningFra": "1900-01-01T13:00:00+01:00",
            "virkningsaktør": "Konvertering2017SDFE"
          }
        }
      ]
    },
    "adgangspunkt": {
      "datafordelerOpdateringstid": "2016-10-07T17:45:04.681+02:00",
      "oprindelse_kilde": "Ekstern",
      "oprindelse_nøjagtighedsklasse": "A",
      "oprindelse_registrering": "2014-11-28T13:14:48.957+01:00",
      "oprindelse_tekniskStandard": "TK",
      "position": "POINT(706176.77 6172114.13)"
    },
    "vejpunkt": {
      "datafordelerOpdateringstid": "2016-10-07T19:07:13.562+02:00",
      "oprindelse_kilde": "Ekstern",
      "oprindelse_nøjagtighedsklasse": "B",
      "oprindelse_registrering": "2016-09-01T18:22:45.177+02:00",
      "oprindelse_tekniskStandard": "V2",
      "position": "POINT(706163.08 6172175.47)"
    },
    "supplerendeBynavn": {
      "datafordelerOpdateringstid": "2016-10-07T20:28:02.261+02:00",
      "forretningshændelse": "5",
      "forretningsområde": "54.15.10.25",
      "forretningsproces": "0",
      "id_lokalId": "a684854a-3f14-438e-a763-9841ee1f12ad",
      "id_namespace": "http://data.gov.dk/dar/supplerendebynavn",
      "navn": "Høje Taastrup",
      "registreringFra": "2016-07-08T17:10:50+02:00",
      "registreringsaktør": "DAR",
      "status": "3",
      "supplerendeBynavn": "1647901",
      "virkningFra": "1753-01-01T01:00:00+01:00",
      "virkningsaktør": "Konvertering2017"
    }
  }



Zip-fil med eksempel

dotnet_client auth SSL.zip




SAML2 token auth

Eksemplet er oprettet for at vise SAML2 token autorisation på Datafordeleren.

Fremgangsmåde

  • Kopier et FOCES eller VOCES service user keystore til /App_Data/ folder
  • Skab en reference til filen og din adgangskode i Script.bat filen
  • Skift url'en til den tjeneste på Datafordeleren, som du ønsker at benytte, i Script.bat filen
  • Kør Script.bat filen og tjek resultatet i result.txt




Eksempel på output
BEGIN
Aquire saml with certificate auth token attempt
Configured certificatepath: C:\somedir\App_Data\FOCES_gyldig.p12
Elapsed time in miliseconds: 769
SAML token:
PEFzc2VydGlvbiBJRD0iX2UzYzMxYTU2LTVkMzEtNDM1ZC05NTdkLTE1YzA5NTcyYzY2MyIgSXNzdWVJbnN0YW50PSIyMDE5LTExLTI5VDEyOjE2OjQxLjAyMVoiIFZlcnNpb249IjIuMCIgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iPjxJc3N1ZXI+aHR0cHM6Ly9zYW1sLnFhdWEta21kLmNsb3VkYXBwLm5ldC9hZGZzL3NlcnZpY2VzL3RydXN0PC9Jc3N1ZXI+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiIC8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiIC8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfZTNjMzFhNTYtNWQzMS00MzVkLTk1N2QtMTVjMDk1NzJjNjYzIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiIC8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIgLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIgLz48ZHM6RGlnZXN0VmFsdWU+Wnk2L2Q4b3ZkV0pGLytLbi8vOWM0a28wOUtUU0hzWUYrVGIvNnpycll3OD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWU+bDhZdHovakFMeS9zaDJvTitvRENPQWJ2dUVVR3UxR2JRR2x0clFTbVYzRjd1SlFmMC9NbEh5R1AyWFZJdjJOS2tXRVNBWHQyVXk4bzIxMnB3YjBVNlJmS2hRYmtZU1V1STI3eTd4cDNTQ3NGUkw0VGcvZEQ5dUwyeWJHNGJPdVV2WllGYTdVQ29ZV05PbGlFYWxDOHdlVTNoSkswMXJoQWlKNlducGxsdkZJQlZuTEJjc0JKWHZ1ZzYyZnk3aUY2aVRqUXpQbjcvTE9RWCs3cC9LaEllUGNHbk5UV29yNWtEL0RqUmtUQVlHWUY3ek9FL0hCRUtoL09LWHhVeWkycnV5d1dLWTk0VUtLTlAyenNxVGhCV1VCMHVXays5ZDcvZGxYWE9GWlNza0xOd0lzV0xYOC80ZUdxSXVtME5BWCswZEtiMGxVMU8wWDVvL3Z1Z09xeGVnPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxLZXlJbmZvIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlHRXpDQ0JQdWdBd0lCQWdJRVdSdWJOVEFOQmdrcWhraUc5dzBCQVFzRkFEQklNUXN3Q1FZRFZRUUdFd0pFU3pFU01CQUdBMVVFQ2d3SlZGSlZVMVF5TkRBNE1TVXdJd1lEVlFRRERCeFVVbFZUVkRJME1EZ2dVM2x6ZEdWdGRHVnpkQ0JZV0VsSklFTkJNQjRYRFRFNE1ESXhOREExTWpNMU0xb1hEVEl4TURJeE5EQTFNak16TjFvd2Z6RUxNQWtHQTFVRUJoTUNSRXN4SURBZUJnTlZCQW9NRjB0TlJDQkJMMU1nTHk4Z1ExWlNPakkyT1RFeE56UTFNVTR3SUFZRFZRUUZFeGxEVmxJNk1qWTVNVEUzTkRVdFJrbEVPamN4T0RJMU5qVXdNQ29HQTFVRUF3d2pSRVF1UkdWMk1ERXVRV1JtY3lBb1puVnVhM1JwYjI1elkyVnlkR2xtYVd0aGRDa3dnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDL2Zwa1E0ZHVCcTRwRTVCdFB2YkJ1RDZFNGltMFRZTklZRTREM2VSWXNWRnlkTmllYXBsL05SQ1N4MXlNMUpTck11YThmOU9CNkFjR0NrSkErWVUxMzYvclVJYisvamM3Qm45ZjNuU0NiZTNBRlQvZnhxK3FVVnQ4VkRRZHhJRFBqeU54MXBnM09kWU5vZGxrd1ZlZWZTNXBRZ2Uwc0k1UXVoNGEzaHlubTJGQkJpS0lOb2ZtR1Evb1lwdVp6YnQzRWk0SW51NHpPbjhTdkM5RVZnQnpZLzlSUHBvdlY5cG10Z2huV1lWMm5uS0NxYXBHWmszanNIZlVZVE9jN3JCYytDRlBHb1R6VXNlczN4Nis1TXlrMGdFVXplNVhoUEpMU2xRRmtqWmpsdy83dmM0c3hEaW95bXRKRklESnFWdWROdUtsOXQreXZ2Vm9qVUxYZEkvdDdBZ01CQUFHamdnTE1NSUlDeURBT0JnTlZIUThCQWY4RUJBTUNBN2d3Z1pjR0NDc0dBUVVGQndFQkJJR0tNSUdITUR3R0NDc0dBUVVGQnpBQmhqQm9kSFJ3T2k4dmIyTnpjQzV6ZVhOMFpXMTBaWE4wTWpJdWRISjFjM1F5TkRBNExtTnZiUzl5WlhOd2IyNWtaWEl3UndZSUt3WUJCUVVITUFLR08yaDBkSEE2THk5bUxtRnBZUzV6ZVhOMFpXMTBaWE4wTWpJdWRISjFjM1F5TkRBNExtTnZiUzl6ZVhOMFpXMTBaWE4wTWpJdFkyRXVZMlZ5TUlJQklBWURWUjBnQklJQkZ6Q0NBUk13Z2dFUEJnMHJCZ0VFQVlIMFVRSUVCZ1FDTUlIOU1DOEdDQ3NHQVFVRkJ3SUJGaU5vZEhSd09pOHZkM2QzTG5SeWRYTjBNalF3T0M1amIyMHZjbVZ3YjNOcGRHOXllVENCeVFZSUt3WUJCUVVIQWdJd2did3dEQllGUkdGdVNVUXdBd0lCQVJxQnEwUmhia2xFSUhSbGMzUWdZMlZ5ZEdsbWFXdGhkR1Z5SUdaeVlTQmtaVzV1WlNCRFFTQjFaSE4wWldSbGN5QjFibVJsY2lCUFNVUWdNUzR6TGpZdU1TNDBMakV1TXpFek1UTXVNaTQwTGpZdU5DNHlMaUJFWVc1SlJDQjBaWE4wSUdObGNuUnBabWxqWVhSbGN5Qm1jbTl0SUhSb2FYTWdRMEVnWVhKbElHbHpjM1ZsWkNCMWJtUmxjaUJQU1VRZ01TNHpMall1TVM0MExqRXVNekV6TVRNdU1pNDBMall1TkM0eUxqQ0JyQVlEVlIwZkJJR2tNSUdoTUQyZ082QTVoamRvZEhSd09pOHZZM0pzTG5ONWMzUmxiWFJsYzNReU1pNTBjblZ6ZERJME1EZ3VZMjl0TDNONWMzUmxiWFJsYzNReU1qRXVZM0pzTUdDZ1hxQmNwRm93V0RFTE1Ba0dBMVVFQmhNQ1JFc3hFakFRQmdOVkJBb01DVlJTVlZOVU1qUXdPREVsTUNNR0ExVUVBd3djVkZKVlUxUXlOREE0SUZONWMzUmxiWFJsYzNRZ1dGaEpTU0JEUVRFT01Bd0dBMVVFQXd3RlExSk1Nall3SHdZRFZSMGpCQmd3Rm9BVXE2Z0JSQm13czBPWjJ2cDh6TklBR0FQblBMOHdIUVlEVlIwT0JCWUVGT1B6dW0wYmxOTkRLQzRHYnFIdGoxRXVIUjdSTUFrR0ExVWRFd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKVWxtV3J6YmhVNVBIY2pWNW1jNUQzMW5zNHhqYjBWKzljejhZYlBRUWV3Wk9MVi9FeHhheEd0cndsY2x4UDVsM1R5MDFvZDU4bVV4ZjF3TndMc1ZjaXd6cTBlcDRFWkRGdmhlWWhDWDBSZlhPRlNPSVV5a1BhRWM1Zm9UMzVyN1g3NEdkMlg1NXNqTVVXRzdiTVFob1d1dDU2Q1h6bzJIQzBSUlRyRHoxdXI4Wm94ZEdZcUthUUNXL1YvYkdBd2V6ZUVsSFBnYzkySy91bFA0Mk1xM0NpRDA3ZWw2d3JUR2VMbUFWL3RMeklETURRaDJvTHp5anRUY2VCRjE1dHFCcDE4ODVKSjVLK091TmloOGtORWoyVU9jejFlUlRyNGhkUVNERk5VQU5sTTd2T25VUFpLcTIzcS80aVhNTCtmYU5zMnJ2QzBRQkE5NlNSZzMyWWVFSHc9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L0tleUluZm8+PC9kczpTaWduYXR1cmU+PFN1YmplY3Q+PE5hbWVJRCBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OnBlcnNpc3RlbnQiPlJYU0dZWFZFSkE8L05hbWVJRD48U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxTdWJqZWN0Q29uZmlybWF0aW9uRGF0YSBOb3RPbk9yQWZ0ZXI9IjIwMTktMTEtMjlUMTI6MjE6NDEuMDIxWiIgLz48L1N1YmplY3RDb25maXJtYXRpb24+PC9TdWJqZWN0PjxDb25kaXRpb25zIE5vdEJlZm9yZT0iMjAxOS0xMS0yOVQxMjoxNjo0MC42OTFaIiBOb3RPbk9yQWZ0ZXI9IjIwMTktMTEtMjlUMTM6MTY6NDAuNjkxWiI+PEF1ZGllbmNlUmVzdHJpY3Rpb24+PEF1ZGllbmNlPnVybjpkazprbWQ6ZGQ6dmFsdWU6c3A6c3dpdGNoYm9hcmQ6a25vd251c2VyPC9BdWRpZW5jZT48L0F1ZGllbmNlUmVzdHJpY3Rpb24+PC9Db25kaXRpb25zPjxBdHRyaWJ1dGVTdGF0ZW1lbnQ+PEF0dHJpYnV0ZSBOYW1lPSJkazpnb3Y6c2FtbDphdHRyaWJ1dGU6QXNzdXJhbmNlTGV2ZWwiPjxBdHRyaWJ1dGVWYWx1ZT4yPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9InVybjpkazprbWQ6ZGQ6YXR0cmlidXRlOnV0Ij48QXR0cmlidXRlVmFsdWU+dXJuOmRrOmttZDpkZDp2YWx1ZTp1dDpsb2NhbGZvY2Vzc2VydmljZXVzZXI8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjwvQXR0cmlidXRlU3RhdGVtZW50PjxBdXRoblN0YXRlbWVudCBBdXRobkluc3RhbnQ9IjIwMTktMTEtMjlUMTI6MTY6NDAuNTE5WiI+PEF1dGhuQ29udGV4dD48QXV0aG5Db250ZXh0Q2xhc3NSZWY+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFjOmNsYXNzZXM6WDUwOTwvQXV0aG5Db250ZXh0Q2xhc3NSZWY+PC9BdXRobkNvbnRleHQ+PC9BdXRoblN0YXRlbWVudD48L0Fzc2VydGlvbj4=
Performing Switchboard Call with SAML2 authentication
Calling switchboard 1 times...
Calling switchboard 1
Request:
Method: GET, RequestUri: 'https://dev01-services.datafordeler.dk/DAR/DAR/1/rest/husnummer?format=json&id=0a3f507d-1a3d-32b8-e044-0003ba298018', Version: 1.1, Content: <null>, Headers:
{
  Authorization: Bearer PEFzc2VydGlvbiBJRD0iX2UzYzMxYTU2LTVkMzEtNDM1ZC05NTdkLTE1YzA5NTcyYzY2MyIgSXNzdWVJbnN0YW50PSIyMDE5LTExLTI5VDEyOjE2OjQxLjAyMVoiIFZlcnNpb249IjIuMCIgeG1sbnM9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphc3NlcnRpb24iPjxJc3N1ZXI+aHR0cHM6Ly9zYW1sLnFhdWEta21kLmNsb3VkYXBwLm5ldC9hZGZzL3NlcnZpY2VzL3RydXN0PC9Jc3N1ZXI+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiIC8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiIC8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfZTNjMzFhNTYtNWQzMS00MzVkLTk1N2QtMTVjMDk1NzJjNjYzIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiIC8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIgLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIgLz48ZHM6RGlnZXN0VmFsdWU+Wnk2L2Q4b3ZkV0pGLytLbi8vOWM0a28wOUtUU0hzWUYrVGIvNnpycll3OD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWU+bDhZdHovakFMeS9zaDJvTitvRENPQWJ2dUVVR3UxR2JRR2x0clFTbVYzRjd1SlFmMC9NbEh5R1AyWFZJdjJOS2tXRVNBWHQyVXk4bzIxMnB3YjBVNlJmS2hRYmtZU1V1STI3eTd4cDNTQ3NGUkw0VGcvZEQ5dUwyeWJHNGJPdVV2WllGYTdVQ29ZV05PbGlFYWxDOHdlVTNoSkswMXJoQWlKNlducGxsdkZJQlZuTEJjc0JKWHZ1ZzYyZnk3aUY2aVRqUXpQbjcvTE9RWCs3cC9LaEllUGNHbk5UV29yNWtEL0RqUmtUQVlHWUY3ek9FL0hCRUtoL09LWHhVeWkycnV5d1dLWTk0VUtLTlAyenNxVGhCV1VCMHVXays5ZDcvZGxYWE9GWlNza0xOd0lzV0xYOC80ZUdxSXVtME5BWCswZEtiMGxVMU8wWDVvL3Z1Z09xeGVnPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxLZXlJbmZvIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlHRXpDQ0JQdWdBd0lCQWdJRVdSdWJOVEFOQmdrcWhraUc5dzBCQVFzRkFEQklNUXN3Q1FZRFZRUUdFd0pFU3pFU01CQUdBMVVFQ2d3SlZGSlZVMVF5TkRBNE1TVXdJd1lEVlFRRERCeFVVbFZUVkRJME1EZ2dVM2x6ZEdWdGRHVnpkQ0JZV0VsSklFTkJNQjRYRFRFNE1ESXhOREExTWpNMU0xb1hEVEl4TURJeE5EQTFNak16TjFvd2Z6RUxNQWtHQTFVRUJoTUNSRXN4SURBZUJnTlZCQW9NRjB0TlJDQkJMMU1nTHk4Z1ExWlNPakkyT1RFeE56UTFNVTR3SUFZRFZRUUZFeGxEVmxJNk1qWTVNVEUzTkRVdFJrbEVPamN4T0RJMU5qVXdNQ29HQTFVRUF3d2pSRVF1UkdWMk1ERXVRV1JtY3lBb1puVnVhM1JwYjI1elkyVnlkR2xtYVd0aGRDa3dnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDL2Zwa1E0ZHVCcTRwRTVCdFB2YkJ1RDZFNGltMFRZTklZRTREM2VSWXNWRnlkTmllYXBsL05SQ1N4MXlNMUpTck11YThmOU9CNkFjR0NrSkErWVUxMzYvclVJYisvamM3Qm45ZjNuU0NiZTNBRlQvZnhxK3FVVnQ4VkRRZHhJRFBqeU54MXBnM09kWU5vZGxrd1ZlZWZTNXBRZ2Uwc0k1UXVoNGEzaHlubTJGQkJpS0lOb2ZtR1Evb1lwdVp6YnQzRWk0SW51NHpPbjhTdkM5RVZnQnpZLzlSUHBvdlY5cG10Z2huV1lWMm5uS0NxYXBHWmszanNIZlVZVE9jN3JCYytDRlBHb1R6VXNlczN4Nis1TXlrMGdFVXplNVhoUEpMU2xRRmtqWmpsdy83dmM0c3hEaW95bXRKRklESnFWdWROdUtsOXQreXZ2Vm9qVUxYZEkvdDdBZ01CQUFHamdnTE1NSUlDeURBT0JnTlZIUThCQWY4RUJBTUNBN2d3Z1pjR0NDc0dBUVVGQndFQkJJR0tNSUdITUR3R0NDc0dBUVVGQnpBQmhqQm9kSFJ3T2k4dmIyTnpjQzV6ZVhOMFpXMTBaWE4wTWpJdWRISjFjM1F5TkRBNExtTnZiUzl5WlhOd2IyNWtaWEl3UndZSUt3WUJCUVVITUFLR08yaDBkSEE2THk5bUxtRnBZUzV6ZVhOMFpXMTBaWE4wTWpJdWRISjFjM1F5TkRBNExtTnZiUzl6ZVhOMFpXMTBaWE4wTWpJdFkyRXVZMlZ5TUlJQklBWURWUjBnQklJQkZ6Q0NBUk13Z2dFUEJnMHJCZ0VFQVlIMFVRSUVCZ1FDTUlIOU1DOEdDQ3NHQVFVRkJ3SUJGaU5vZEhSd09pOHZkM2QzTG5SeWRYTjBNalF3T0M1amIyMHZjbVZ3YjNOcGRHOXllVENCeVFZSUt3WUJCUVVIQWdJd2did3dEQllGUkdGdVNVUXdBd0lCQVJxQnEwUmhia2xFSUhSbGMzUWdZMlZ5ZEdsbWFXdGhkR1Z5SUdaeVlTQmtaVzV1WlNCRFFTQjFaSE4wWldSbGN5QjFibVJsY2lCUFNVUWdNUzR6TGpZdU1TNDBMakV1TXpFek1UTXVNaTQwTGpZdU5DNHlMaUJFWVc1SlJDQjBaWE4wSUdObGNuUnBabWxqWVhSbGN5Qm1jbTl0SUhSb2FYTWdRMEVnWVhKbElHbHpjM1ZsWkNCMWJtUmxjaUJQU1VRZ01TNHpMall1TVM0MExqRXVNekV6TVRNdU1pNDBMall1TkM0eUxqQ0JyQVlEVlIwZkJJR2tNSUdoTUQyZ082QTVoamRvZEhSd09pOHZZM0pzTG5ONWMzUmxiWFJsYzNReU1pNTBjblZ6ZERJME1EZ3VZMjl0TDNONWMzUmxiWFJsYzNReU1qRXVZM0pzTUdDZ1hxQmNwRm93V0RFTE1Ba0dBMVVFQmhNQ1JFc3hFakFRQmdOVkJBb01DVlJTVlZOVU1qUXdPREVsTUNNR0ExVUVBd3djVkZKVlUxUXlOREE0SUZONWMzUmxiWFJsYzNRZ1dGaEpTU0JEUVRFT01Bd0dBMVVFQXd3RlExSk1Nall3SHdZRFZSMGpCQmd3Rm9BVXE2Z0JSQm13czBPWjJ2cDh6TklBR0FQblBMOHdIUVlEVlIwT0JCWUVGT1B6dW0wYmxOTkRLQzRHYnFIdGoxRXVIUjdSTUFrR0ExVWRFd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKVWxtV3J6YmhVNVBIY2pWNW1jNUQzMW5zNHhqYjBWKzljejhZYlBRUWV3Wk9MVi9FeHhheEd0cndsY2x4UDVsM1R5MDFvZDU4bVV4ZjF3TndMc1ZjaXd6cTBlcDRFWkRGdmhlWWhDWDBSZlhPRlNPSVV5a1BhRWM1Zm9UMzVyN1g3NEdkMlg1NXNqTVVXRzdiTVFob1d1dDU2Q1h6bzJIQzBSUlRyRHoxdXI4Wm94ZEdZcUthUUNXL1YvYkdBd2V6ZUVsSFBnYzkySy91bFA0Mk1xM0NpRDA3ZWw2d3JUR2VMbUFWL3RMeklETURRaDJvTHp5anRUY2VCRjE1dHFCcDE4ODVKSjVLK091TmloOGtORWoyVU9jejFlUlRyNGhkUVNERk5VQU5sTTd2T25VUFpLcTIzcS80aVhNTCtmYU5zMnJ2QzBRQkE5NlNSZzMyWWVFSHc9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L0tleUluZm8+PC9kczpTaWduYXR1cmU+PFN1YmplY3Q+PE5hbWVJRCBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OnBlcnNpc3RlbnQiPlJYU0dZWFZFSkE8L05hbWVJRD48U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxTdWJqZWN0Q29uZmlybWF0aW9uRGF0YSBOb3RPbk9yQWZ0ZXI9IjIwMTktMTEtMjlUMTI6MjE6NDEuMDIxWiIgLz48L1N1YmplY3RDb25maXJtYXRpb24+PC9TdWJqZWN0PjxDb25kaXRpb25zIE5vdEJlZm9yZT0iMjAxOS0xMS0yOVQxMjoxNjo0MC42OTFaIiBOb3RPbk9yQWZ0ZXI9IjIwMTktMTEtMjlUMTM6MTY6NDAuNjkxWiI+PEF1ZGllbmNlUmVzdHJpY3Rpb24+PEF1ZGllbmNlPnVybjpkazprbWQ6ZGQ6dmFsdWU6c3A6c3dpdGNoYm9hcmQ6a25vd251c2VyPC9BdWRpZW5jZT48L0F1ZGllbmNlUmVzdHJpY3Rpb24+PC9Db25kaXRpb25zPjxBdHRyaWJ1dGVTdGF0ZW1lbnQ+PEF0dHJpYnV0ZSBOYW1lPSJkazpnb3Y6c2FtbDphdHRyaWJ1dGU6QXNzdXJhbmNlTGV2ZWwiPjxBdHRyaWJ1dGVWYWx1ZT4yPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48QXR0cmlidXRlIE5hbWU9InVybjpkazprbWQ6ZGQ6YXR0cmlidXRlOnV0Ij48QXR0cmlidXRlVmFsdWU+dXJuOmRrOmttZDpkZDp2YWx1ZTp1dDpsb2NhbGZvY2Vzc2VydmljZXVzZXI8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjwvQXR0cmlidXRlU3RhdGVtZW50PjxBdXRoblN0YXRlbWVudCBBdXRobkluc3RhbnQ9IjIwMTktMTEtMjlUMTI6MTY6NDAuNTE5WiI+PEF1dGhuQ29udGV4dD48QXV0aG5Db250ZXh0Q2xhc3NSZWY+dXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFjOmNsYXNzZXM6WDUwOTwvQXV0aG5Db250ZXh0Q2xhc3NSZWY+PC9BdXRobkNvbnRleHQ+PC9BdXRoblN0YXRlbWVudD48L0Fzc2VydGlvbj4=
}

Response:
StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Transfer-Encoding: chunked
  SwitchboardPerformanceInMs: 474.0738
  Access-Control-Allow-Origin: *
  Cache-Control: private
  Date: Fri, 29 Nov 2019 12:16:41 GMT
  Server: datafordeler.dk
  X-Powered-By: datafordeler.dk
  Content-Type: application/json; charset=UTF-8
}
[{"datafordelerOpdateringstid":"2016-10-07T19:27:59.802000+02:00","adgangsadressebetegnelse":"Spaden C 2, H›je Taastrup, 2630 Taastrup","afstemningsomr†de":{"id":"1566156","afstemningsomr†denummer":"06","navn":"Gadehaveskolen"},"forretningsh‘ndelse":"3","forretningsomr†de":"54.15.10.07","forretningsproces":"0","geoDanmarkBygning":"1005307686","husnummerretning":"POINT(0.946085358827545 -0.32391741819815)","husnummertekst":"2","id_lokalId":"0a3f507d-1a3d-32b8-e044-0003ba298018","id_namespace":"http://data.gov.dk/dar/husnummer","jordstykke":"402274","kommuneinddeling":{"id":"389114","kommunekode":"0169","navn":"H›je Taastrup"},"menighedsr†dsafstemningsomr†de":{"id":"1700977","mrafstemningsomr†denummer":"1","navn":"H›je Taastrup"},"registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsakt›r":"DAR","sogneinddeling":{"id":"107659","sognekode":"7152","navn":"H›je Taastrup"},"status":"3","vejmidte":"1006309113","virkningFra":"2016-09-16T12:34:43.000000+02:00","virkningsakt›r":"Konvertering2017","navngivenVej":{"datafordelerOpdateringstid":"2016-10-07T20:23:50.386000+02:00","administreresAfKommune":"0169","forretningsh‘ndelse":"0","forretningsomr†de":"54.15.10.06","forretningsproces":"0","id_lokalId":"55595d06-fac1-4a07-b7e8-7365fe9428cc","id_namespace":"http://data.gov.dk/dar/navngivenvej","registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsakt›r":"DAR","status":"3","udtaltVejnavn":"Spaden C","vejadresseringsnavn":"Spaden C","vejnavn":"Spaden C","vejnavnebeliggenhed_oprindelse_kilde":"Ekstern","vejnavnebeliggenhed_oprindelse_n›jagtighedsklasse":"B","vejnavnebeliggenhed_oprindelse_registrering":"2016-09-01T18:20:58.068000+02:00","vejnavnebeliggenhed_oprindelse_tekniskStandard":"NO","vejnavnebeliggenhed_vejnavneomr†de":"POLYGON((706160.12 6172245.95,706186.79 6172080.73,706152.796674 6172075.24276,706126.126674 6172240.46276,706160.12 6172245.95))","virkningFra":"1900-01-01T13:00:00.000000+01:00","virkningsakt›r":"Konvertering2017SDFE","navngivenVejKommunedelList":[{"id_lokalId":"a07f8a98-6f7e-11e6-a528-063320a53a26","navngivenVejKommunedel":{"datafordelerOpdateringstid":"2016-10-07T20:24:18.076000+02:00","forretningsh‘ndelse":"1","forretningsomr†de":"54.15.10.06","forretningsproces":"0","id_lokalId":"a07f8a98-6f7e-11e6-a528-063320a53a26","id_namespace":"http://data.gov.dk/dar/navngivenvejkommunedel","kommune":"0169","navngivenVej":"55595d06-fac1-4a07-b7e8-7365fe9428cc","registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsakt›r":"DAR","status":"3","vejkode":"7428","virkningFra":"1900-01-01T13:00:00.000000+01:00","virkningsakt›r":"Konvertering2017SDFE"}}]},"adgangspunkt":{"datafordelerOpdateringstid":"2016-10-07T17:45:04.681000+02:00","oprindelse_kilde":"Ekstern","oprindelse_n›jagtighedsklasse":"A","oprindelse_registrering":"2014-11-28T13:14:48.957000+01:00","oprindelse_tekniskStandard":"TK","position":"POINT(706176.77 6172114.13)"},"vejpunkt":{"datafordelerOpdateringstid":"2016-10-07T19:07:13.562000+02:00","oprindelse_kilde":"Ekstern","oprindelse_n›jagtighedsklasse":"B","oprindelse_registrering":"2016-09-01T18:22:45.177000+02:00","oprindelse_tekniskStandard":"V2","position":"POINT(706163.08 6172175.47)"},"supplerendeBynavn":{"datafordelerOpdateringstid":"2016-10-07T20:28:02.261000+02:00","forretningsh‘ndelse":"5","forretningsomr†de":"54.15.10.25","forretningsproces":"0","id_lokalId":"a684854a-3f14-438e-a763-9841ee1f12ad","id_namespace":"http://data.gov.dk/dar/supplerendebynavn","navn":"H›je Taastrup","registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsakt›r":"DAR","status":"3","supplerendeBynavn":"1647901","virkningFra":"1753-01-01T00:50:00.000000+00:50","virkningsakt›r":"Konvertering2017"}}]

Statuscode: OK
Statuscode: StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Transfer-Encoding: chunked
  SwitchboardPerformanceInMs: 474.0738
  Access-Control-Allow-Origin: *
  Cache-Control: private
  Date: Fri, 29 Nov 2019 12:16:41 GMT
  Server: datafordeler.dk
  X-Powered-By: datafordeler.dk
  Content-Type: application/json; charset=UTF-8
}
Elapsed time in miliseconds: 550



Zip-fil med eksempel

dotnet_SAML2 token auth.zip




Java

Client auth SSL

Eksemplet er oprettet for at vise Direct SSL klient certifikat autorisation på Datafordeleren.

Den originale SSL autorisationskode er uarbejdet af Pavan Solapure: https://github.com/pavansolapure/opencodez-samples/tree/master/2-way-ssl-authentication/ssl-client/src/main/java/com/opencodez

Dette eksempel er skabt ved at benytte Spring tool suite 4.3.2

Fremgangsmåde

  • Kopier et FOCES eller VOCES service user keystore til /etc/ folder
  • Skab en reference til filen og din adgangskode i SslClientApplication.java filen
  • Skift url'en til den tjeneste på Datafordeleren, som du ønsker at benytte i HttpClient.java
  • Kør ClientSSLTest.java class, som en Spring Boot app eller Java application



Eksempel på output
   .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.8.RELEASE)

2019-11-29 13:39:16.508  INFO 1276 --- [           main] d.k.c.datafordeler.tests.ClientSSLTest   : Starting ClientSSLTest on yyyyy with PID 1276 (C:\repos\java\Workspace1\DatafordelerClientCertExample\target\test-classes started by xxxxx in C:\repos\java\Workspace1\DatafordelerClientCertExample)
2019-11-29 13:39:16.510  INFO 1276 --- [           main] d.k.c.datafordeler.tests.ClientSSLTest   : No active profile set, falling back to default profiles: default
2019-11-29 13:39:17.240  INFO 1276 --- [           main] d.k.c.datafordeler.tests.ClientSSLTest   : Started ClientSSLTest in 1.212 seconds (JVM running for 1.682)
[{"datafordelerOpdateringstid":"2016-10-07T19:27:59.802000+02:00","adgangsadressebetegnelse":"Spaden C 2, Høje Taastrup, 2630 Taastrup","afstemningsområde":{"id":"1566156","afstemningsområdenummer":"06","navn":"Gadehaveskolen"},"forretningshændelse":"3","forretningsområde":"54.15.10.07","forretningsproces":"0","geoDanmarkBygning":"1005307686","husnummerretning":"POINT(0.946085358827545 -0.32391741819815)","husnummertekst":"2","id_lokalId":"0a3f507d-1a3d-32b8-e044-0003ba298018","id_namespace":"http://data.gov.dk/dar/husnummer","jordstykke":"402274","kommuneinddeling":{"id":"389114","kommunekode":"0169","navn":"Høje Taastrup"},"menighedsrådsafstemningsområde":{"id":"1700977","mrafstemningsområdenummer":"1","navn":"Høje Taastrup"},"registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsaktør":"DAR","sogneinddeling":{"id":"107659","sognekode":"7152","navn":"Høje Taastrup"},"status":"3","vejmidte":"1006309113","virkningFra":"2016-09-16T12:34:43.000000+02:00","virkningsaktør":"Konvertering2017","navngivenVej":{"datafordelerOpdateringstid":"2016-10-07T20:23:50.386000+02:00","administreresAfKommune":"0169","forretningshændelse":"0","forretningsområde":"54.15.10.06","forretningsproces":"0","id_lokalId":"55595d06-fac1-4a07-b7e8-7365fe9428cc","id_namespace":"http://data.gov.dk/dar/navngivenvej","registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsaktør":"DAR","status":"3","udtaltVejnavn":"Spaden C","vejadresseringsnavn":"Spaden C","vejnavn":"Spaden C","vejnavnebeliggenhed_oprindelse_kilde":"Ekstern","vejnavnebeliggenhed_oprindelse_nøjagtighedsklasse":"B","vejnavnebeliggenhed_oprindelse_registrering":"2016-09-01T18:20:58.068000+02:00","vejnavnebeliggenhed_oprindelse_tekniskStandard":"NO","vejnavnebeliggenhed_vejnavneområde":"POLYGON((706160.12 6172245.95,706186.79 6172080.73,706152.796674 6172075.24276,706126.126674 6172240.46276,706160.12 6172245.95))","virkningFra":"1900-01-01T13:00:00.000000+01:00","virkningsaktør":"Konvertering2017SDFE","navngivenVejKommunedelList":[{"id_lokalId":"a07f8a98-6f7e-11e6-a528-063320a53a26","navngivenVejKommunedel":{"datafordelerOpdateringstid":"2016-10-07T20:24:18.076000+02:00","forretningshændelse":"1","forretningsområde":"54.15.10.06","forretningsproces":"0","id_lokalId":"a07f8a98-6f7e-11e6-a528-063320a53a26","id_namespace":"http://data.gov.dk/dar/navngivenvejkommunedel","kommune":"0169","navngivenVej":"55595d06-fac1-4a07-b7e8-7365fe9428cc","registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsaktør":"DAR","status":"3","vejkode":"7428","virkningFra":"1900-01-01T13:00:00.000000+01:00","virkningsaktør":"Konvertering2017SDFE"}}]},"adgangspunkt":{"datafordelerOpdateringstid":"2016-10-07T17:45:04.681000+02:00","oprindelse_kilde":"Ekstern","oprindelse_nøjagtighedsklasse":"A","oprindelse_registrering":"2014-11-28T13:14:48.957000+01:00","oprindelse_tekniskStandard":"TK","position":"POINT(706176.77 6172114.13)"},"vejpunkt":{"datafordelerOpdateringstid":"2016-10-07T19:07:13.562000+02:00","oprindelse_kilde":"Ekstern","oprindelse_nøjagtighedsklasse":"B","oprindelse_registrering":"2016-09-01T18:22:45.177000+02:00","oprindelse_tekniskStandard":"V2","position":"POINT(706163.08 6172175.47)"},"supplerendeBynavn":{"datafordelerOpdateringstid":"2016-10-07T20:28:02.261000+02:00","forretningshændelse":"5","forretningsområde":"54.15.10.25","forretningsproces":"0","id_lokalId":"a684854a-3f14-438e-a763-9841ee1f12ad","id_namespace":"http://data.gov.dk/dar/supplerendebynavn","navn":"Høje Taastrup","registreringFra":"2016-07-08T17:10:50.000000+02:00","registreringsaktør":"DAR","status":"3","supplerendeBynavn":"1647901","virkningFra":"1753-01-01T00:50:00.000000+00:50","virkningsaktør":"Konvertering2017"}}]



Zip-fil med eksempel

java_client auth SSL.zip




Ubuntu 19

Client auth SSL

Eksemplet er oprettet for at vise Direct SSL klient certifikat autorisation på Datafordeleren.

Bemærk, at hvis dit FOCES eller VOCES certifikat er udstedt af en anden OCES certifikatkæde skal du importere disse certifikater i PEM format og have dem installeret, som beskrevet i nedenstående.

Tjek om du har de korrekte certifikater på /etc/ssl/certs/  

Fremgangsmåde

  • Placer de følgende PEM certifikater i /etc/ssl/certs/

DigiCert_SHA2_Secure_Server_CA.pem
TRUST2408_OCES_Primary_CA.pem
TRUST2408_OCES_CA_III.pem
TRUST2408_OCES_CA_IV.pem
TRUST2408_OCES_CA_V.pem

  • Kør sudo c_rehash for at tilføje certifikaterne til systemet.
  • Kør openssl s_client -connect datafordeler.dk:443 -cert pub.pem -key priv.key

Tjek følgende

Er pub.pem (FOCES certifikatet i PEM-format) placeret i den korrekte folder?
Er priv.key (den private nøgle for FOCES certifikatet i PEM-fomat) placeret i den korrekte folder?
Er output er uden fejl og stemmer det overens med nedenstående eksempel?


Tjek følgende

Er pub.pem (FOCES certifikatet i PEM-format) placeret i den korrekte folder?
Er priv.key (den private nøgle for FOCES certifikatet i PEM-fomat) placeret i den korrekte folder?
Er output i xml uden fejl og stemmer det overens med nedenstående eksempel?




Eksempel på output
<?xml version="1.0" encoding="UTF-8"?>

-<Capabilities version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns="http://www.opengis.net/wmts/1.0">


-<ows:ServiceIdentification>

<ows:ServiceType>OGC WMTS</ows:ServiceType>

<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>

</ows:ServiceIdentification>


-<ows:ServiceProvider>


-<ows:ServiceContact>

<ows:ContactInfo/>

</ows:ServiceContact>

</ows:ServiceProvider>


-<ows:OperationsMetadata>


-<ows:Operation name="GetCapabilities">


-<ows:DCP>


-<ows:HTTP>


-<ows:Get xlink:href="https://services.datafordeler.dk/DKskaermkort/topo_skaermkort_graa/1.0.0/Wmts?">


-<ows:Constraint name="GetEncoding">


-<ows:AllowedValues>

<ows:Value>KVP</ows:Value>

</ows:AllowedValues>

</ows:Constraint>

</ows:Get>

</ows:HTTP>

</ows:DCP>

</ows:Operation>


-<ows:Operation name="GetTile">


-<ows:DCP>


-<ows:HTTP>


-<ows:Get xlink:href="https://services.datafordeler.dk/DKskaermkort/topo_skaermkort_graa/1.0.0/Wmts?">


-<ows:Constraint name="GetEncoding">


-<ows:AllowedValues>

<ows:Value>KVP</ows:Value>

</ows:AllowedValues>

</ows:Constraint>

</ows:Get>

</ows:HTTP>

</ows:DCP>

</ows:Operation>

</ows:OperationsMetadata>


-<Contents>


-<Layer>

<ows:Title>topo_skaermkort_graa</ows:Title>


-<ows:WGS84BoundingBox>

<ows:LowerCorner>2.478420 53.015000</ows:LowerCorner>

<ows:UpperCorner>17.557800 58.640300</ows:UpperCorner>

</ows:WGS84BoundingBox>

<ows:Identifier>topo_skaermkort_graa</ows:Identifier>


-<Style isDefault="true">

<ows:Identifier>default</ows:Identifier>

</Style>

<Format>image/png</Format>


-<TileMatrixSetLink>

<TileMatrixSet>View1</TileMatrixSet>


-<TileMatrixSetLimits>


-<TileMatrixLimits>

<TileMatrix>View1:0</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>1</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>2</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:1</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>2</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>4</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:2</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>5</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>8</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:3</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>11</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>16</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:4</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>22</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>33</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:5</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>45</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>67</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:6</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>91</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>134</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:7</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>183</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>268</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:8</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>366</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>537</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:9</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>732</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>1074</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:10</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>1464</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>2148</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:11</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>2929</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>4296</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:12</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>5859</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>8593</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:13</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>11718</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>17187</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:14</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>23437</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>34374</MaxTileCol>

</TileMatrixLimits>


-<TileMatrixLimits>

<TileMatrix>View1:15</TileMatrix>

<MinTileRow>0</MinTileRow>

<MaxTileRow>46874</MaxTileRow>

<MinTileCol>0</MinTileCol>

<MaxTileCol>68749</MaxTileCol>

</TileMatrixLimits>

</TileMatrixSetLimits>

</TileMatrixSetLink>

<ResourceURL template="https://services.datafordeler.dk/DKskaermkort/topo_skaermkort_graa/1.0.0/Wmts/topo_skaermkort_graa/default/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png" resourceType="tile" format="image/png"/>

</Layer>


-<TileMatrixSet>

<ows:Identifier>View1</ows:Identifier>


-<ows:BoundingBox crs="urn:ogc:def:crs:EPSG:6.3:25832">

<ows:LowerCorner>120000.000000 5900000.000000</ows:LowerCorner>

<ows:UpperCorner>1000000.000000 6500000.000000</ows:UpperCorner>

</ows:BoundingBox>

<ows:SupportedCRS>urn:ogc:def:crs:EPSG:6.3:25832</ows:SupportedCRS>


-<TileMatrix>

<ows:Identifier>0</ows:Identifier>

<ScaleDenominator>5851428.57142857182770967484</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>3</MatrixWidth>

<MatrixHeight>2</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>1</ows:Identifier>

<ScaleDenominator>2925714.28571428591385483742</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>5</MatrixWidth>

<MatrixHeight>3</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>2</ows:Identifier>

<ScaleDenominator>1462857.14285714295692741871</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>9</MatrixWidth>

<MatrixHeight>6</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>3</ows:Identifier>

<ScaleDenominator>731428.57142857147846370935</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>17</MatrixWidth>

<MatrixHeight>12</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>4</ows:Identifier>

<ScaleDenominator>365714.28571428573923185468</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>34</MatrixWidth>

<MatrixHeight>23</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>5</ows:Identifier>

<ScaleDenominator>182857.14285714286961592734</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>68</MatrixWidth>

<MatrixHeight>46</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>6</ows:Identifier>

<ScaleDenominator>91428.57142857143480796367</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>135</MatrixWidth>

<MatrixHeight>92</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>7</ows:Identifier>

<ScaleDenominator>45714.28571428571740398183</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>269</MatrixWidth>

<MatrixHeight>184</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>8</ows:Identifier>

<ScaleDenominator>22857.14285714285870199092</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>538</MatrixWidth>

<MatrixHeight>367</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>9</ows:Identifier>

<ScaleDenominator>11428.57142857142935099546</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>1075</MatrixWidth>

<MatrixHeight>733</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>10</ows:Identifier>

<ScaleDenominator>5714.28571428571467549773</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>2149</MatrixWidth>

<MatrixHeight>1465</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>11</ows:Identifier>

<ScaleDenominator>2857.14285714285733774886</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>4297</MatrixWidth>

<MatrixHeight>2930</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>12</ows:Identifier>

<ScaleDenominator>1428.57142857142866887443</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>8594</MatrixWidth>

<MatrixHeight>5860</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>13</ows:Identifier>

<ScaleDenominator>714.28571428571433443722</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>17188</MatrixWidth>

<MatrixHeight>11719</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>14</ows:Identifier>

<ScaleDenominator>357.14285714285716721861</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>34375</MatrixWidth>

<MatrixHeight>23438</MatrixHeight>

</TileMatrix>


-<TileMatrix>

<ows:Identifier>15</ows:Identifier>

<ScaleDenominator>178.57142857142858360930</ScaleDenominator>

<TopLeftCorner>120000.000000 6500000.000000</TopLeftCorner>

<TileWidth>256</TileWidth>

<TileHeight>256</TileHeight>

<MatrixWidth>68750</MatrixWidth>

<MatrixHeight>46875</MatrixHeight>

</TileMatrix>

</TileMatrixSet>

</Contents>

</Capabilities>