Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere

Relaterede dokumenter
Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere

Affaldsdatasystem Vejledning i system-til-system integration

Kald af PingService via SOAPUI

Tredjepart webservices

Indholdsfortegnelse. Version Serviceplatformen - opsætningsguide (Eksterne testmiljø) Indledning... 2

Digitaliseringsstyrelsen

Affaldsdatasystem Vejledning i system-til-system integration

NemRefusion VSLight Integrationsvejledning

Affaldsdatasystem Vejledning i system til system integration

DIADEM KOM GODT I GANG INTEGRATIONSVEJLEDNING IFT. SIKKERHED OG VERSIONERING AF WEBSERVICES VERSION: STATUS: FRIGIVET DATO: 22.

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.

Webservice kald. System-til-system integration. Ny Easy. ATP 1. februar 2017

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Testservice med anvendelse af Microsoft software.

Godkendelsesdato Version Rettet af Rettelse(r)

Indhold. Senest opdateret:03. september Side 1 af 8

AuthorizationCodeService

Indhold. Senest opdateret : 30. juli Side 1 af 5

Hvordan vælger jeg dokumentprofilen?

Dokumentet giver en beskrivelse af anvendelsen af den webservice der er tilknyttet GIS (Generisk Integration Snitflade) til Navision Stat.

Opsætning af udviklerversion af Microsofts open source XDS.b fra Codeplex Projekt: Net4Care Version: V0.1,

Indberetning af afregninger teknik

Vejledning til Retsinformation web services test stubs

SOSIGW. - Administrationskonsol for SOSIGW Indeks

Serviceplatformens opsætningsguide til leverandører

Tech College Aalborg. HomePort. Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort

Installationsvejledning Installation af Digital Underskrift Enterprise

Navision Stat (NS 9.2)

Ivan Overgaard 11/29/2012

Navision Stat 7.0. Webservice til Generisk integrationssnitflade (GIS) Overblik. Side 1 af 21. ØSY/CRA/CPS/ CRA Opr

Affaldsdatasystem Vejledning i manuel indberetning

1 Domæne Design valg User Klassediagran 5

Civilstyrelsen. Lovtidende. Generisk webservice til søgning af afgørelser - Vejledning. Version:

Integrationsmanual. Anvendelse af webservice til persondataimport til Campus. Brugervejledning til udviklere

Integrationsmanual. Anvendelse af webservice til persondataimport til Campus. Brugervejledning til udviklere

MM Hul-Igennem-Test i Prod. Information til kunder

Nemhandel infrastruktur. Morten Hougesen Christian Uldall Pedersen 8. April 2010

Nets Rettighedsstyring

Projekt: NemHandel signaturer

Guide til NemLog-in Security Token Service

Nets - Medarbejder Signatur

D INTEGRATIONSDESIGN FOR DATAAFTAGERE

Navision Stat (NS 9.3)

Version Dato Beskrivelse /11/2012 Initial version /03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Vejledning til leverandørers brug af Serviceplatformen

FairSSL Fair priser fair support

STS Driftsvejledning. STS Driftsvejledning

FairSSL Fair priser fair support

FairSSL Fair priser fair support

GLOBETEAM. Danmarks Miljøportal (DMP) Vejledning til fagsystemejere omkring tilkobling af Java Metrobaseret. Version 1.2

Fjernadgang til BEC s systemer via Portal2

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

DIADEM KOM GODT I GANG INTEGRATIONSVEJLEDNING IFT. SIKKERHED VERSION: 1.3 (INGEN ÆNDRINGER SIDEN 1.1) STATUS: FRIGIVET DATO: 1.

GLOBETEAM. Danmarks Miljøportal (DMP) Vejledning til fagsystemejere omkring tilkobling af.net-baseret web service. Version 1.3

FairSSL Fair priser fair support

Databaseadgang fra Java

.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.

Brugerguide til Stamdatamodulets administrator-gui KOMBIT

VEJLEDNING TIL CERTIFIKATBRUG FOR A- KASSERNES WEBSERVICEINTEGRATION MOD ARBEJDSMARKEDSSTYRELSENS DFDG.

Fjernadgang til BEC s systemer via Portal2

PROGRAMMERS GUIDE SÅDAN KALDER DU SERVICES UDSTILLET VIA SERVICEPLATFORMEN

FairSSL Fair priser fair support

DESIGNDOKUMENT (Teknisk dokumentation)

