웹서비스

Download Report

Transcript 웹서비스

Web Service

2014.09

<

사업

2

팀 김한솔

>

Content 1. What is the WebService?

2. .Net WebService 3. Ajax WebService 4. jQuery Ajax WebService 5. Create WebService 6. Network Credential

2

What is the WebService?

- Network 상에서 서로 다른 종류의 기기들간에 Data를 주고받기 위한 Software System이다.

- WebService의 주요 구성요소 1) WSDL(Web Service Description Language) 2) SOAP(Simple Object Access Protocol) 3) UDDI(Universal Description, Discovery, and Integration)

3

What is the WebService?

1. WSDL(Web Service Description Language) - 웹서비스에서 제공하는 기능들을 외부에서 이용할 수 있도록 사용방법을 알려주는 XML기반으로 작성된 Interface Language.

- 분산 시스템에 대한 설명서 제공 및 응용 프로그램 통신과 관련된 자세한 정보를 자동화 할 수 있 도록 한다.

- 크게 type, message, portType, binding, service로 나뉜다.

4

What is the WebService?

2. SOAP(Simple Object Access Protocol) - XML과 HTTP등을 기본으로 다른기기에 있는 Data 및 Service를 호출하기 위한 Protocol - XML은 플랫폼에 종속적이지 않으므로 이 기종간의 통신이 용이함 - HTTP를 사용함으로 다른 RPC에 비해 Proxy와 방화벽의 제약을 받지않고 쉽게 통신이 가능 - 플랫폼과 프로그래밍 언어에 대해 독립적인 Protocol

5

What is the WebService?

3. UDDI(Universal Description, Discovery, and Integration) - 개방형 표준과 비독점적 기술을 기반으로 개발된 전역 비즈니스 Resigtry - 웹 서비스 관련 정보의 공개 및 탐색을 위한 표준 - UDDI 세가지 구성요소

1) 화이트 페이지(White page)

- 인터넷 사용자에 대한 기본적 정보를 제공하는 서비스 - 사람의 이름을 통해 Email, 전화번호, 우편주소 등의 정보 제공

2) 옐 로 페이지(Yellow page)

- 화이트 페이지와는 달리 분야(업종)별로 분류해 놓고 정보를 제공하는 서비스 - 참고자료나 기초 자료 없이 특정 정보를 검색 할 때 편리함

3) 그 린 페이지(Green Page)

- 비즈니스를 통해 노출된 서비스에 대한 기술 정보

6

What is the WebService?

WebService의 사용방법 1. .Net WebService - 웹서비스를 C#(.cs파일)에서 호출하여 사용하는 방식 2. Ajax WebService - ScriptManager를 통해 JavaScript에서 호출하여 사용하는 방식 3. jQuery Ajax WebService - jQuery의 $.ajax()를 통해 호출하여 사용하는 방식

7

.Net WebService - 웹서비스를 C#(.cs)에서 호출하여 사용하는 방식 - 장점 : 후에 dll로 만들어지기 때문에 코드의 보안성이 좋다.

Network Credential 인증이 가능하다.

- 단점 : 웹서비스 호출시 ServerSide로 가서 실행이 되므로 PostBack에 의해 페이지를 다시 Binding하므로 javascript 단의 ajax처리에 비해 메모리를 많이 사용한다.

8

.Net WebService <사용법> 1. 프로젝트 우클릭 -> 서비스 참조 추가 -> 고급 -> 웹 참조 추가 클릭

9

.Net WebService 2. 웹서비스 경로를 입력(URL로 입력) 후 URL 우측의 화살표 클릭

10

.Net WebService 3. CS단에서 웹 참조 호출

11

Ajax WebService - ScriptManager를 사용하여 JavaScript에서 웹서비스를 호출하여 사용하는 방식 - 장점 : jQuery를 사용하지 않아도 Ajax처리가 가능하다.

Network Credential 인증이 가능하다.

- 단점 : jQuery Ajax와 비교하였을시 오로지 비동기 호출만 가능하여 동기호출이 필요할 경우 사용할 수 없다.

jQuery에 비해 처리속도가 느리다.

ViewState 데이터가 누적된다.

12

Ajax WebService <사용법> 1. 를 통해 사용할 웹서비스를 설정한다

13

jQuery Ajax WebService 2. 웹서비스 호출 function을 만들고 function을 호출할 컨트롤을 연결한다.

