λκ·λͺ¨ μ‘°μ§(λκΈ°μ νΉμ μ€μκΈ°μ )μ μ¬μ©μλ SSO(Single Sign-On) μννΈμ¨μ΄λ₯Ό μ¬μ©νμ¬ μννκ² λͺ¨λ μμ(μμ€ν ) μ μ κ·Όν©λλ€.SSO μννΈμ¨μ΄λ₯Ό μ¬μ©ν ID λ° μ‘μΈμ€ κ΄λ¦¬λ μΌμμ μΈ λΉμ¦λμ€ μ΄μμ νμμ μΈ λΆλΆμ΄ λμμ΅λλ€. μΈκΈ° μλ μ€ν μμ€ μ±κΈ μ¬μΈμ¨(SSO) μννΈμ¨μ΄ μμ 3κ°λ μλμ κ°λ€.
- IdentityServer
- KeyCloak
- WSO2
IdentityServer
IdentityServerλ μ€ν μμ€ λ¬΄λ£ μ±κΈ μ¬μΈμ¨ μννΈμ¨μ΄μ λλ€. OpenID Connect λ° OAuth 2λ₯Ό κΈ°λ°μΌλ‘ νλ κ΅μ°¨ νλ«νΌ νλ μμν¬μ λλ€. λν μ΄ μ€ν μμ€ μννΈμ¨μ΄λ μ¬λ¬ μ ν리μΌμ΄μ μ λν μ€μ μΈμ¦ λ° κΆν λΆμ¬ κΈ°λ₯μ μ 곡ν©λλ€. federated identities, λ€μ€ νλ¦ λ° API μΈμ¦μ μ§μν©λλ€. λν μ΄ μ체 νΈμ€ν μννΈμ¨μ΄λ₯Ό μ¬μ©νλ©΄ μ¬μ©μκ° μ¬λ¬ μ±μμ λ¨μΌ μ¬μ©μ μ΄λ¦/λΉλ°λ²νΈ μΈνΈλ‘ λ‘κ·ΈμΈν μ μμ΅λλ€.
IdentityServerλ C#μΌλ‘ μμ±λμμΌλ©° λ°°ν¬ λ° κ°λ°μ κ΄ν λ¬Έμμ ν¨κ» Githubμμ λͺ¨λ μμ€ μ½λλ₯Ό μ¬μ©ν μ μμ΅λλ€.
KeyCloak
KeyCloakμ OpenID Connect, OAuth2.0 λ° SAML2.0μ κΈ°λ°μΌλ‘ νλ λ λ€λ₯Έ λ¬΄λ£ μννΈμ¨μ΄μ λλ€.
μΉ μμ© νλ‘κ·Έλ¨ λ° μΉ μλΉμ€μμ SSO κΈ°λ₯μ μ 곡ν©λλ€. 무μ보λ€λ μ΄ μ€ν μμ€ μννΈμ¨λ LDAP λ° Active Directoryμμ ν΅ν©μ μ 곡ν©λλ€.
μ¬μ©μκ° μν , κΆν λ° μΈμ μ κ΄λ¦¬ν μ μλ λ Όλ¦¬μ μ¬μ©μ μΈν°νμ΄μ€κ° μμ΅λλ€.
λν Java, JavaScript λ° C#κ³Ό κ°μ λ€μν μΈμ΄μ λν ν΄λΌμ΄μΈνΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡ν©λλ€.
KeyCloakμ μ£Όλ‘ Javaλ‘ μμ±λλ©° JavaScriptλ₯Ό μ§μν©λλ€..
μμ€ μ½λλ Githubμμ μ¬μ©ν μ μμ΅λλ€.
WSO2
WSO2λ λ리 μ¬μ©λλ λ λ€λ₯Έ μ€ν μμ€ ID λ° μ‘μΈμ€ κ΄λ¦¬ μμ€ν μ λλ€. κ±°μ λͺ¨λ λμ€μ μΈ μ μ νμ€μ μ§μνμ¬ μΈμ¦μ μ 곡ν©λλ€. λ€λ₯Έ μ ν리μΌμ΄μ κ³Όμ ν΅ν©μ μν΄ API μλ νμΈνΈλ₯Ό 곡κ°νμ΅λλ€. WSO2λ μ¬μ©μ μ μκ° κ°λ₯ν μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€. λν μ΄ μ€ν μμ€ μννΈμ¨μ΄λ 2λ¨κ³ μΈμ¦λ μ 곡ν©λλ€. κ·Έλ¬λ μ£Όλ‘ Javaλ‘ μμ±λμμΌλ©° λͺ¨λ μμ€ μ½λλ κ°λ° λ° λ°°ν¬μ κ΄ν λ¬Έμμ ν¨κ» Githubμμ μ¬μ©ν μ μμ΅λλ€.
μΈκΈλ μ€ν μμ€ SSO μννΈμ¨μ΄λ μν°νλΌμ΄μ¦ μμ€μμ λ리 μ¬μ©λ©λλ€.
λΉμ¦λμ€λ₯Ό μν μ΅κ³ μ μ±κΈ μ¬μΈμ¨ μννΈμ¨μ΄λ₯Ό μ ννλ μ€μ΄λΌλ©΄ μ λ΄μ©μ μ°Έκ³ νμ¬ νμΈνμκΈ° λ°λλλ€.
μ λ κ°μ₯ μ¬μ©νκΈ° μ¬μ΄ KeyCloakμ ν΅ν μΈμ¦ λ°©μμ λν΄μ μμΌλ‘ κ²μκΈμ μμ±ν μμ μ λλ€.