ServiceStack 기반 쿠키 인증을 사용하는 모바일 앱이 있습니다. 앱은 사용자의 로그인 쿠키를 저장하고 사용자가 원할 경우 로그인 상태를 유지합니다.
앱에는 'Purchase PIN'기능이 있습니다. 사용자는 PIN을 설정하고 구매할 때마다 입력하도록 요구할 수 있습니다. 의도는 도난 당했거나 잠금 해제 된 휴대 전화를 잘못 놓아서 구매하는 것을 방지하는 것입니다.
앱에는 무엇보다도 사용자가 구매 PIN을 설정하고 켜고 끌 수있는 설정 / 구성보기가 있습니다. 따라서 사용자가 설정을 편집 할 수 있도록 재 인증을 강제해야합니다.
사용자가 설정 페이지에 들어 가려고 할 때 :
앱을 사용하려면 사용자가 비밀번호로 재 인증해야합니다.
이에 대한 응답으로 API는 앱에 토큰을 다시 발급합니다. 토큰은 API 만 알고있는 일부 비밀과 사용자 ID 및 가까운 미래의 만료 타임 스탬프를 나타냅니다.
모든 사용자 설정 관련 API 호출에는 유효한 토큰이 요청에 전송되어야합니다.
API는 토큰이 동일한 사용자에 대해 발행되었는지 확인하고 타임 스탬프가 여전히 양호한 지 확인합니다.
API가 토큰이 유효하지 않거나 만료되었음을 발견하면 UI가 계속하기 전에 새 토큰을 얻기 위해 사용자가 재 인증해야한다는 신호로 응답합니다.
이 모든 것은 기존 ServiceStack 쿠키 인증과 함께 외부에 있어야합니다 (현재 인증 레이어를 재 작업하는 것은 다양한 이유로 범위와 타임 라인을 벗어납니다).
ServiceStack에서이 추가 보안 수준을 구현하기위한 모범 사례는 무엇입니까?
로 주석이 달린 서비스에 액세스 할 수 있도록 권한이있는 보호 된 서비스를 사용자가 재 인증 해야하는 WebSudoFeature 플러그인 을 살펴볼 수 있습니다 [WebSudoRequired]
.
만료되는 토큰의 경우 ServiceStack의 최상위 인증과 통합하는 대신 Request DTO 속성으로 서비스에 전달 된 별도의 앱 계층 보안 기능으로 구현합니다.
구현을 위해 앱에서 유효성을 검사 할 수 있는 JWT 토큰을 수동으로 생성하거나 다음과 같은 경우에 감사 정보 (예 : 시간 / IP)를 유지하기 위해 만료가 포함 된 UUID / 가이드 PK로 DB 항목을 생성 할 수 있습니다. 이러한 PIN 인증 토큰은 감사 기록없이 상태 비 저장 토큰을 사용하는 대신 사용됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다