SSO (Single Sing-On)
- User๊ฐ Credential์ ํ ๋ฒ ์ ๊ณตํ๋ฉด ๋ค์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผํ ์ ์์
- ํ๋์ ์ดํ๋ฆฌ์ผ์ด์ ์ sign in์ ํ๋ฉด, ๊ฐ์ ์ธ์ ์ ๊ณต์ ํ๋ ๋ค๋ฅธ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผํ ์ ์์
SAML (Security Assertion Markup Language)
- XML ๊ธฐ๋ฐ์ ๋งํฌ์ ์ธ์ด
- federated authentication, sso ๊ตฌํ์ ์ฐ์ด๋ ๊ฐ๋ฐฉํ ํ์ค
- ์น ๊ธฐ๋ฐ ์ฑ๊ธ ์ฌ์ธ์จ (Single Sign-On, SSO)์ ๊ตฌํํ๊ธฐ ์ํ ํ๋กํ ์ฝ ์ค ํ๋
- Security information์ด ์ด๋ป๊ฒ xml ๋ฉ์์ง๋ก ์ธ์ฝ๋ฉ๋์ด ์ ๋ขฐ๋ ๋น์ฌ์๋ค ๊ฐ์ ์ ๋ฌ๋๋์ง ์ ์ํจ
- IdP์ SP ์ฌ์ด์์ authentication๊ณผ authorization ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํ ๊ฐ๋ฐฉํ ํ์ค
- XML์ ์ฌ์ฉํ์ฌ IdP์ SP ๊ฐ์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ์ ๋ณด๋ฅผ ๊ตํํ๋ฉฐ, ์ด๋ฅผ HTTP Redirect ๋๋ HTTP POST๋ฅผ ํตํด ์ ์ก
SAML2 Participants
participants : ์ฐธ๊ฐ์, SAML2 ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ์ฃผ์ฒด ๋๋ ์ญํ , ์๋ก ์ํธ์์ฉ
- User : IdP์ User account๋ฅผ ๊ฐ์ง๋ฉฐ, SP์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ํ๋ ค๊ณ ํจ
- SP, relying party, client application : End User๊ฐ ์ ๊ทผํ๊ณ ์ ํ๋ ์น์ด๋ ๋ชจ๋ฐ์ผ ์ดํ๋ฆฌ์ผ์ด์
- IDP, asserting party : User account๋ฅผ ๊ด๋ฆฌํจ, ์ ์ ์ ์ ์์ ์ธ์ฆํ๋ ์ฑ ์์ ๊ฐ์ง (์ฌ์ฉ์๊ฐ ์์คํ ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋, ์์คํ ์ด ํด๋น ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ์์ ์ด ์ฃผ์ฅํ ๋์์ธ์ง ํ์ธํ๋ ๊ณผ์ ๊ฑฐ์นจ)
๋ณด์ ์ ๋ณด ๊ตํ ์ด์ ์ SP์ IdP ์ฌ์ด์ ์ ๋ขฐ๋ ๊ด๊ณ๊ฐ ์ค์ ๋์ด์ผ ํจ
์ ๋ขฐ๋ ๊ด๊ณ๋ Public Key Cryptography(๊ณต๊ฐ ํค ์ํธํ)์ ๊ธฐ๋ฐํจ
SAML2 Authentication Flow
- ์์:
- SP ํน์ End User๊ฐ ์์ํจ
- SP์ Authentication Request ์์ฑ ๋ฐ ์ ์ก:
- ์ฌ์ฉ์๊ฐ SP์ ์ ๊ทผํ๋ฉด SP๋ Authentication Request๋ฅผ ์์ฑํ์ฌ IdP๋ก ๋ณด๋ด์ ์ฌ์ฉ์์ Identity Information์ ์์ฒญํจ
- Authentication Request : ์ฌ์ฉ์๊ฐ ํน์ ์๋น์ค์ ์ก์ธ์คํ๋ ค๊ณ ํ ๋ SP์์ ์์ฑ๋๊ณ IdP์๊ฒ ์ ์ก๋๋ ์์ฒญ ์ฌ์ฉ์์ ์๋ณ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ฉฐ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก IdP๊ฐ ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๋ ๋ฐ ํ์ํ ์์ ์ ์ํํ๊ฒ ๋จ XML ๋ฉ์์ง๋ก, SP์ ์ ๋ณด์ IdP๋ก๋ถํฐ ์ป์ด์ผ ํ๋ ์ถ๊ฐ ์๊ตฌ ์ฌํญ์ ํฌํจํจ
- IdP์ Authentication Request ๊ฒ์ฆ:
- ํด๋น ์์ฒญ์ด SAML ํ๋กํ ์ฝ ๊ท์น์ ์ค์ํ๋์ง, ์๋ช ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉ๋๋์ง, ์์ํ ํ์๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์๋์ง ํ์ธ
- IdP์ ์ฌ์ฉ์ ์ธ์ฆ:
- ์ฌ์ฉ์์๊ฒ ์๊ฒฉ ์ฆ๋ช (credential)์ ์ ๋ ฅํ๋๋ก ์๋ดํ๊ฑฐ๋ ์์ฒญํจ
- ์ฃผ๋ก ๋ก๊ทธ์ธ ๊ณผ์ ์์ ์ฌ์ฉ์๊ฐ ์์ด๋์ ๋น๋ฐ๋ฒํธ, ๋๋ ๋ค๋ฅธ ์ธ์ฆ ์๋จ์ ์ ๋ ฅํ๋๋ก ํ๋ ๋จ๊ณ์
- ์ฌ์ฉ์๋ ์์ด๋, ๋น๋ฐ๋ฒํธ ๋ฑ์ ์ ๋ ฅํ์ฌ ๋ก๊ทธ์ธ
- Authentication ์ฑ๊ณต ํ Idp์์ SP๋ก ๋ฐํ:
- ์ด ๊ณผ์ ์ ๋ณด์ ๋ฐ ์ธ์ฆ์ ํ์ค์ธ SAML์ ์ฌ์ฉํ์ฌ ์์ ํ๊ฒ ์ด๋ฃจ์ด์ง
- IdP๋ ์ธ์ ์ ๋ง๋ค๊ณ SAML Assertion์ ์์ฑํ์ฌ SP์๊ฒ ๋ฐํํจ
- SAML Assertion : ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ถํ ์ ๋ณด๋ฅผ ํฌํจํ๋ XML ํ์์ ๋ฌธ์
- ์๋ต์๋ Authenticated User ์ด๋ฆ๊ณผ ์์ฒญ๋ ์์ฑ ๋ฑ์ด ํฌํจ๋จ
- IdP๋ Private Key๋ฅผ ์ฌ์ฉํ์ฌ ์๋ต์ ์๋ช ํ๊ณ , SP๋ IdP์ Public Key๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ฆํจ
- ์๋น์ค ์ ๊ณต:
- SP๋ Authentication ๋ฐ ์๋ช ๊ฒ์ฆ ํ user session์ ์์ฑํ์ฌ ๊ทธ์ ๋ฐ๋ฅธ ์๋น์ค๋ฅผ ์ ๊ณต
๋๋ณด๊ธฐ
<์ฌ์ฉ์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ธ์ฆ๋์์ ๋ IdP์์ SP๋ก ๋ฐํ๋๋ ๊ณผ์ >
- ์ธ์
์์ฑ:
- ์ฌ์ฉ์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ธ์ฆ๋๋ฉด IdP๋ ํด๋น ์ฌ์ฉ์๋ฅผ ์ํ ์ธ์ ์ ์์ฑ
- ์ธ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ถ์ ํ๊ณ ์ ์งํ๋ ๋ฐ ์ฌ์ฉ๋จ
- SAML Assertion ์์ฑ:
- IdP๋ SAML Assertion์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ XML ํ์์ ๋ฌธ์๋ฅผ ์์ฑ
- ์ด ๋ฌธ์์๋ ์ฌ์ฉ์์ ์ธ์ฆ ๋ฐ ๊ถํ ์ ๋ณด๊ฐ ํฌํจ๋จ
- ex ) ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง, ์ด๋ป๊ฒ ์ธ์ฆ๋์๋์ง, ์ด๋ค ๊ถํ์ด ๋ถ์ฌ๋์๋์ง ๋ฑ
- ์๋ต์ ํฌํจ๋ ์ ๋ณด:
- IdP๋ ์ด SAML Assertion์ ์๋ต ๋ฉ์์ง์ ํฌํจ์ํด
- ์ด ์๋ต์ ์ฌ์ฉ์์ ์ธ์ฆ์ด ์ฑ๊ณตํ์์ ๋ํ๋ด๋ฉฐ, SP์์ ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํจ
- ์๋ต์๋ ์ฌ์ฉ์์ ์๋ณ ์ ๋ณด์ SP์์ ์์ฒญํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ํฌํจ
- ์๋ช
:
- IdP๋ ์๋ต์ ํฌํจ๋ ์ ๋ณด์ ๋ํด Private Key๋ฅผ ์ฌ์ฉํ์ฌ ๋์งํธ ์๋ช ์ ์์ฑ
- ์ด ์๋ช ์ IdP๊ฐ ์๋ต์ ์์ฑํ์์ ์ฆ๋ช ํ๊ณ , ๋ฉ์์ง์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํจ
- ๊ฒ์ฆ:
- SP๋ IdP์ Public Key๋ฅผ ์ฌ์ฉํ์ฌ ์๋ช ์ ๊ฒ์ฆ
- ์ด๋ฅผ ํตํด ์๋ต์ด ์ ํํ๊ฒ IdP์์ ์์ฑ๋์๊ณ ๋ณ์กฐ๋์ง ์์์์ ํ์ธ ๊ฐ๋ฅ
SAML Assertion
- IdP๊ฐ SP์๊ฒ ๋ณด๋ด๋ XML ๋ฌธ์๋ก user authorization์ ํฌํจ
- 3 ์ข
๋ฅ์ SAML Assertion์ด ์์
- Authentication Assertion : User์ identification์ ์ฆ๋ช ํ๊ณ , ์ ์ ๊ฐ ๋ก๊ทธ์ธํ ์์ ๊ณผ ์ฌ์ฉ๋ Autentication์ ๋ฉ์๋๋ฅผ ์ ๊ณตํจ
- Attribute Assertion : User์ ๊ดํ ์ ๋ณด(์ด๋ฆ, email, ๋ชจ๋ฐ์ผ ๋ฒํธ ๋ฑ) ํฌํจ
- Authorization Decision Assertion : ์ ์ ๊ฐ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋๋ก Authorized๋์๋์ง, ํน์ ๊ถํ ๋ถ์กฑ์ผ๋ก ์ธํด IdP๊ฐ Request๋ฅผ ๊ฑฐ๋ถํ๋์ง ๋ณด์ฌ์ค
SAML Specifications
- SAML 2.0 Core : SAML Assertion์ syntax์ semantic๊ณผ ์์ฒญ ๋ฐ ์ ์ก ํ๋กํ ์ฝ์ ๊ฐ์ ํจ
- SAML 2.0 Bindings
- SAML 2.0 Profiles
- SAML 2.0 Metadata
- ์ฌ์ฉ์๋ Service Provider (SP)์์ ์ ๊ณตํ๋ ์๋น์ค์ ์ก์ธ์คํ๋ ค๊ณ ์๋
- SP๋ ์ฌ์ฉ์๋ฅผ Identity Provider (IdP)๋ก ๋ฆฌ๋๋ ์ ํจ
- ์ฌ์ฉ์๋ IdP์์ ๋ก๊ทธ์ธํ๊ณ ์ธ์ฆ๋๋ฉฐ, IdP๋ SAML Assertion์ ์์ฑ
- IdP๋ ์์ฑ๋ SAML Assertion์ ์์ ํ๊ฒ SP์๊ฒ ๋ฐํํจ
- SP๋ ๋ฐ์ SAML Assertion์ ๊ฒ์ฆํ๊ณ , ์ฌ์ฉ์์ ์ธ์ฆ ๋ฐ ๊ถํ ์ ๋ณด๋ฅผ ์ถ์ถํจ
- SP๋ ์ฌ์ฉ์์ ๋ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ฑฐ๋ ๊ถํ์ ๋ถ์ฌํจ
- SP : IdP์์ ์ ๊ณต๋ SAML Assertion์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ ์์ ํ๊ฒ ์ธ์ฆ
(IdP๋ ์ฌ์ฉ์์ ์ธ์ฆ์ ํ์ธํ๊ณ , ์ธ์ ์ ์์ฑํ ํ์ ์ด๋ฅผ ๋ํ๋ด๋ ๋ฉ์์ง์ธ SAML Assertion์ ์์ฑํ๋ฉฐ, ์ด๋ฅผ Service Provider (SP)๋ก ์ ์กํจ์ผ๋ก์จ ์ฌ์ฉ์์ ์ธ์ฆ ๋ฐ ๊ถํ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํจ) - User : SP์์ ์ถ๊ฐ์ ์ธ ์๋น์ค๋ ์์์ ์ก์ธ์คํ ์ ์์
'๐งญ WSO2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
WSO2 ํธ์คํธ๋ช ๋ณ๊ฒฝ ๊ฐ์ด๋ ์ ๋ฆฌ (1) | 2024.02.14 |
---|---|
WSO2 ํค์คํ ์ด, ๋์งํธ ์ธ์ฆ์, ์ธ์ฆ ๊ธฐ๊ด, JKS์ cacerts, SSL/TLS ํต์ (1) | 2024.02.14 |
Fine-grained access (0) | 2024.01.31 |