2009-06-18 4 views
0

클라이언트가 사용자 이름과 암호로 로그인해야하는 사용자 지정 클라이언트/서버 응용 프로그램을 개발 중입니다. 사용자 계정은 어떤 식 으로든 Windows/AD 계정과 관련이 없습니다. 로그인 후 클라이언트 응용 프로그램은 서버 시스템에서 다른 서비스를 요청합니다.클라이언트/서버 응용 프로그램의 인증 및 보안 모델

제 질문은 이것을 구현하는 가장 좋은 방법입니다. 어떤 아키텍처가 가장 적합할까요? 나는 어떤 종류의 티켓/토큰 인증 시스템이 구현 될 필요가 있다고 생각하나요 ???

감사

답변

1

실제로 다른 부분 (로그인 서버, 클라이언트, 응용 프로그램 서버) 사이에 "티켓"을 전달하는 시스템을 구현할 수 있습니다. 이 티켓에는 사용자 ID (사용자 이름, 행 ID 등)와 같은 기본 정보가 포함됩니다. 이 티켓은 권한이 부여 된 서버가 공유하는 비밀 키로 암호화되거나 서버가 공유하는 비밀 키로 암호화 된 티켓 내용의 해시로 스탬프 처리됩니다. 첫 번째 방법은 권한이 부여 된 서버 만 티켓을 작성하고 읽을 수있게하고 두 번째 방법은 권한이 부여 된 서버가 권한이 부여 된 서버 만 티켓을 만들 수 있지만 다른 사람이 티켓을 읽을 수 있음을 확인할 수 있습니다. 모든 앱 서버는 보호해야하는 작업을 진행하기 전에 해시를 시도하거나 해시가 일치하는지 확인하여 티켓을 확인합니다. 이것이 웹 앱인 경우 쿠키는 티켓을 저장하기에 좋은 장소입니다.

+0

코드 예제가 있습니까? 언어와 플랫폼은 중요하지 않습니다. –

0
당신은 말했다하지 않은

다른 아키텍처에 대해 많이는 클라이언트/서버, 그래서 당신 VS.에서 윈도우 폼과 같은 형태 디자이너의 어떤 종류를 사용하는 가정입니다보다 이러한 경우 필자는 설치하기 쉽고 설치가 쉽고 합리적으로 안전하기 때문에 항상 데이터베이스 테이블 인증 형식을 사용했습니다. 별거없이 그룹과 역할을이 방법으로 설정할 수도 있습니다.

Table: Users 
Fields: UserID PK 
     Login Text 
     Password Text 
     ... 

Table: Roles 
Fields: RoleID PK 
     Role  Text 
     ... 

Table: UserRoles 
Fields: UserID FK 
     RoleID FK 
관련 문제