2010-08-22 3 views
0

웹에 게시 할 공개 메소드가 많은 API를 만들고 보안을 설정해야합니다. 이 경우 암호화가 아니라 인증입니다.웹 서비스 보안

웹 서비스를 사용하는 사람은 누구나 데이터베이스에 등록 된 사용자이므로 외부인은 사용할 수 없습니다. 나는 API 키에 대해 읽었지 만, 그들이 내 문제에 대한 올바른 접근법이 아니고 그것들을 구현하는 방법을 모른다.

그래서 질문입니다. 알려지지 않은 사람들이 웹 서비스를 사용하지 않게하려면 어떻게해야합니까?

주 : 로그는 알려진 사용자가 수행 한 작업을 추적하고 의심되는 활동에 대한 연결을 종료하도록 할 수 있습니다. 또한 ASP.NET을 사용하고 있습니다.

답변

0

나는 그것을 어떻게 끝내 었는지 설명하기 위해 돌아왔다.

먼저 애플리케이션 별 API 키 (사용자 정의 구현)를 사용 했으므로 작성한 웹 서비스를 사용하는 각 애플리케이션에 대해 키를 부여했습니다. 이러한 키는 키를 재생성하고 애플리케이션에서 제공 한 것과 일치하는 데 필요한 일부 애플리케이션 데이터와 함께 제공되어야합니다.

두 번째로 SoapHeader와 변형 된 this 메서드를 사용하여 목표를 달성했습니다. 기본적으로 키 및 앱 데이터는 메소드 호출시 헤더의 일부로 메시지와 함께 제공됩니다. 따라서 앱이 공용 메소드를 호출 할 때마다 유효성 검사 프로세스가 발생합니다.

나에게 주어진 답변에 감사 드리며 접근은 정말 흥미 롭습니다. 웹 서비스가 이미 실행되고 .NET 3.5이므로이 방법으로 결정한 이유는 ... WCF ASP도 아니다. WSE를 통해 최상의 솔루션을 구현할 수있었습니다.

감사합니다.

+0

PedroC88 - 다음과 같은 샘플 코드를 제공 할 수 있습니다. 귀하의 구현? –

1

ASP.net Web Service Extensions 클라이언트 측 인증서 기반 인증을 지원합니다. 더 많은 최신 동등 물은 WCF이며 이는 클라이언트 인증서도 지원합니다.

+0

두 링크가 모두 동일한 URL을 가리 킵니다. 나는 인터넷 검색을하고 있었고 WSE는 더 이상 좋은 접근 방식이 아니며 이후 VS 2010 및 ASP .NET 3.5와 호환되지 않는다고 생각하므로 WCF를 사용할 것입니다. – PedroC88

+0

방금 ​​WCF에 대해 읽었는데, 내 서비스가 준비되어있어서 WCF가 웹 서비스에 대한 뚜렷한 접근 방식이므로 읽어야 할 방법이 아니라고 생각합니다. – PedroC88

1

API 키를 사용하는 것이 좋습니다.

아이디어는 API 호출을하기 위해 각 사용자에게 제공해야하는 개인 키를 할당 (또는 더 쉽게는 챌린지 - 응답을 통해 소유 증명을 제공하는 것)하는 것입니다.