Specifikationsdokument for servicen MocesWS (islra)

Grænseflade til afhentning og indberetning af prøvekarakterer i dansk og matematik på Optagelse.dk

Webservice til GYM-indberetning til DVH

Teknisk Dokumentation

Gem dine dokumenter i BON s Content Management System (CMS)

Termer og begreber i NemID

Webservice til GYM-indberetning

Nykredit Portefølje Administration A/S

CodeDOM - Dynamisk generering og kompilering af kode

Ibrugtagning af Fødselsindberetningsservicen på NSP

Vejledning for virksomhederne om adgang til Affaldsdatasystemet

STS Designdokument. STS Designdokument

Specifikationsdokument for servicen MocesWS (islra)

Denne installationsvejledning beskriver hvordan man installerer EFI webservices til kommunikation mellem Navision Stat og Skat.

ELEKTRONISK INDBERETNING BØRNEDATABASEN VIA DGWS 13/ VERSION 1.02

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske

MedCom Webservice proxy - Teknisk beskrivelse

Dokumentation Nets Rettighedsstyring (Attributtjeneste)

Dette dokument beskriver de rekonfigurationer, du skal foretage, hvis du fornyr dit eksisterende funktionscertifikat eller anskaffer et nyt.

Bilag WebService LoginModule (BSKAuth)

Opnåelse af tilladelse til at udbyde spil i Danmark

Sektornet VPN Installationsvejledning Windows Vista/7

BESTILLING AF NEMID. For at bestille ny NemID vælger du Vælg Bestil NemID medarbejdersignatur.

Lasso for. Microsoft Dynamics CRM

Navision Stat 7.x. Opsætning af NAS 1 til afvikling af GIS-automatisering, GIS med webservice og opgavekø. Overblik. Side 1 af 8

IIS 8.0 & 8.5 & 10.0 SSL Administration

Vejledning til leverandørers brug af Serviceplatformen

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net

Webservice til upload af produktionstilladelser

Specifikationsdokument for servicen PID-CPR

Termer og begreber i NemID

E-BUSINESS SOLUTIONS FROM CSC! "

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net

Specifikationsdokument for OCSP

Transkript:

Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere Dokument version: 2.2 ADS version: 1.14

Henvendelse vedrørende affald: Miljøstyrelsen, Affaldsdatasystem Strandgade 29 1401 København K Tlf. 72 54 81 81 affaldsdatasystem@mst.dk Yderligere information: www.mst.dk Forsidefoto: Colourbox Side 2 af 15

Indhold 1 INTRODUKTION... 4 1.1 REFERENCER... 4 2 FORUDSÆTNINGER... 5 2.1 MILJØER... 5 2.2 ADGANG... 5 3 EKSEMPLER... 7 3.1 OPSÆTNING OG BRUG AF SERVICE REFERENCE... 7 3.2 OPSÆTNING OG BRUG AF SERVICE CHANNEL...13 4 CHANGE LOG... 15 Side 3 af 15

1 Introduktion Dette dokument er en vejledning til at komme i gang med at bruge webservicen der muliggør system-system indberetning for Affaldsdatasystem (ADS). Vejledningen er skrevet for brugere af Visual Studio/.Net og beskriver skridt for skridt, hvorledes man kan opnå adgang til, og anvende servicen. Der gives to eksempler, der viser til forskellige tilgange til at gøre dette. Webservicen og betingelser for brug, er beskrevet i detaljer i [1]. Dette dokument skal kun ses som et supplement til den fulde vejledning. Altså en ekstra vejledning der gælder specifikt for aftagere af system-system webservicen, der implementerer deres løsning ved hjælp af.net. 1.1 Referencer [1] Vejledning til system til system integration, version 2.6, NNIT. Side 4 af 15

