μ°Έκ³
JWT (JSON Web Token) μ΄ν΄νκΈ°μ νμ© λ°©μ - Opennaru, Inc.
JWT λ JSON Web Tokenμ μ½μλ‘ μ μ μλͺ λ URL-safe (URLλ‘ μ΄μ©ν μμλ λ¬Έμ λ§ κ΅¬μ±λ)μ JSONμ λλ€.JWTλ μμ± μ 보 (Claim)λ₯Ό JSON λ°μ΄ν° κ΅¬μ‘°λ‘ ννν ν ν°μΌλ‘ RFC7519 νμ€ μ λλ€.
www.opennaru.com
[JWT] ν ν°(Token) κΈ°λ° μΈμ¦μ λν μκ° | VELOPERT.LOG
μκ° ν ν°(Token) κΈ°λ° μΈμ¦μ λͺ¨λ μΉμλΉμ€μμ μ λ§ λ§μ΄ μ¬μ©λκ³ μμ΅λλ€. μ¬λ¬λΆμ΄ API λ₯Ό μ¬μ©νλ μΉμλΉμ€λ₯Ό κ°λ°νλ€λ©΄, ν ν°μ μ¬μ©νμ¬ μ μ λ€μ μΈμ¦μμ μ μ²λ¦¬νλκ²μ΄ κ°μ₯ μ’μ
velopert.com
[Server] JWT(Json Web Token)λ?
νλ μΉμλΉμ€μμλ ν ν°μ μ¬μ©νμ¬ μ¬μ©μλ€μ μΈμ¦ μμ μ μ²λ¦¬νλ κ²μ΄ κ°μ₯ μ’μ λ°©λ²μ΄λ€. μ΄λ²μλ ν ν° κΈ°λ°μ μΈμ¦ μμ€ν μμ μ£Όλ‘ μ¬μ©νλ JWT(Json Web Token)μ λν΄ μμ보λλ‘ ν
mangkyu.tistory.com
μΈμ κΈ°λ° μΈμ¦κ³Ό ν ν° κΈ°λ° μΈμ¦ λΉκ΅
μΈμ μΈμ¦ | ν ν° μΈμ¦ |
μ 보λ₯Ό μλ²μ μ μ₯ | μ 보λ₯Ό ν΄λΌμ΄μΈνΈμ μ μ₯ |
νμ₯μ± X - μ¬λ¬ λμ μλ² (λΆμ° μλ²)λ₯Ό μ¬μ©ν κ²½μ°, μλ² λ©λͺ¨λ¦¬μ μΈμ μ μ μ₯νλ©΄ κ·Έ μ 보λ₯Ό 곡μ νλ λ° λ³΅μ‘ν μ€κ³κ° νμνλ€. - λ©λͺ¨λ¦¬ μ μ₯μ΄λ DB μ μ₯μ΄λ μ μ μμ λ°λΌ κ³ΌλΆν κ°λ₯μ±μ΄ μλ€. |
stateless -> νμ₯μ± O - scalability: ν ν°μ μ ν¨ κ²μ¦ λ° μ 보 μΆμΆμ λͺ¨λ μλ²μμ λμΌνκ² κ°λ₯νλ€. - extensibility: ν ν°μ μ νμ κΆνλ§ λΆμ¬νμ¬ λ‘κ·ΈμΈ μ 보λ₯Ό μ¬μ©νλ λΆμΌλ₯Ό νμ₯ν μ μλ€. |
ν ν° κΈ°λ° μμ€ν μλ μ리
JWT, JWS, JWE
JWT
RFC7519νμ€μΈ JSON Web Tokenμ, μμ± μ 보( Claim)λ₯Ό json ν¬λ§·μΌλ‘ ννν ν ν°μ΄λ€.
ν΄λΌμ΄μΈνΈλ HTTP Request Headerμ μλ²λ‘λΆν° λ°μ ν ν°μ λ£μΌλ©°, μλ²λ Headerμ ν¬ν¨λ JWT μ 보λ₯Ό ν΅ν΄ μΈμ¦νλ€.
μ¬μ©λλ json λ°μ΄ν°λ URL-Safe( =urlλ‘ μ΄μ©ν μ μλ λ¬Έμλ‘ κ΅¬μ±λ )νλ€.
JWTλ HMAC μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ λΉλ°ν€ λλ Pub/Pri Key μμΌλ‘ μλͺ κ°λ₯νλ€.
JWS
JSON Web Signatureλ json μ μ μλͺ μ ν λ€ url-safe λ¬Έμμ΄λ‘ ννν μλͺ νμ€μ΄λ€. (RFC7515)
JWE
JSON Web Encryptionμ json ꡬ쑰λ₯Ό μ¬μ©νλ μνΈν λ°©λ²μ΄λ€. (RFC7516)
JWTμ ꡬ쑰μ νΉμ§
Header.Payload.Signature μ κ°μ΄ μΈ λΆλΆμΌλ‘ μ΄λ£¨μ΄μ§λ©°, κ° λΆλΆμ μΈμ½λ©λ JSONννλ‘ νννλ€.
Header
ν ν°μ νμ μ μ§μ νλ typ, μκ·Έλμ² ν΄μ± μκ³ λ¦¬μ¦μ μ§μ νλ alg λ κ°μ§ μ λ³΄λ‘ κ΅¬μ±
Payload
ν ν°μμ μ¬μ©νλ μμ±(Claim)μ μ μ₯. Jsonννλ‘ μ 보λ₯Ό λ£μ μ μμΌλ©° 3 μ’ λ₯κ° μλ€.
Registered Claim: ν ν° μ 보 ννμ μν μ ν΄μ§ μ’ λ₯μ λ°μ΄ν°. ex) λ°κΈμ, λ§λ£μκ°, ν ν°μλ³μ...
Public Claim: 곡κ°μ© μ 보λ₯Ό μν μ¬μ©μ μ μ ν΄λ μ. URI ν¬λ§·μ μ¬μ©νλ€.
Private Claim: C/S κ° μ¬μ©ν μμμ μ 보λ₯Ό μ μ₯νλ μ¬μ©μ μ μ ν΄λ μ
Signature
ν ν° μΈμ½λ© λλ μ ν¨μ± κ²μ¦ μ μ¬μ©νλ κ³ μ ν μνΈν μ½λ
Headerμ Payloadλ₯Ό μΈμ½λ©/ν΄μ±νμ¬ μμ±
JWTλ ν ν° μ체μ μ¬μ©μ κ΄λ ¨ μ 보λ₯Ό λ΄μ μ μλ€.
:) μ¬μ©μ μ 보 μ²λ¦¬ μ ν ν°λ§ μμΌλ©΄ λ¨
JWTλ Statelessνλ€.
λ°λΌμ ν ν°μ μμλ‘ μμ νκ±°λ, λ΄λΆμ μ¬μ©μ μ 보λ₯Ό μλ²μμ μμ ν μ μλ€. κ΄λ¦¬λ₯Ό μν΄ ν ν° λ§λ£ μκ°μ λ°λμ μ§μ ν΄μΌ νλ€.
'π νμ΅κ³Ό κ°λ° κΈ°λ‘ > Web' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ€νλ₯΄ν λλ΄ κ³΅μ Sample Code - Html & JS (0) | 2022.02.06 |
---|---|
NodeJS κΈ°μ΄ μν (0) | 2022.02.03 |