ServiceStack에서 만료 토큰 기반 권한 부여의 추가 계층을 구현하려면 어떻게해야합니까?

jlmt

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관