2 Forudsætninger Detaljer om forudsætninger og miljøer til brug af webservicen er beskrevet i [1]. Her opsummeres kort de forudsætninger der skal være opfyldt for at komme i gang med brug af servicen. 2.1 Miljøer Affaldsdatasystemet har et Uddannelses- og et PROD miljø. Uddannelsesmiljøet skal benyttes til test og kvalitetssikring af serviceaftagers integration med affaldsdatasystemet. PROD er affaldsdatasystemet produktionsmiljøet. UDD miljø Web service Web service description Affaldsdatasystemets hjemmeside Placering af skemaer Certifikat URL https://udd.ws.ads.mst.dk/reportsubmitservice.svc https://udd.ws.ads.mst.dk/adsreporting.wsdl https://udd.ads.mst.dk https://udd.ws.ads.mst.dk/schemas/ OCES II funktions certifikat. Udsteder skal være: TRUST2408 OCES CA II PROD miljø Web service Web service description Affaldsdatasystemets hjemmeside Placering af skemaer Certifikat URL https://www.ws.ads.mst.dk/reportsubmitservice.svc https://ws.ads.mst.dk/adsreporting.wsdl https://www.ads.mst.dk https://ws.ads.mst.dk/schemas/ OCES II virksomheds- eller funktionscertifikat. Udsteder skal være: TRUST2408 OCES CA II 2.2 Adgang For at opnå adgang, skal følgende være opfyldt: Virksomheden skal anskaffe et virksomhedscertifikat (VOCES) eller alternativt, et funktionscertifikat (FOCES). Certifikater kan rekvireres hos DanID: https://danid.dk/export/sites/dk.danid.oc/da/erhverv/ Derefter skal virksomheden registreres som systembruger i Affaldsdatasystemet af Affaldssekretariatet (72 54 81 81). Registreringen sker per CVR-nummer, som skal matche det CVR nummer, der er angivet i aftagerens certifikats subject felt: Side 5 af 15

Bemærk at hele webservice sitet kræver autentificering med et validt certifikat. Det gælder også tilgang til webservice beskrivelse og skemaer. Vil man derfor teste om et rekvireret certifikat er gyldigt for webservicen, kan man forsøge at tilgå WSDL filen, f.eks. i en browser, og autentificerer sig med sit certifikat. Er certifikatet ikke validt, eller ikke den rigtige type, vil ADS svare med HTTP status kode 403 Forbidden. Side 6 af 15

3 Eksempler Der findes mange måder at opnå adgang til og anvende en webservice. Disse vil også variere afhængigt af hvilken version af VS og.net frameworket man anvender. Disse eksempler anvender VS2015,.Net 4.5.2, og C# version 6.0, i et console projekt. Nedenstående afsnit viser eksempler på to forskellige fremgangsmåder: At anvende en service reference. En fremgangsmåde der lader VS autogenere klasser og metoder, der kan anvendes til at kalde webservicen. At definere et endpoint, binding og en request SOAP besked, der anvendes ved at oprette en såkaldt channel til webservicen, og kalde den derigennem. Altså en fremgangsmåde der er tættere på transport laget af et servicekald. En fordel ved denne fremgangsmåde, kan være at det tillader at definere indholdet af den sendte request SOAP besked, som ren XML. 3.1 Opsætning og brug af service reference Dette eksempel viser skridt for skridt, hvordan man i et nyoprettet Visual Studio projekt kan opnå adgang til system-system webservicen, og anvende den til at sende en indberetning, ved at anvende en service reference. Udtræk alle filer fra AdsReporting.zip filen som du kan hente samme sted som denne vejledning. De skal ligge i en struktur som denne: 1. Installerer det anskaffede certifikat et passende sted i dit certificate store, f.eks. Current user/localmachine. 2. Verificer at du kan oprette en SSL forbindelse til webservice sitet, ved at åbne stien til WSDL filen https://udd.ws.ads.mst.dk/adsreporting.wsdl i en browser. Du bør blive prompted for et certifikat og password. 3. Opret et nyt Visual Studio projekt og tilføj en ny service reference, her er valgt et windows console program: Side 7 af 15

4. 5. Indtast stien til WSDL en som du pakkede ud fra zip-filen og tryk Go. 6. Side 8 af 15

7. Du får nu en liste med de operations webservicen udstiller: 8. Navngiv referencen og tryk OK. 9. Verificer at reference.cs er blevet oprettet, og der er autogenereret klasser, samt at WSDL og skema filer er hentet fra webservicen, ved at klikke på Show all files i solution explorer en, og udvide referencen: Side 9 af 15

