문제

모바일 장치, WinForms 응용 프로그램, iPhone, BlackBerry 등 다양한 플랫폼에서 호출 할 수있는 웹 서비스 아키텍처를 만들고 싶습니다. 따라서 WCF 및 WSHTTP 바인딩과 같은 것을 사용하면 이것을 죽일 수 있으며 호환성을 위해 BasichTTP 바인딩으로 다운 그레이드해야합니다.

그 말로, 초기 로그인 (인증)시 토큰을 생성 한 다음이 토큰을 사용하여 모든 후속 통화 에이 토큰을 사용하여 인증을 검증하고 메소드를 실행할 수있는 시스템이 필요합니다.

누구든지 이것에 대한 방법에 대한 팁이나 제안이 있습니까? 1) 토큰을 생성하고 안전한 토큰에 관련된 것은 무엇입니까? 2) 토큰이 얼마나 좋은가, 일부 사용자는 몇 시간 동안 응용 프로그램을 사용할 수 있으며 아마도 컴퓨터를 "수면"할 수 있습니다.

조언에 감사드립니다.

도움이 되었습니까?

해결책

초기 인증에서 서버에서 제공 한 하나의 토큰 만 사용하는 경우 가로 채기가있는 경우 요청에 사용할 수 있습니다. 당신의 유일한 방어는 만료 시간입니다.

그 외에도 구현 옵션이 무엇인지에 따라 다릅니다.

보다 안전한 시스템은 각 요청에 타임 스탬프 (및 비체)를 추가하고 서명하고 각 요청에 포함시키는 것입니다. 클라이언트는 인증 자격 증명을 처리하고 서명 구현을 알고 있으며 각 요청에 서명해야합니다.

각 요청 (OpenID로 수행 할 수 있음)에 따라 서버를 번갈아 가거나 많은 토큰을 나눠주고 더 필요한 경우 (OAUTH로 수행 할 수 있음)를 다시 인증 할 수 있습니다. 클라이언트가 자격 증명을 저장할 수있는 경우 사용자가 보이지 않을 수 있습니다. 이들은 더 복잡하여 일부 상호 작용에 대한 SSL과 같은 암호화 된 전송과 HTTP 리디렉션 및 쿠키 또는 기타 저장된 상태를 처리 할 수있는 클라이언트가 필요합니다. 클라이언트는 서명하는 방법을 알 필요가 없지만 SSL을 할 수 있다면 처음에는 복잡성이 필요하지 않을 것입니다.

클라이언트에 대한 정보가 필요하지 않으면 요청에 서명하고 싶을 것입니다.

구현, 예제 및 라이브러리에 서명하려면 Amazon Web Services, OpenID 또는 Oauth를 참조하십시오.

토큰 만료 시간과 관련하여, 그것은 당신의 요구에 따라 다릅니다. 토큰 수명이 길수록 창 재생 공격이 증가합니다. Nonce는 토큰을 일회용하지만 서버에서 더 많은 상태가 필요합니다.

다른 팁

체크 아웃해야합니다 OAUTH. API 인증의 표준이므로 기존 구현을 서비스에 연결할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top