a guide to secure web services with gjxml hey i downloade d an iepd! cool, how do you write a web...

16
A Guide to Secure A Guide to Secure Web Services with Web Services with GJXML GJXML Hey I downloade d an IEPD! Cool, how do you write a web service? I use .N ET Moo! I use Java

Upload: raymond-hoover

Post on 29-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

A Guide to Secure A Guide to Secure Web Services with Web Services with

GJXMLGJXML

A Guide to Secure A Guide to Secure Web Services with Web Services with

GJXMLGJXMLHey I download

ed an IEPD!

Cool, how do you write a

web service?

I use .N

ET

Moo! I use

Java

WIJIS

Justice Gateway

The WIJIS Justice Gateway:The WIJIS Justice Gateway: A single, secure point of read-only access to disparate state and local justice information resources.

Local Law EnforcementRecords Management Systems

Service-Oriented Service-Oriented ArchitectureArchitecture

1) Publish pointers from RMS

to Gateway Cache2) End Users Search Cache,

Request Incident Report

3) Gateway requests Incident

Report from RMS

4) RMS returns Incident Report

5) Gateway displays

Incident Report

WIJISWIJISWIJIS Developer Guide

Service providers should be mapping data to GJXML, not bogged down in implementation details

Provide example WSDL – Contract First!Server and client implementation in multiple languagescompile schema into objectsXSLThttp://www.wijiscommons.org/gjxdm_example/

WIJISWIJIS

Incident Report IEPD – The Homer Simpson Case StudyIEPD can be downloaded here: http://www.search.org/programs/info/xml-iep.asp

Doh, Now what?

Let’s take a look, we see… Instance ExamplesDocument and constraint schemas

WIJISWIJIS

DOT NET 2.0 InstructionsGenerate C# Objects from WSDL with this command: wsdl.exe /server

http://wijis.wisconsin.gov/wsdl/RecordRetrievalServiceWithIEPD.wsdl

Create .NET Web Service and add references

Example C# files and instructions here:http://www.wijiscommons.org/gjxdm_example/#dotNet

WIJISWIJIS

Testing the Service – The Python WayCreate a sample invocation file

Run the sample python scriptScript can be run over http, https or https w/ client certificates

Keep the test client simple!

Examples available here:http://www.wijiscommons.org/gjxdm_example/#client

WIJISWIJIS

Java Instructions - OverviewGenerate Jar File from WSDL using JaxbDownload sample Record Retrieval Service Project for EclipseWIJIS provides Ant tasks in projectFull details at: http://www.wijiscommons.org/gjxdm_example/#java

WIJISWIJIS

Make your XML look Pretty - XSLTWIJIS Gateway invokes services, then:WIJIS Needed to transform resultsEnd users are not machines but humans

Distributing XSLT helps service providers inspect Incident Reports before publishingInstance and transformed documents here

http://www.wijiscommons.org/gjxdm_example/#xslt

WIJISWIJIS

WIJIS – Security OverviewIncident Report request conducted over HTTPS with X509 Client Certificates

Layer 3 IP Address filtering

WIJIS runs our own certificate authority

Authorization granted based on name in certificate

WIJISWIJIS

WIJIS – 4 Security TestsCertificate signed by WIJIS Certificate Authority

Certificate is not expired

Name in Certificate matches name on wireCertificate has been revoked

WIJISWIJIS

X509 Certificate Request ProcessClient creates a private keyopenssl genrsa -out MyPrivateKey.key 1024

Using private key, client creates a Certificate Signing Request (CSR)

openssl req -new -nodes -key MyPrivateKey.key -out MyCSR.csr

CSR sent to CA and signed certificate is returnedSigned certificate can be joined with Private Key

openssl pkcs12 -export -in MyCertificate.pem -inkey MyPrivateKey.key -out MyPFXFile.pfx

WIJISWIJIS

X509 Certificate ToolsOpenSSLuseful for both .NET and Java users.

Keytooluseful only for Java users

Microsoft CertUtil – Not really useful for anyone

WIJISWIJIS

Example Server Configurations with SSL and Client CertificatesIIS 6.0 Step by Step available at:

http://www.wijiscommons.org/gjxdm_example/#dotNet

Apache Tomcat 5.5Step by Step available at:

http://www.wijiscommons.org/gjxdm_example/#java

WIJISWIJIS

IEPD Distribution SuggestionsIn addition to Instance Examples, includeExample WSDLAuto-generated C# files and Jar Files

(JaxB)Sample Implementations and test clientXSLT with sample HTML output

WIJISWIJIS

Developer Guide – Return on InvestmentLowers the barriers to secure web services using GJXML

Re-use of code saves developer time for agencies/vendors and stretches grant $$

Vendors integrate with WIJIS once and can distribute to all customers

Prior to Guide: 0 Services, now 7 vendors, over 73 agencies in 8 months

LinksLinks

wijiscommons.org/gjxdm_example – wijis developer guide

oja.wi.gov/wijis – WIJIS Web Pagewijisgateway.org – WIJIS Blog

Contact InfoContact Info

[email protected]@wisconsin.gov