10. Du er nu klar til at oprette instanser af de autogenererede klasser, der kan anvendes i kald til webservicen. Eksempelvis kan man anvende instanser af ReportPortTypeClient og CollectorAndReceiverInputType til at indsende en Indsamler og modtager indberetning. 11. I dette eksempel oprettes et instans af klienten, og der angives et certifikat som antages at være installeret i Local Computer/Personal, og kan identificeres på thumbprint. Der indsendes en indberetning for året 2016, og for produktionsnummeret 1003405438. using NNIT.AdsReportingServiceTest.AdsReporting; using System; using System.Security.Cryptography.X509Certificates; namespace NNIT.AdsReportingServiceTest class Program static void Main(string[] args) //Create instance of web service client var client = new ReportPortTypeClient("AdsReportPort"); //Set certificate to use client.clientcredentials.clientcertificate.setcertificate( StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "da 47 51 19 d8 77 1b d7 90 17 3e 75 41 d0 0b f7 81 f7 9a 51" ); client.clientcredentials.supportinteractive = true; //create instance of request type, for submitting a "Collector and reciever" report var request = new CollectorAndReceiverInputType(); CollectorAndReceiverReportType report = GenerateReport(); request.collectorandreceiverreport = new[] report ; request.productionunitidentifier = "1003405438"; request.reportyear = "2016"; try //Submit report to service ReportSubmissionResult response = client.submitcollectorandreceiverreports(request); //Output result to console if (response!= null) Console.WriteLine(response.serviceResponse); else Console.WriteLine("Service returned empty response"); catch (System.ServiceModel.FaultException exception) Console.WriteLine( String.Format("The service returned a fault message. Code: 0. Message: 1", exception.code.name, exception.message)); catch (Exception exception) Console.WriteLine(exception.Message); Side 10 af 15

private static CollectorAndReceiverReportType GenerateReport() CollectorAndReceiverReportType report = new CollectorAndReceiverReportType(); report.wasteproducer = new WasteProducerType(); report.wasteproducer.item = new WasteProducerMunicipalityType MunicipalityCode = "0101" ; report.eakcode = "01.01.01"; report.treatmentofwaste = new TreatmentOfWasteType FinalProcessingIndicator = true, WasteActivityCode = "01", ItemElementName = ItemChoiceType.DisposalCode, Item = "D1" ; report.wasteinformation = new WasteInformationType WasteCode = "H01" ; report.wasteamount = new WasteAmountType WasteMeasure = "1,8", MeasurementTypeCode = 1 ; return report; Side 11 af 15

3.2 Opsætning i App.config I App.config filen skal der lige ændres en smule så autitentifikationen benytter det angivne certifikat. <?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedruntime version="v4.0" sku=".netframework,version=v4.5.2" /> </startup> <system.servicemodel> <bindings> <basichttpbinding> <binding name="adsreportingbinding"> <security mode="transport" /> </binding> </basichttpbinding> </bindings> <client> <endpoint address="https://udd.ws.ads.mst.dk/reportsubmitservice.svc" binding="basichttpbinding" bindingconfiguration="adsreportingbinding" contract="adsreporting.reportporttype" name="adsreportport" /> </client> </system.servicemodel> </configuration> Skal ændres til: <?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedruntime version="v4.0" sku=".netframework,version=v4.5.2" /> </startup> <system.servicemodel> <bindings> <basichttpbinding> <binding name="adsreportingbinding"> <security mode="transport"> <transport clientcredentialtype="certificate" /> </security> </binding> </basichttpbinding> </bindings> <client> <endpoint address="https://udd.ws.ads.mst.dk/reportsubmitservice.svc" binding="basichttpbinding" bindingconfiguration="adsreportingbinding" contract="adsreporting.reportporttype" name="adsreportport" /> </client> </system.servicemodel> </configuration> Bemærk at configurationen peger på uddannelsesmiljøet address="https://udd.ws.ads.mst.dk/reportsubmitservice.svc", dette skal ændres til address="https://www.ws.ads.mst.dk/reportsubmitservice.svc" i produktionsmilljøet. Side 12 af 15

