2023-12-12-TIL

Today I Learned

JWT Structure

  • https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-structure

JWT Use Cases

  • https://datatracker.ietf.org/doc/html/rfc7519
  • https://jwt.io/introduction
  • https://velopert.com/2389
  • https://security.stackexchange.com/questions/256794/should-i-specify-jwt-audience-and-issuer-if-i-have-only-one-spa-client
  • https://www.loginradius.com/blog/engineering/guest-post/jwt-authentication-best-practices-and-when-to-use/
  • https://blog.logrocket.com/jwt-authentication-best-practices/
  • https://evertpot.com/jwt-is-a-bad-default/
  • https://documentation.softwareag.com/webmethods/compendiums/v10-11/C_API_Management/index.html#page/api-mgmt-comp/co-jwt_usecase_workflow.html
  • https://curity.io/resources/learn/jwt-best-practices/
  • https://www.linkedin.com/advice/3/how-do-you-use-jwt-claims-enforce-authorization
  • https://auth0.com/docs/secure/tokens/json-web-tokens/json-web-token-claims

JWT Issuer (iss)

  • https://mojoauth.com/glossary/jwt-issuer/

JWT Identifying Private, Admin Token

JWT 토큰을 통해서 내부에서 발급한 토큰인지 외부에서 발급한 토큰인지 확인해서 외부망에서 내부용 토큰을 사용하면 block 하도록 설정하고 싶다. 하지만 나의 상황에서 발급처(issuer)로 식별되는 내/외부 정보는 관리자 or 일반 사용자로 구분하는 기준과 동일하다. 즉, ‘관리자도 내부망을 통해서만 접근 가능하다'라는 요구사항이 있으므로 두 가지 방법 모두 동일하게 요구사항을 충족할 수있다.

하지만 아래와 같이 구분할 수 있는 속성을 추가한다고 해도 해당 속성을 조작할 수 있는 여지가 충분히 있다. 따라서 해당 속성의 암호화 등을 추가로 고려하면 더욱 안전하게 관리할 수 있다.

{
  "sub": "user123",
  "iss": "your_issuer",
  "aud": "your_audience",
  "internal": true,    // 내부망 여부
  "admin": false       // 관리자 여부
}

MongoDB

  • https://en.wikipedia.org/wiki/MongoDB
  • https://www.ibm.com/kr-ko/topics/mongodb
  • https://www.w3schools.com/mongodb/
  • https://www.linkedin.com/company/mongodbinc
  • https://twitter.com/MongoDB
  • https://jaehoney.tistory.com/314
  • https://appmaster.io/ko/blog/monggodibiran-mueosinga

JUnit5

  • https://toneyparky.tistory.com/3