Keycloak Authorization Code Flow + PKCE
Keycloak JavaScript Adapter
await keycloak.init({
flow: 'standard', // implicit, hybrid
pkceMethod: 'S256',
onLoad: 'check-sso'
});
keycloak-jsλ ν€ν΄λ‘ μλ²λ‘λΆν° μΈμ¦μ μνν μ μλλ‘ μ§μνλ€. ν΄λΌμ΄μΈνΈ μΈμ¦μ λν΄ Implicit Flow λ₯Ό μννλ€λ©΄ ν ν°μ λ°λ‘ λ°κΈλ°μ μ μμ§λ§ μ΄ κ²½μ° λ¦¬νλ μ ν ν°μ ν¬ν¨νμ§ μλλ€. κ·Έλ¦¬κ³ updateToken ν¨μλ‘ μ‘μΈμ€ ν ν°μ κ°±μ νκΈ° μν΄μλ 리νλ μ ν ν°μ΄ νμνκΈ° λλ¬Έμ Authorization Code Flowλ₯Ό μννλ λ°©μμΌλ‘ μΈμ¦ν΄μΌνλ€.
νλ‘ νΈ μ±λ μΈμ¦μ λν 보μ μ΄μ
Authorization Code Flow λΏλ§ μλλΌ Implicit Flow λ ν€ν΄λ‘μμ λ°κΈλ ν ν° μ λ³΄κ° λ¦¬λ€μ΄λ νΈ μ£Όμμ ν¬ν¨λλ―λ‘ μΈνλΌ κ΅¬μ±κ³Ό νΈλν½ νλ¦μ λ°λΌ ν ν° μ λ³΄κ° λ ΈμΆλκ±°λ κ°λ‘μ±μ΄μ§ μ μλ€. λ°λΌμ, 보μ κ΄μ μ λ°λΌ λ°± μ±λλ‘ μΈμ¦ κ³Όμ μ μννλ κ²μ κ²ν ν νμκ° μλ€. λ λμκ° νλ‘ νΈ μ±λμμ Authorization Code Flowλ₯Ό μννκΈ° μν΄μ ν€ν΄λ‘μμ Capability configμ Client authentication λ₯Ό λΉνμ±ννλ κ²½μ° Authorization μ νμ±ν ν μ μλ€.
ν΄λΌμ΄μΈνΈμ λν μμΈ κΆν κΈ°λ₯μ΄ νμνλ€λ©΄ μλ² μ¬μ΄λ μΈμ¦μ μνν΄μΌ ν©λλ€.
리νλ μ ν ν° λ°κΈνκΈ°
νλ‘ νΈ μ±λμ Authorization Code Flow μμ 리νλ μ ν ν°μ λ°κΈλ°κ³ μ νλ κ²½μ° Advanced μ€μ μμ OpenID Connect Compatibility Modes μ Use refresh tokens κ° μ²΄ν¬λμ΄ μμ΄μΌ νλ€.
Settings β Capacity Config
- Client authentication λΉνμ±ν
- Authentication flowμ Standard flow νμ±ν
Advanced β OpenID Connect Compatibility Modes
- Use refresh tokens νμ±ν
- Advanced Settingsμ Proof Key for Code Exchange Code Challenge Methodλ₯Ό S256λ‘ μ ν