3.3 Opsætning og brug af service channel Nedenstående kode, et eksempel på anvendelse af webservicen, ved at definerer et endpoint, binding og en request SOAP besked, der anvendes ved at oprette en såkaldt channel til webservicen, og kalde den derigennem. Altså et eksempel der kalder servicen, uden at anvende autogenereret kode. Der angives et certifikat som antages at være installeret i Current user/personal, og kan identificeres på thumbprint. const string url = "https://udd.ws.ads.mst.dk/reportsubmitservice.svc"; //Create binding for web service, with certificate authentication var binding = new BasicHttpBinding(); binding.security.mode = BasicHttpSecurityMode.Transport; binding.security.transport.clientcredentialtype = HttpClientCredentialType.Certificate; //Create end point at web serice url var address = new EndpointAddress(url); //Create new channel factory, using interface which defines the service contract var cf = new ChannelFactory<IReportSubmitService>(binding, address); //Set credentials on channel = certificate expected to be found in Current user/personal" cf.credentials.clientcertificate.setcertificate(storelocation.currentuser, StoreName.My, X509FindType.FindByThumbprint, "da 47 51 19 d8 77 1b d7 90 17 3e 75 41 d0 0b f7 81 f7 9a 51"); cf.credentials.supportinteractive = true; //Open channelfactory and create service channel cf.open(); IReportSubmitService service = cf.createchannel(); //Create XML reader for, which reads content of SOAP body to send in request var xmltextreader = new XmlTextReader(@"AdsTestRequestSoapMessageBody.xml"); //Create request message var request = Message.CreateMessage(MessageVersion.Soap11, "Message_From_Ads_Test_Program", xmltextreader); //Call web service, using constructed message Message response = service.processmessage(request); //Close the channel factory if (cf.state == CommunicationState.Opened) cf.close(); //Is response empty? if (response.isempty) Console.WriteLine("Service returned empty response"); return; //Did the service return a fault? if (response.isfault) Console.WriteLine("The service returned a fault message"); //Deserialize the body contents of the response message var ms = new MemoryStream(); using (var memwriter = XmlDictionaryWriter.CreateTextWriter(ms, Encoding.UTF8, false)) response.writebodycontents(memwriter); memwriter.flush(); Side 13 af 15

//Write the message to console Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray())); For at oprette en channel er det nødvendigt at definerer et interface, der definerer service kontrakten. Her kan man udnytte at ADS webservicen er en catch all, der fanger alle typer kald, og behandler dem afhængigt af kaldets body. Dermed kan man nøjes med at definerer en operation: using System.ServiceModel; using System.ServiceModel.Channels; namespace NNIT.AdsReportingServiceTest [ServiceContract] public interface IReportSubmitService [OperationContract(IsOneWay = false, Action = "*", ReplyAction = "*")] Message ProcessMessage(Message message); I eksemplet læser vi selve indholdet af den request SAOP besked der sendes, fra en fil. Denne fil skal således indeholde XML der matcher de skemaer der er defineret i webservicebeskrivelsen og beskrevet i [1]. Vil man f.eks. sende en request, der sender en indsamler og modtager indberetning, kunne indholdet se således ud: <CollectorAndReceiverInput xmlns="http://rep.oio.dk/mst.dk/xml/schemas/2010/04/01/"> <ReportYear>2010</ReportYear> <ProductionUnitIdentifier xmlns="http://rep.oio.dk/cvr.dk/xml/schemas/2005/03/22/">1004800695</productionunitidentifier> <CollectorAndReceiverReport> <WasteProducer> <WasteProducerMunicipality> <MunicipalityCode xmlns="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/">0151</municipalitycode> </WasteProducerMunicipality> </WasteProducer> <WasteAmount> <WasteMeasure>12,121</WasteMeasure> <MeasurementTypeCode>1</MeasurementTypeCode> <MeasurementText>Container</MeasurementText> </WasteAmount> <EAKcode>12.12.12</EAKcode> <WasteInformation> <WasteCode>E21</WasteCode> </WasteInformation> <TreatmentOfWaste> <WasteActivityCode>55</WasteActivityCode> <FinalProcessingIndicator>true</FinalProcessingIndicator> <DisposalCode>D6</DisposalCode> </TreatmentOfWaste> </CollectorAndReceiverReport> </CollectorAndReceiverInput> Side 14 af 15

4 Change log Date Version Beskrivelse Initialer 2010-09-27 1.0 Første version LNJa 2010-09-27 1.1 Tilføjet afsnit der viser brug af service channel LNJa 2010-10-20 1.2 Mindre rettelser LNJa 2011-02-04 2.0 Revideret version. Indeholdende mindre rettelser og kontaktinformation. 2015-11-17 2.1 Affaldsdatasystemets adresse er opdateret Henvisninger til TEST er delvis slettet. LNJa arguz 2015-12-02 2.1 Henvisninger til test er slettet men ikke i figurer Jeje 2016-04-05 2.2 Afsnit 3 omskrevet, brug af VS2015 i stedet for VS2008. Import af service fra wsdl-fil i stedet for URL der ikke virker i Visual Studio (ikke muligt at anvende certifikat). KnuC Side 15 af 15