2016-08-17 1 views
1

Json Web Token을 사용하여 토큰을 생성했습니다.JSON 웹 토큰 (특정 클라이언트로 지정)

_tokenValidationParameters = new TokenValidationParameters 
     { 
      // The signing key must match! 
      ValidateIssuerSigningKey = true, 
      IssuerSigningKey = signingKey, 
      ValidateActor=true, 

      // Validate the JWT Issuer (iss) claim 
      ValidateIssuer = true, 
      ValidIssuer = "TokenIssuer", 

      // Validate the JWT Audience (aud) claim 
      ValidateAudience = true, 
      ValidAudience = "Audience", 

      // Validate the token expiry 
      ValidateLifetime = true, 

      ClockSkew = TimeSpan.Zero, 

     }; 

문제는 토큰을 생성하는 동안 나는, 토큰이 다른 컴퓨터에서 사용할 수있는 다음과 같은 매개 변수를 사용하며 토큰이 유효한 권한을 부여합니다. 다른 클라이언트 컴퓨터에서 생성 된 토큰을 무효화해야합니다.

+0

토큰이 클라이언트에서 생성됩니까? –

+0

서버에서 생성하지 않음 – Ruchan

답변

0

동작이 의미가 있습니다. 토큰은 유효한 자격 증명으로 생성되며 만료 될 때까지 모든 컴퓨터에서 사용할 수 있습니다.

그게 OAuth2의 요점입니다. 토큰은 특정 사용자를위한 것이 아니라 응용 프로그램과 관련된 것입니다.

여전히 특정 컴퓨터에 연결하려는 경우 원본 컴퓨터를 식별하는 항목을 추가 할 수 있습니다. IP 주소, 호스트 이름, MAC 주소 등 컴퓨터를 고유하게 식별 할 수있는 모든 항목을 나타냅니다. 생성 된 토큰 자체에이 정보를 추가 할 수 있으며 토큰이 사용될 때 원래 데이터와 일치하는지 확인하기 만하면됩니다.

보안 조치로이 작업을 수행하려는 것으로 추측되지만 여전히 시스템을 사용해야하는 방법이라고 생각하지 않습니다. 토큰은 항상 HTTPS를 통해 암호화 된 인증 헤더에 전달되므로 항상 안전합니다.

요청과 모든 유형의 요청 가로 채기를 방지하려면 HTTPS를 통해 인증 서버와 항상 통신해야합니다.

+0

IP 주소, 호스트 이름 및 MAC 주소는 모두 비교적 쉽게 스푸핑되거나 위조 될 수 있습니다. – DavidG

1

짧은 답변 : 제

긴 대답 : 당신이 찾고있는 것은 장치 증명, 신원 능력 장치와 해당 장치가 통신 확인이

입니다. 이는 잘 알려진 문제입니다. OS 수준에서 장치를 제어하고 토큰을 도용 할 수 없도록 보장합니다 (응용 프로그램 악용, 장치 악용 또는 통신 악용). 그것은 불가능한 것입니다.

OAuth에서 서버가 클라이언트가 아닌 토큰을 생성하기 때문에 "불가능합니다". OAuth가 의도 한 것이 아닙니다.