14

jQuery Ajax WebService - ScriptManager를 사용하여 JavaScript에서 웹서비스를 호출하여 사용하는 방식 - 기본적으로 type, url, data, success, error를 사용하며 그 외에도 여러 속성들이 존 재한다.

- 장점 : async를 통한 동기, 비동기 설정이 가능하다.

server side를 거치지 않고 처리가 되기 때문에 postback이 일어나지 않는다.

Get, Post 두가지 방식의 사용이 가능하다.

ASP.Net Ajax에 비해 처리속도가 빠르다.

- 단점 : Network Credential 인증을 할 수 없으므로 보안에 문제가 있다.

15

jQuery Ajax WebService <사용법> 1. jQuery-1.11.1.min.js 파일을 추가해준다.

16

Ajax WebService 2. $.ajax를 사용시 url을 통해 웹서비스를 연결하고 data를 통해 인자값을 전달한다.

17

Create WebService 1. ASP.NET Ajax, jQuery Ajax를 사용하기 위해서는 [ScriptService]를 선언할 것

18

Create WebService 2. ASP.Net Ajax 또는 .Net을 통해 호출시 데이터 형태 지정해줄 것(기본 XML)

19

Create WebService 3. CodeBehind에 소스 작성시 dll로 만들어지므로 수정 및 재배포에 어려움이 많으 므로 asmx에 직접 작성할 것

20

Network Credential - 암호기반의 인증체계에 자격증명을 제공하는 Microsoft에서 제작한 클래스 - SSL클라이언트 인증과 같은 공개 키 기반 인증메서드 지원 안 함.

- 대표적인 암호기반 인증체계 1. 기본인증 2. 다이제스트 인증 3. NTLM인증 4. Kerberos 인증

21

Network Credential 1. 기본인증(Basic Authentication) - 사용자명과 패스워드를 Base64형태로 인코딩하여 전송하는 방식 - 장점: 인터넷 표준 모든 주요 Browser에서 지원됨 비교적 단순한 Protocol - 단점: 요청과 함께 사용자의 자격증명이 전송됨 자격 증명이 평문으로 전송 Browser의 세션종료 외에 로그아웃 방법이 없음 Base64로 인코딩된 데이터의 해독이 쉬워 암호화해도 의미가 없음 CSRF(Cross Site Request Forgery)에 취약하여 별도의 대응방안 필요

22

Network Credential 2. 다이제스트 인증(Digest Authentication) - 네트워크를 통해 암호가 아닌 다이제스트 또는 해시를 보내는 인증방식 - 사용자명, 패스워드를 MD5형태로 조합하여 전송 - MD5(Message-Digest algorithm 5) - 128bit 암호화 해시 함수, 암호화, 체크섬 무결성 검사등에 사용 - 임의의 길이 문자열 입력 시, 128bit의 문자열 출력 - 장점: 기본인증에 비해 조금 더 개선된 인증방식 - 단점: 모든 웹브라우저에서 지원하는 인증방식이 아님 기본인증에서 약간 개선된 인증방식이므로 보안에 취약함 인증 사용을 위한 요구사항 충족이 힘듬

23

Network Credential 3. NTLM인증(windows NT Lan Manager Authentication) - Windows Msv1_0.dll에 포함된 인증 Protocol 집합 - 계정의 신원을 확인하기 위해 네트워크를 통해 Hash화 된 암호 또는 암호를 보내지 않고 Challenge/Response 절차를 사용 - 도메인계정의 경우: 도메인 컨트롤러의 인증 서비스에 컴퓨터 또는 사용자 계정 도메인을 문의 - 로컬계정의 경우: 로컬 계정 데이터베이스에서 컴퓨터 또는 사용자의 계정 조회 - 단점: TelNet 세션을 HTML형식 문서나 전자메일을 통해 가로챌 수 있음 그로인해 인증서를 쉽게 탈취당할 위험이 있음

24

Network Credential 4. Kerberos 인증(Kerberos Authentication) - 클라이언트 서버 모델을 목적으로 개발 - 사용자와 서버가 서로 식별할 수 있는 상호인증을 제공 - 장점: 메시지가 도청 및 재전송 공격으로부터 보호됨 인증구간에서 비대칭 암호 키 방식을 사용함으로써 선택적 공개 키 암호방식 사용가능

25