μΈμ¦(Authentication)κ³Ό μΈκ°(Authorization)λ 보μ μμ€ν μμ μ€μν λ κ°λ μΌλ‘, λ λ€ λ³΄μκ³Ό κ΄λ ¨λ μ©μ΄μ΄μ§λ§ κ·Έ μλ―Έμ λͺ©μ μ΄ λ€λ¦ λλ€.
λ λ€ Auth~λ‘ μμμ νλ€ λ³΄λ λ무 ν·κ°λ¦¬λλ°, νμλ‘ λ³΄λ©΄ μ’ μ΄ν΄κ° κ°λλ€.
- μΈμ¦ (μΈμ ν μΈ θͺ, μ¦λͺ ν μ¦ θ): μ΄λ€ μ¬λμ΄λ μ¬λ¬Όμ΄ μ§μ§μμ μΈμ νκ³ μ¦λͺ νλ κ².
- μΈκ° (μΈμ ν μΈ θͺ, νλ½ν κ° ε―): μ΄λ€ νμλ μμ²μ λν΄ μΈμ νκ³ νλ½νλ κ².
λΆλλ½μ§λ§ μΈμ¦κ³Ό μΈκ°μ μ°¨μ΄λ₯Ό λͺ ννκ² μ μν μ μμμ§λ§, OAuth μΈμ¦ νλ‘ν μ½μ 곡λΆνλ€κ° λμ μ¬λ΄ λλ€-!
πμΈμ¦ (Authentication)π
μ μ
μΈμ¦μ μ¬μ©μκ° λꡬμΈμ§λ₯Ό νμΈνλ κ³Όμ μ λλ€. μ¦, μ¬μ©μμ μ μμ νμΈνλ λ¨κ³μ λλ€.
λͺ©μ
μμ€ν μ μ¬μ©μκ° μ£Όμ₯νλ μ μμ΄ μ€μ λ‘ κ·Έ μ¬μ©μμ μΌμΉνλμ§ νμΈν©λλ€.
λ°©λ²
μΌλ°μ μΌλ‘ μ¬μ©μ μ΄λ¦κ³Ό λΉλ°λ²νΈ, μ체 μΈμ(μ§λ¬Έ, μΌκ΅΄ μΈμ λ±), μΈμ¦ μ± λλ ν ν° λ±μ μ¬μ©νμ¬ μ μμ νμΈν©λλ€.
μμ
λ‘κ·ΈμΈν λ μ¬μ©μκ° μμ΄λμ λΉλ°λ²νΈλ₯Ό μ λ ₯νλ κ³Όμ μ΄ μΈμ¦ κ³Όμ μ λλ€.
π©π»π»μΈκ° (Authorization)βοΈ
μ μ
μΈκ°λ μΈμ¦λ μ¬μ©μκ° νΉμ 리μμ€λ κΈ°λ₯μ μ κ·Όν μ μλ κΆνμ λΆμ¬λ°μλμ§λ₯Ό νμΈνλ κ³Όμ μ λλ€.
λͺ©μ
μμ€ν μ μ¬μ©μκ° νΉμ μμ μ μνν κΆνμ΄ μλμ§ νμΈν©λλ€.
λ°©λ²
κΆνμ μΌλ°μ μΌλ‘ μν κΈ°λ° μ κ·Ό μ μ΄(RBAC) λλ κΆν λͺ©λ‘(ACL)μ ν΅ν΄ κ΄λ¦¬λ©λλ€.
μμ
μ¬μ©μκ° λ‘κ·ΈμΈμ μλ£ν ν, νΉμ νμ΄μ§λ κΈ°λ₯(μ: κ΄λ¦¬μ λμ보λ)μ μ κ·Όν μ μλ κΆνμ΄ μλμ§ νμΈ.
OAuthλ₯Ό μ¬μ©νμ¬ μ ν리μΌμ΄μ μ΄ μ¬μ©μ λμ νΉμ APIμ μ κ·Όν μ μλλ‘ νμ©.
μμ½ μ νλΈμμλ μΈκ°λ₯Ό μ΄μμμ΄μ μ΄μ ~μΌλ‘ μΈμ°λ©΄ μ’λ€κ³ νμ ¨λλ° μ§μ§ μ μΈμμ§ ππ»
OAuthμμμ μΈμ¦κ³Ό μΈκ°
OAuthλ μ£Όλ‘ μΈκ°λ₯Ό λ€λ£¨λ νλ‘ν μ½μ λλ€.
OAuthλ₯Ό ν΅ν΄ μ ν리μΌμ΄μ (ν΄λΌμ΄μΈνΈ)μ μμ΄λ/λΉλ°λ²νΈλ₯Ό κ°κ³ μλ μ§μ§ μ¬μ©μ λμ
리μμ€ μλ²(Google, Facebook)μ 보νΈλ 리μμ€μ μ κ·Όν μ μλ κΆνμ μ»μ΅λλ€.
- μ¬μ©μ μΈμ¦: μ¬μ©μλ OAuth μ 곡μ(μ: Google, Facebook)μ λ‘κ·ΈμΈνμ¬ μμ μ μΈμ¦
- κΆν λΆμ¬ (μΈκ°): μ¬μ©μλ μ ν리μΌμ΄μ μ΄ μμ μ 리μμ€μ μ κ·Όνλ κ²μ νμ©
- μ‘μΈμ€ ν ν° λ°κΈ: OAuth μ 곡μλ μ ν리μΌμ΄μ μ μ‘μΈμ€ ν ν°μ λ°κΈ. μ΄ ν ν°μ μ ν리μΌμ΄μ μ΄ μ¬μ©μ λμ 보νΈλ 리μμ€μ μ κ·Όν μ μλ κΆνμ μ 곡ν¨.
μμ½
- μΈμ¦ (Authentication): μ¬μ©μκ° λꡬμΈμ§λ₯Ό νμΈνλ κ³Όμ
- μΈκ° (Authorization): μΈμ¦λ μ¬μ©μκ° νΉμ 리μμ€λ κΈ°λ₯μ μ κ·Όν μ μλ κΆνμ νμΈνλ κ³Όμ