클라이언트/서버 개시의 인증 및 보안 모델
-
06-07-2019 - |
문제
클라이언트가 사용자 이름과 비밀번호로 로그인 해야하는 사용자 정의 클라이언트/서버 응용 프로그램을 개발하고 있습니다. 사용자 계정은 어떤 식 으로든 Windows/광고 계정과 관련이 없습니다. 로그인 후 클라이언트 응용 프로그램은 서버 시스템에서 다른 서비스를 요청합니다.
내 질문은 이것을 구현하는 가장 좋은 방법은 무엇입니까? 여기서 어떤 건축이 가장 잘 맞습니까? 나는 일종의 티켓/토큰 인증 시스템을 구현해야한다고 생각합니까 ???
감사
해결책
실제로 다른 부품 (로그인 서버, 클라이언트, 앱 서버) 사이에 "티켓"을 전달하는 시스템을 구현할 수 있습니다. 이 티켓에는 사용자 ID (사용자 이름, 행 ID 등)와 같은 기본 정보가 포함됩니다. 이 티켓은 공인 서버가 공유하는 비밀 키로 암호화되거나 서버가 공유하는 비밀 키가 담긴 티켓 내용의 해시가 찍히게됩니다. 첫 번째 방법으로 승인 된 서버 만 티켓을 작성하고 읽을 수 있으며, 두 번째 방법을 사용하면 공인 서버가 승인 된 서버 만 티켓을 생성 할 수 있었지만 누구나 티켓을 읽을 수 있는지 확인할 수 있습니다. 모든 앱 서버는 보호해야 할 조치를 진행하기 전에 티켓을 해독하려고 시도하거나 해시 일치하는지 확인하여 티켓을 확인하여 티켓을 확인합니다. 이것이 웹 앱이라면 쿠키는 티켓을 보관하기에 좋은 장소입니다.
다른 팁
클라이언트/서버 이외의 아키텍처에 대해 많이 말하지 않았으므로 Vs의 Windows Forms와 같은 일종의 양식 디자이너를 사용하고 있다고 가정합니다. 이 경우 나는 쉽고 설정하기가 쉽고 합리적으로 안전하기 때문에 항상 어떤 형태의 데이터베이스 테이블 인증을 사용했습니다. 당신은 많은 소란없이 이런 식으로 그룹과 역할을 설정할 수도 있습니다.
Table: Users
Fields: UserID PK
Login Text
Password Text
...
Table: Roles
Fields: RoleID PK
Role Text
...
Table: UserRoles
Fields: UserID FK
RoleID FK