์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ dacsauth ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
dacsauth - ์ธ์ฆ ํ์ธ
๊ฐ์
๋ฅ์ฌ์ฐํธ [-m ์ธ์ฆ ๋ชจ๋ ์ฌ์] [...] [-r ์ญํ -๋ชจ๋-์ฌ์] [...] [-D์ง๋ น=๊ฐ์น]
[-aux]
[-fj ์ฑ] [-fn ํ๋๋ค์] [-h | -๋์] [-์ ๋ถ์ฆ] [-NS log_level]
[-p ์ํธ]
[-pf ํ์ผ] [-์ฆ๊ฐ์ ์ธ] [-q] [{-u | -์ฌ์ฉ์} ์ฌ์ฉ์ ์ด๋ฆ] [-v]
dacsauth ๋ชจ๋
๊ธฐ์
์ด ํ๋ก๊ทธ๋จ์ DACS ๋ชจ์๊ณก.
XNUMXD๋ดํ์ ๋ฅ์ฌ์ฐํธ ์ฃผ์ด์ง ์ธ์ฆ ์๋ฃ๊ฐ ์ธ์ฆ์ ๋ง์กฑํ๋์ง ์ฌ๋ถ๋ฅผ ํ ์คํธํ๋ ์ ํธ๋ฆฌํฐ
์๊ตฌ ์ฌํญ ๋ฐ ํ๋ก์ธ์ค์ ์ข ๋ฃ ์ํ๋ฅผ ํตํด ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ ๋๋ค. ์ ๋น์ทํ๋ค
dacs_์ธ์ฆ(8)[1] ๋ฐ dacscred(1)[2].
๋ฅ์ฌ์ฐํธ ์คํฌ๋ฆฝํธ ๋ฐ ๊ธฐํ ํ๋ก๊ทธ๋จ์ด DACS ์ธ์ฆ
ํ๋ถ ๊ตฌ์กฐ. ์ฑ๊ณต์ ์ธ ์ธ์ฆ์ ๋๋ต์ ์ธ ํ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ถํ ๋ถ์ฌ; ์ฌ๋ฐ๋ฅธ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๊ณตํ๋ ์ฌ์ฉ์๋ง
์๋ฅผ ๋ค์ด ํ๋ก๊ทธ๋จ. ๋๋ ์ฑ๊ณต ํ ์ผ๋ถ ์ ํ์ ์๊ฒฉ ์ฆ๋ช ์ ๋ฐํํ ์ ์์ต๋๋ค.
์ธ์ฆ ๋๋ ์๋ง๋ ์ฌ์ฉ dacs_auth_agent(8)[3] ๋์๊ฐ๋ค DACS ์ ์์ฅ.
๋ฅ์ฌ์ฐํธ ์ง์ ๋ ์ฌ์ฉ์์ ๊ด๋ จ๋ ์ญํ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ๋ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฅ์ฌ์ฐํธ ์๋ฌด๊ฒ๋ ์ฝ์ง ์๋๋ค DACS ๊ตฌ์ฑ ํ์ผ. ํ ์คํธ ์ํ์ ํ์ํ ๋ชจ๋ ๊ฒ
์ธ์๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
ํ
If ๋ฅ์ฌ์ฐํธ ๋ด์ฅ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ํํ๊ฑฐ๋ ์ญํ ์ ์กฐํํฉ๋๋ค. ์๋
์ฌ๊ธฐ๋ ์ฌ๋ ๊ตฌ์ฑ ์์ is ํ์. ์ด๊ฒ์ ๋น์ ์ด ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค ๋ฅ์ฌ์ฐํธ ~ ํ ํ์์์ด
Apache๋ฅผ ํฌํจํ ์น ์๋ฒ์ ์ก์ธ์คํ๊ฑฐ๋ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.
์ต์
๋ค์ ๋ช ๋ น์ค ํ๋๊ทธ๊ฐ ์ธ์๋ฉ๋๋ค. ์ ์ด๋ ํ๋ -m ํ๋๊ทธ(์ํํ๊ธฐ ์ํด
์ธ์ฆ ํ ์คํธ) ๋๋ ์ ์ด๋ ํ๋ -r ํ๋๊ทธ๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค(์ญํ ์ ๊ตฌ์ฑํ๋ ค๋ฉด
ID์ ๋ํ ์ค๋ช ์ ๋ฌธ์์ด์ stdout์ผ๋ก ์ธ์ํฉ๋๋ค. ๋ ํ๋๊ทธ์ ์กฐํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์ญํ ์ค๋ช ์ ๋ฌธ์์ด์ ์ธ์ฆ ํ ์คํธ๋ฅผ ํต๊ณผํ ๊ฒฝ์ฐ์๋ง ์ถ๋ ฅ๋ฉ๋๋ค.
์ฑ๊ณตํ์ต๋๋ค.
-D์ง๋ น=๊ฐ์น
์ด๋ ์ค์ ๊ณผ ๋์ผํฉ๋๋ค. ์ง๋ น, ์ฅ๊ตฐ DACS ๊ตฌ์ฑ ์ง์๋ฌธ
๊ฐ์น. ์ฐธ์กฐ dacs.conf(5)[4].
-aux
์์ ์ ๊ณตํ๋ ๋ค์ ๋ฌธ์์ด -p, -pf๋ฐ -์ฆ๊ฐ์ ์ธ ํ๋๊ทธ๋
๋ณด์กฐ์ ์ธ์ฆ ์ธ์. ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ์์ ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ PIN๊ณผ ๊ฐ์ ๋ณด์กฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ํธ๋ฅผ ์ป๊ธฐ ์ํ ํ๋๊ทธ,
์๋ ๊ฒฝ์ฐ ๋ช ๋ น์ค์์ ์ด ํ๋๊ทธ ์์ ์์ด์ผ ํฉ๋๋ค.
-fj ์ฑ
์ฑ, ๊ดํ ๊ตฌ์ญ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ฌธ์ ์ ํจํด์ผ ํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ
ํ์ง๋ง ์ ๊ณต๋์ง ์์ผ๋ฉด ํธ์คํธ์ ๋๋ฉ์ธ ์ด๋ฆ์์ ํ์๋ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
-fn ํ๋๋ค์
ํ๋๋ค์, ํ๋๋ ์ด์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ฌธ์ ์ ํจํด์ผ ํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ
ํ์ง๋ง ์ ๊ณต๋์ง ์์ผ๋ฉด ํธ์คํธ์ ๋๋ฉ์ธ ์ด๋ฆ์์ ํ์๋ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
-h
-๋์
๋์๋ง ๋ฉ์์ง๋ฅผ ํ์ํ๊ณ ์ข ๋ฃํฉ๋๋ค.
-์ ๋ถ์ฆ
์ฑ๊ณตํ๋ฉด ์ธ์ฆ๋ DACS ํ์ค ์ถ๋ ฅ์ ๋ํ ID.
-NS log_level
๋๋ฒ๊น ์ถ๋ ฅ ๋ ๋ฒจ์ ๋ค์์ผ๋ก ์ค์ ํ์ญ์์ค. log_level (์ฐธ์กฐ ๋ฅ์ค(1)[5]). ๊ธฐ๋ณธ ๋ ๋ฒจ์
๊ฒฝ๊ณ ํฉ๋๋ค.
-m ์ธ์ฆ ๋ชจ๋ ์ฌ์
ํ์ํ ์ธ์ฆ ํ ์คํธ์ ๊ฐ ์ ํ์ ์ธ์ฆ ๋ชจ๋ ์ฌ์
๋ฐ๋ก ๋ค๋ฐ๋ฅด๋ -m ๊น๋ฐ. ๊ฐ ์ธ์ฆ ๋ชจ๋ ์ฌ์ ๋ณธ์ง์ ์ผ๋ก
์ ๋์ฒด ํํ ์ธ์ฆ ์ [6] ๋ฐ ํด๋น ์ง์์ด๋ ๋ค์์์ ์ฌ์ฉํฉ๋๋ค.
dacs_์ธ์ฆ(8)[1]. Auth ์ ์ด a์ ๋ํ๋๋ ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก DACS
๊ตฌ์ฑ ํ์ผ, -m ํ์๋๋ ํ๋๊ทธ๊ฐ ์ค์ํ ์ ์์ต๋๋ค.
์ ๋ฐ๋ผ ์ ์ด ํค์๋. ์ฒ๋ฆฌํ๋ ๋์ ์ฐ์์ ์ผ๋ก -m ๊ตฌ์ฑ ์์๋
์๋์ผ๋ก ํ ๋น๋ ์ด๋ฆ, auth_module_1, auth_module_2 ๋ฑ, ์ฃผ๋ก
์ค๋ฅ ๋ณด๊ณ ๋ชฉ์ .
An ์ธ์ฆ ๋ชจ๋ ์ฌ์ ๋ค์ ๊ตฌ๋ฌธ์ด ์์ต๋๋ค.
XNUMXD๋ดํ์ ๋ชจ๋ ๋ด์ฅ ๋ชจ๋์ ์ด๋ฆ์ด๋ ์ ํจํ ์ฝ์ด๋ก ์์ํฉ๋๋ค.
๋๋ ์ธ๋ถ ์ธ์ฆ ๋ชจ๋์ (์ ๋) URL(
์ ์, URL[7] ์ง์์ด). ๋ค์์ ์ธ์๋ ์ธ์ฆ ์คํ์ผ ํค์๋๋ก ๋ํ๋์ผ ํฉ๋๋ค.
์ง์ ์(์ ํด๋นํ๋ STYLE[8] ์ง์์ด). ๋ค์์ผ๋ก ์ ์ด ํค์๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋์ผํ ๊ฒ ํต์ [9] Auth ์ ์ ์ง์์ด. ํ ์ ์ด
ํค์๋, ์๋์ ์ค๋ช ๋ ํ๋๊ทธ๋ ์ด๋ค ์์๋ก๋ ๋ค๋ฐ๋ฅผ ์ ์์ต๋๋ค.
An ์ธ์ฆ ๋ชจ๋ ์ฌ์ ์ฒซ ๋ฒ์งธ ์ ํจํ์ง ์์ ํ๋๊ทธ(๋๋ ํ๋๊ทธ์ ๋)๊ฐ
๋ง๋ฌ๋ค.
XNUMXD๋ดํ์ -O ํ๋๊ทธ๋ OPTION[10] ์ง์.
XNUMXD๋ดํ์ -NS ํ๋๊ทธ ๋ค์์๋ ์ฝ์ ํ์ผ์ ์ด๋ฆ์ธ ์ธ์๊ฐ ์ต๋๋ค.
์ต์ , ํ ์ค์ ํ๋์ฉ ํ์ name=๊ฐ์น. ๋น ์ค๊ณผ ๋ค์์ผ๋ก ์์ํ๋ ์ค
'#'์ ๋ฌด์๋ฉ๋๋ค. ์ด ์ค์ "-O"๋ก ์์ํ์ง ์์ผ๋ฉฐ ๋ฐ์ดํ๋ ๋จ์ํ
๋ณต์ฌ๋๊ณ ํด์๋์ง ์์ต๋๋ค. ๊ทธ๋งํผ -NS ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ํธ๋ฅผ ์ ๋ ฅํ์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ๊ทธ๋ ์ง ์์ ์์ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์์ ์ํ ํด์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์กฐ์ฌ์ค๋ฝ๊ฒ ์ด์ค์ผ์ดํํด์ผ ํฉ๋๋ค.
XNUMXD๋ดํ์ -expr ํ๋๊ทธ๋ ํน๊ธ[11] ์ง์. ๊ทธ๋งํผ -vfs ํ๋๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
๊ตฌ์ฑ Vfs[12] ์ด ๋ชจ๋์ ํ์ํ ์ง์๋ฌธ.
-๋ชจ๋
๊ธฐ๋ณธ ์ ๊ณต ์ธ์ฆ ๋ชจ๋ ๋ฐ ์ญํ ๋ชจ๋ ๋ชฉ๋ก์ ํ ์ค์ ํ๋์ฉ ํ์ํ๊ณ
๊ทธ๋ฐ ๋ค์ ์ข ๋ฃํฉ๋๋ค. ํ์ค ๋ชจ๋ ์ด๋ฆ์ด ์ธ์๋๊ณ XNUMX๊ฐ ์ด์์ ๋๋ฑํ ํญ๋ชฉ์ด ๋ค๋ฐ๋ฆ ๋๋ค.
์ฝ์ด. ์ธ์ฆ ๋ชจ๋์ ๊ฒฝ์ฐ ์ธ์ฆ ์คํ์ผ์ด ํ์๋ฉ๋๋ค. ๋ชฉ๋ก์
์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋์ ๋ณด๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํ์ญ์์ค.
% dacsauth -๋ชจ๋
์ฌ์ฉ ๊ฐ๋ฅํ(ํ์ฑํ๋) ๊ธฐ๋ณธ ์ ๊ณต ์ธ์ฆ ๋ฐ ์ญํ ๋ชจ๋ ์งํฉ์ด ๊ฒฐ์ ๋ฉ๋๋ค.
์ธ์ DACS ์ง์ด์ก์ต๋๋ค.
-p ์ํธ
์ฌ์ฉํ ์ํธ๋ฅผ ์ง์ ํฉ๋๋ค( PASSWORD ์ธ์
dacs_์ธ์ฆ).
๋ณด์
๋ช ๋ น์ค์ ์ง์ ๋ ์ํธ๋ ๋์ผํ ์์คํ ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ํ์๋ ์ ์์ต๋๋ค.
์์คํ .
-pf ํ์ผ
์์ ์ฌ์ฉํ ์ํธ ์ฝ๊ธฐ ํ์ผ (๋๋ฑํ PASSWORD ์ธ์
dacs_์ธ์ฆ). ๋ง์ฝ ํ์ผ "-"์ด๋ฉด ํ์ค ์ ๋ ฅ์์ ์ํธ๋ฅผ ์ฝ์ต๋๋ค.
๋ฌป์ง ์๊ณ .
-์ฆ๊ฐ์ ์ธ
์ํธ๋ฅผ ๋ฌป๊ณ stdin์์ ์ฝ์ต๋๋ค( PASSWORD ์ธ์
dacs_์ธ์ฆ). ์ํธ๋ ์์ฝ๋์ง ์์ต๋๋ค.
-q
๋๋ฒ๊น ์ถ๋ ฅ ๋ ๋ฒจ์ ์ค์ฌ ๋ ์กฐ์ฉํด์ง๋๋ค.
-r ์ญํ ๋ชจ๋ ์ฌ์
์ญํ ์ฌ์ฉ์ ์ด๋ฆ ์ด ํ๋๊ทธ๋ฅผ ์ ๊ณตํ์ฌ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๋ค์ ์ญํ -๋ชจ๋-์ฌ์. ๊ทธ๋งํผ -r ํ๋๊ทธ๊ฐ ๋ฐ๋ณต๋ ์ ์์ผ๋ฉฐ ๊ฒฐ๊ณผ ์ญํ
๊ฒฐํฉ๋ฉ๋๋ค. ๊ฐ ์ญํ -๋ชจ๋-์ฌ์ ๋ณธ์ง์ ์ผ๋ก
๋ค์์์ ์ฌ์ฉํ๋ ์ญํ ์ dacs_์ธ์ฆ(8)[13]. ์ฐ์ -r ๊ตฌ์ฑ ์์๋
์ฃผ๋ก ์ค๋ฅ ๋ณด๊ณ ๋ฅผ ์ํด ํ ๋น๋ ์ด๋ฆ, roles_module_1, roles_module_2 ๋ฑ
๋ชฉ์ .
A ์ญํ -๋ชจ๋-์ฌ์ ๋ค์ ๊ตฌ๋ฌธ์ด ์์ต๋๋ค.
XNUMXD๋ดํ์ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ Roles ์ ์ URL[14] ์ง์์ด ๋ฐ
์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ณธ ์ ๊ณต ์ญํ ๋ชจ๋์ ์ด๋ฆ, ์ ํจํ ํด๋น ์ฝ์ด,
๋๋ ์ธ๋ถ ์ญํ ๋ชจ๋์ (์ ๋) URL์ ๋๋ค.
ํ๋๊ทธ๋ ๋ค์์ ๋ฐ๋ฅผ ์ ์์ต๋๋ค. ๋ชจ๋ ์ด๋ค ์์๋ก ๊ตฌ์ฑ ์์. ใ ์ญํ -๋ชจ๋-์ฌ์ ๋๋ ๋
์ฒซ ๋ฒ์งธ ์ ํจํ์ง ์์ ํ๋๊ทธ(๋๋ ํ๋๊ทธ์ ๋)๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค.
XNUMXD๋ดํ์ -O ํ๋๊ทธ๋ OPTION[10] ์ง์.
XNUMXD๋ดํ์ -NS ํ๋๊ทธ ๋ค์์๋ ์ฝ์ ํ์ผ์ ์ด๋ฆ์ธ ์ธ์๊ฐ ์ต๋๋ค.
์ต์ , ํ ์ค์ ํ๋์ฉ ํ์ name=๊ฐ์น. ๋น ์ค๊ณผ ๋ค์์ผ๋ก ์์ํ๋ ์ค
'#'์ ๋ฌด์๋ฉ๋๋ค. ์ด ์ค์ "-O"๋ก ์์ํ์ง ์์ผ๋ฉฐ ๋ฐ์ดํ๋ ๋จ์ํ
๋ณต์ฌ๋๊ณ ํด์๋์ง ์์ต๋๋ค. ๊ทธ๋งํผ -NS ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ํธ๋ฅผ ์ ๋ ฅํ์ง ์๋๋ก ํ ์ ์์ต๋๋ค.
๋ช ๋ น์ค์ ์ฌ์ฉํ์ฌ ๊ทธ๋ ์ง ์์ ์์ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์์ ์ํ ํด์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์กฐ์ฌ์ค๋ฝ๊ฒ ์ด์ค์ผ์ดํํด์ผ ํฉ๋๋ค.
XNUMXD๋ดํ์ -expr ํ๋๊ทธ๋ ํน๊ธ[11] ์ง์. ๊ทธ๋งํผ -vfs ํ๋๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
๊ตฌ์ฑ Vfs[12]์ ์ํด ์๊ตฌ๋๋ ์ง์๋ฌธ ๋ชจ๋.
-u ์ฌ์ฉ์ ์ด๋ฆ
-์ฌ์ฉ์ ์ฌ์ฉ์ ์ด๋ฆ
์ธ์ฆํ ์ฌ์ฉ์ ์ด๋ฆ( ์ฌ์ฉ์ ์ด๋ฆ ์ธ์
dacs_์ธ์ฆ). ์ด ์ฌ์ฉ์ ์ด๋ฆ์ ์ ํจํ
์ฐ๋งน ๋ฐ ๊ดํ ๊ถ (์ฐธ์กฐ -fn[15] ๋ฐ -fj[16] ํ๋๊ทธ).
-v
XNUMXD๋ดํ์ -v ํ๋๊ทธ๋ ๋๋ฒ๊น ์ถ๋ ฅ ๋ ๋ฒจ์ ๋๋ฒ๊ทธ ๋๋ (๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ) ํธ๋ ์ด์ค๋ก ๋ฒํํฉ๋๋ค.
์ฌ์ฉ ์
๋ณด์
If ๋ฅ์ฌ์ฐํธ ๋ด์ฅ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ํํ๋ ค๋ฉด setuid ๋๋
ํ์ํ ์ํธ ํ์ผ์ ์ก์ธ์คํ ์ ์๋ ์ถฉ๋ถํ ๊ถํ์ ์ป๊ธฐ ์ํ setgid(๋์ผํ
๊ธฐ๋ณธ ์ ๊ณต ์ญํ ๋ชจ๋์ ๊ฒฝ์ฐ ์ฐธ์ ๋๋ค). ์ธ๋ถ ๋ชจ๋์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ๋ชจ๋์
์ก์ธ์คํ ์ ์๋ ์ถฉ๋ถํ ๊ถํ์ผ๋ก ์คํํด์ผ ํจ DACS ์ํธํ ํค,
ํนํ federation_keys ๋ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ DACS ๋๋ ์์คํ ์ํธ ํ์ผ; ์ธ๋ถ
๊ทธ๋ฌ๋ฉด ๋ชจ๋์ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ํ์ผ์ ์ก์ธ์คํ ์ ์๋ ์ถฉ๋ถํ ๊ถํ์ผ๋ก ์คํํด์ผ ํฉ๋๋ค.
ํ์ํฉ๋๋ค.
ํ๋๋ ์ด์ ์ ๋ง๋ federation_keys๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฐธ์กฐ
๋ ๊ฐ ์ด์์ ์ฐํฉ์ ์๋ ์ธ์ฆ ๋ชจ๋์ ์๋ง๋ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค.
๋ฅ์ฌ์ฐํธ ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ผ๋ก ํธ์ถํ๋ ์ฌ์ฉ์์ UID๋ก ์คํํ๋ฉด ์ ๋ฉ๋๋ค.
(๋ฃจํธ๊ฐ ์๋ ๊ฒฝ์ฐ) ์ ๋ณด์ ์ก์ธ์คํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๊ฒ์ ํ์ํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ์ฌ์ฉ์๊ฐ "์์์"(์:
๋๋ฒ๊ฑฐ๋ก ๋ชจ๋ ์คํ).
์ด ์๋ "test"๋ผ๋ ์ํธ๋ก "bobo" ์ฌ์ฉ์๋ฅผ ์ธ์ฆํฉ๋๋ค. DACS ๋น๋ฐ๋ฒํธ ํ์ผ
/usr/local/dacs/conf/passwd:
% dacsauth -m passwd passwd ํ์
-vfs "[passwds]dacs-kwv-fs:/usr/local/dacs/conf/passwd" -q -u bobo -p ํ ์คํธ
๋ช ๋ น์ ์ข ๋ฃ ์ํ๊ฐ XNUMX์ด๋ฉด ์ธ์ฆ ํ ์คํธ๊ฐ ์ฑ๊ณตํ ๊ฒ์ ๋๋ค.
์คํจํ.
๋ค์ ์์ ๋ Unix ์ํธ ํ์ผ์ ๋ํด "bobo" ์ธ์ฆ์ ์๋ํฉ๋๋ค. ๊ทธ๋งํผ
ํ๋ก๊ทธ๋จ์ด ์ํธ๋ฅผ ๋ฌป์ต๋๋ค.
% dacsauth -m ์ ๋์ค ์ํธ ํ์ -u bobo -prompt
๋ค์ ์์์๋ ๋ฅ์ฌ์ฐํธ NTLM์ ํตํด "bobo" ์ธ์ฆ ์๋
winders.example.com:
% dacsauth -m ntlm passwd suff -OSAMBA_SERVER="winders.example.com" -prompt -u bobo
์ด ์์ ๋ ์ธ๋ถ ์ธ์ฆ ๋ชจ๋์ด ์๋ค๋ ์ ์ ์ ์ธํ๋ฉด ์ด์ ์์ ์ ์ ์ฌํฉ๋๋ค.
๊ฐ ์ฌ์ฉ๋๊ณ ํ์ผ์์ ์ํธ๋ฅผ ์ฝ์ต๋๋ค. ์ธ๋ถ ๋ชจ๋๋ก ์ธํด ์ถ๊ฐ
๊ตฌ์ฑ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ํนํ federation_keys์ ์์น์
์ฐ๋ฐฉ ๋ฐ ๊ดํ ๊ตฌ์ญ ์ด๋ฆ์ ์ง์ ํด์ผ ํฉ๋๋ค.
% dacsauth -m https://example.example.com/cgi-bin/dacs/local_ntlm_authenticate \
์ถฉ๋ถํ ์ํธ -OSAMBA_SERVER="winders.example.com" \
-fn ์ -fj FEDROOT -u bobo -pf mypass \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/example/federation_keys"
์ ๋ํด ์ธ์ฆํ๋ ค๋ฉด ๊ตฌ๊ธ[17] ๊ณ์ [์ด๋ฉ์ผ ๋ณดํธ], ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
% dacsauth -m http passwd suff \
-OAUTH_URL="https://www.google.com/accounts/ClientLogin" \
-OUSERNAME_PARAMETER=์ด๋ฉ์ผ -OPASSWORD_PARAMETER=๋น๋ฐ๋ฒํธ \
-Oservice=xapi -Osource=DSS-DACS-1.4 -prompt -u [์ด๋ฉ์ผ ๋ณดํธ]
๋ค์ ์์์๋ ์ธ์ฆ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์์ ํ๊ฐํฉ๋๋ค.
์ฑ๊ณตํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์("bobo")์๊ฒ ์ํธ๋ฅผ ๋ฌป๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ๋ฌธ์์ด "foo"๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ง
์ฃผ์ด์ง ์ธ์ฆ์ด ์ฑ๊ณตํฉ๋๋ค. ๋ณด๋ค ํ์ค์ ์ธ ์๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ํธ์ถํ์ฌ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
% dacsauth -m expr expr suffi \
-expr '${Args::PASSWORD} eq "foo" ? ${Args::USERNAME} : ""' -์ฌ์ฉ์ bobo -ํ๋กฌํํธ
Apache์ ๋ํ ์ธ์ฆ htdigest ์ํธ ํ์ผ์ ๋ค์์์ ์ํ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด stdin์์ ์ํธ๋ฅผ ์ฝ์ต๋๋ค.
% ์์ฝ "ํ ์คํธ" | dacsauth -m ์ํ์น ๋ค์ด์ ์คํธ ์ถฉ๋ถ \
-OAUTH_MODULE=mod_auth_digest \
-OAUTH_FILE=/usr/local/apache2/conf/passwords.digest \
-OAUTH_REALM="DACS ๋ค์ด์ ์คํธ ์ธ์ฆ ์์ญ" \
-u ๋ณด๋ณด -pf -
PAM ๋ชจ๋์ ํตํ ์ธ์ฆ์ ๋ค๋ฅธ ๋ชจ๋๊ณผ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค.
์ฌ์ฉํ๊ธฐ ๋ณต์ก - ๋๋ฌธ์ ๋ฅ์ฌ์ฐํธ ๋ฌด์์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ฒ ์คํํด์ผ ํ ์๋ ์์ต๋๋ค.
PAM์ด ์๊ตฌํ๋ ์ ๋ณด. ์/์๋์ค ๊ฒฐ์ ์ ๋ฐํํ๋ ๋์ ๋ฅ์ฌ์ฐํธ ์ธ์ํ ์ ์์ต๋๋ค
stdout์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ๋ฌป๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์ ์ ์๋ ์ด์ ์ธ๋ถ ์ฌํญ์ ๊ฒํ ํ์ญ์์ค.
dacs_์ธ์ฆ(8)[18] ๋ฐ ํ๋(8)[19] ์ด ๋ชจ๋์ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ๊ธฐ ์ ์.
๋ค์ ์์ ๋ ๋ช ๋ น์ค์์ ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ผ๋จ ๊ธฐ๋ณธ
์์ด๋์ด๋ฅผ ์ดํดํ๊ณ ์ํํ๊ธฐ ์ํด ๋๋ณธ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด ๋ช ๋ฐฑํด์ผ ํฉ๋๋ค.
ํ์ํ ๋ฐ๋ณต. ๊ฒฝ๋ก์ ๊ฐ์ ์์ ์ ์ธ๋ถ ์ฌํญ์ ์กฐ์ ํด์ผ ํ ์ ์์ต๋๋ค.
๋น์ ์ ํ๊ฒฝ. ์ด ์์์ ์ฌ์ฉ์ ์ด๋ฆ์ ์ฒ์์ ์ง์ ๋์ง ์์ต๋๋ค.
๋ฅ์ฌ์ฐํธ ์๋ ค์ง ๊ฒฝ์ฐ ์คํ๋ ์ ์์ง๋ง ์คํ๋ฉ๋๋ค.
% dacsauth -m pam ํ๋กฌํํธ ์ถฉ๋ถ \
-vfs "[federation_keys]dacs-fs:/usr/local/dacs/federations/dss/federation_keys" \
-OPAMD_HOST=localhost -OPAMD_PORT=dacs-pamd -fj ์ -fn ํ ์คํธ
AUTH_PROMPT_VAR1="๋ก๊ทธ์ธ:"
AUTH_TRANSID="10.0.0.124:57849:85748:9997c5588a6239e3"
% dacsauth -m pam ํ๋กฌํํธ ์ถฉ๋ถ \
-vfs "[federation_keys]dacs-fs:/usr/local/dacs/federations/dss/federation_keys" \
-OAUTH_PROMPT_VAR1="๋ณด๋ณด" \
-OAUTH_TRANSID="10.0.0.124:57849:85748:9997c5588a6239e3"-fj EXAMPLE -fn TEST
AUTH_PROMPT_VAR2="๋น๋ฐ๋ฒํธ:"
AUTH_TRANSID="10.0.0.124:52188:88417:5ffb0015f21ea546"
% dacsauth -m pam ํ๋กฌํํธ ์ถฉ๋ถ \
-vfs "[federation_keys]dacs-fs:/usr/local/dacs/federations/dss/federation_keys" \
-OAUTH_PROMPT_VAR2="์ํธ" \
-OAUTH_TRANSID="10.0.0.124:57849:85748:9997c5588a6239e3"-fj EXAMPLE -fn TEST
์ฒ์ ๋ฅ์ฌ์ฐํธ ์์ ์์ ์คํ๋๋ฉด ์ฌ์ฉ์ ์ด๋ฆ์ ๋ํ ํ๋กฌํํธ๋ฅผ ๋ฐํํฉ๋๋ค.
("๋ก๊ทธ์ธ:") ํธ๋์ญ์ ๋ณ์์ ์ฐ๊ฒฐ๋จ AUTH_PROMPT_VAR1 ๋ฐ
ํธ๋์ญ์ ์๋ณ์(AUTH_TRANSID). ํ์๋ ๋ค์์ผ๋ก ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค.
์ ์ฒํ ๋ฅ์ฌ์ฐํธ. ์ ๋ ๋ฒ์งธ ์คํ ๋ฅ์ฌ์ฐํธ ์ฌ์ฉ์ ์ด๋ฆ("bobo")์ ์ ๋ฌํ๊ณ
ํธ๋์ญ์ ๋ณ์์ ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ํ๋กฌํํธ("๋น๋ฐ๋ฒํธ:")๋ฅผ ๋ฐํํฉ๋๋ค.
AUTH_PROMPT_VAR2. ์ธ ๋ฒ์งธ ์คํ์ ์ํธ("apassword")๋ฅผ ์ ๋ฌํ์ง๋ง ํ๋กฌํํธ๊ฐ ํ์๋์ง ์์ต๋๋ค.
๋ฐํ๋์ด ์ธ์ ์ด ์๋ฃ๋๊ณ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃ ์ํ๊ฐ ๋ฐ์๋จ์ ๋ํ๋ ๋๋ค.
์ธ์ฆ๊ฒฐ๊ณผ.
ํ
ํฌ์ฅ ์ ์กฐ๋ฅผ ์ํด ๋ฅ์ฌ์ฐํธ ํน์ ์ญํ ์ ๋ฐ๋ผ ์ญํ ์ ๊ฒ์ํ๋ ค๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํฉ๋๋ค.
์ฌ์ฉ์ค์ธ ๋ชจ๋. ์๋ฅผ ๋ค์ด ์ํธ๊ฐ ํ์ํ์ง ์์ ๊ฒฝ์ฐ local_unix_roles[20] ๋๋
local_roles[21] ์ญํ ์ ์ป๊ธฐ ์ํด local_ldap_roles[22] ์๋ง๋
๋๋ ํฐ๋ฆฌ์ ๋ฐ์ธ๋ฉํ๊ณ ์ญํ ์ ์ป๊ธฐ ์ํ ์ํธ์ ๋๋ค.
์ด ์๋ ๋ด์ฅ ํจ์๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉ์ "bobo"์ ์ญํ ๋ฌธ์์ด์ ์ธ์ํฉ๋๋ค.
local_unix_roles[20] ๋ชจ๋:
% dacsauth -r ์ ๋์ค -u ๋ณด๋ณด
bobo,ํ ,www,์ฌ์ฉ์
๋ค์ ์์ ๋ ์ธ๋ถ ์ญํ ๋ชจ๋์ด ์ฌ์ฉ๋๋ค๋ ์ ์ ์ ์ธํ๋ฉด ์ด์ ์์ ์ ์ ์ฌํฉ๋๋ค.
% dacsauth -r https://example.example.com/cgi-bin/dacs/local_unix_roles \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn ์ -u ๋ณด๋ณด
bobo,ํ ,www,์ฌ์ฉ์
์ธ๋ถ ์ญํ ๋ชจ๋์ ์คํ ์ค์ธ ํธ์คํธ๊ฐ ์๋ ๋ค๋ฅธ ํธ์คํธ์์ ์คํ๋ ์ ์์ต๋๋ค.
๋ฅ์ฌ์ฐํธ. ์ ๊ณต ๋ฅ์ฌ์ฐํธ ์ค์น๋์์ผ๋ฉฐ ์ผ์นํ๋ federation_keys ํ์ผ์ด ์์ต๋๋ค.
๋ก์ปฌ ํธ์คํธ์์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋ก์ปฌ ํธ์คํธ๋ DACS ๊ดํ ๊ถ์ด ์๊ฑฐ๋
other DACS ๊ตฌ์ฑ.
๋ค์ ์์ ๋ ์ญํ ํ[23] ์ฌ์ฉ์ "bobo"์ ๋ํด
(์ธ๋ถ)๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ์ด๋ฆ "Bobo Baggins"๋ก ๋๋ ํ ๋ฆฌ local_ldap_roles[22]
๋ชจ๋ ๋ฐ "์ง์ " ๋ฐ์ธ๋ฉ ๋ฐฉ๋ฒ:
% dacsauth -r https://example.example.com/cgi-bin/dacs/local_ldap_roles \
-Of /usr/local/dacs/ldap_roles_options_direct -u "Bobo Baggins" \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn ์ -fj FEDROOT -ํ๋กฌํํธ
DnsAdmins, Print_Operators, Domain_Admins, ๊ด๋ฆฌ์
๋ช ๋ น์ค์ ์ฝ๊ณ ์ ํํ๊ฒ ๋ฐฐ์นํ๊ธฐ์๋ ํ๋๊ทธ๊ฐ ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์
์ด๋ฅผ ์ํํ๋ ๋ฐ ํ์ํ ์ต์ ์ -NS ๊น๋ฐ.
์ด๊ฒ์ ๋ํ ํ๋ก๊ทธ๋จ์ ์ํธ๋ฅผ ์ ๋ฌํ๋ ๋ณด๋ค ์์ ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ก์ธ์ค๋ฅผ ๋ณด์ฅ
ํ์ผ์ ์ ์ ํ๊ฒ ์ ํ๋ฉ๋๋ค. ํ์ผ
/usr/local/dacs/ldap_roles_options_direct์๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
LDAP_BIND_METHOD=์ง์
LDAP_ADMIN_URL*="ldap://winders.example.com/CN=" . ์ธ์ฝ๋ฉ(url,${Args::DACS_USERNAME}) . ",CN=์ฌ์ฉ์,DC=์์ ,DC=com"
LDAP_ROLES_SELECTOR*="${LDAP::attrname}" eq "memberOf" ? strtr(ldap(rdn_attrvalue, \
ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""
๋ค์ ์์ ๋ "indirect" ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ๋ค๋ ์ ์ ์ ์ธํ๋ฉด ์ด์ ์์ ์ ์ ์ฌํฉ๋๋ค.
๋ฐฉ๋ฒ์ด๋ฏ๋ก ์ฌ์ฉ์์ ์ผ๋ฐ ์ด๋ฆ์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค.
% dacsauth -r https://example.example.com/cgi-bin/dacs/local_ldap_roles \
- /usr/local/dacs/ldap_roles_options_indirect -u bobo \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn ์ -fj FEDROOT -p bobospassword
DnsAdmins, Print_Operators, Domain_Admins, ๊ด๋ฆฌ์
ํ์ผ /usr/local/dacs/ldap_roles_options_indirect์๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์ฑ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ด:
LDAP_BIND_METHOD=๊ฐ์
LDAP_ADMIN_URL=ldap://winders.example.com/CN=๊ด๋ฆฌ์,CN=์ฌ์ฉ์,DC=์,DC=com
# ์ฌ์ฉ์์์ ๊ฒ์...
LDAP_SEARCH_ROOT_DN=CN=์ฌ์ฉ์,DC=์,DC=com
LDAP_ADMIN_PASSWORD=theSecretAdminPassword
LDAP_SEARCH_FILTER*="(sAMAccountName=${Args::DACS_USERNAME})"
LDAP_ROLES_SELECTOR*="${LDAP::attrname}" eq "memberOf" ? strtr(ldap(rdn_attrvalue, \
ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""
์ฌ์ฉํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ๋ฅ์ฌ์ฐํธ ์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก LDAP๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ์ธ์ฆํ๊ธฐ ์ํด
์ด dacs.conf ๊ตฌ์ฑ:
URL "http://example.example.com/cgi-bin/dacs/local_ldap_authenticate"
STYLE "๋น๋ฐ๋ฒํธ, ์ญํ ์ถ๊ฐ"
์ปจํธ๋กค "ํ์"
LDAP_BIND_METHOD "์ง์ "
LDAP_USERNAME_URL* '"ldap://winders.example.com/cn=" . ์ธ์ฝ๋ฉ(url, ${Args::USERNAME}) . ",cn=์ฌ์ฉ์,dc=์,dc=๋ก์ปฌ"'
LDAP_USERNAME_EXPR* '"${LDAP::sAMAccountName}"'
LDAP_ROLES_SELECTOR* '"${LDAP::attrname}" eq "memberOf" \
? strtr(ldap(rdn_attrvalue, ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""'
์ด์ ๊ฐ์ ํ์ผ(์: /usr/local/dacs/ldap_auth_options_direct)์๋
๋ค์ ์ง์๋ฌธ:
LDAP_BIND_METHOD=์ง์
LDAP_USERNAME_URL*="ldap://winders.example.com/cn=" . ์ธ์ฝ๋ฉ(url, ${Args::USERNAME}) . ",cn=์ฌ์ฉ์,dc=์,dc=๋ก์ปฌ"
LDAP_USERNAME_EXPR*="${LDAP::sAMAccountName}"
LDAP_ROLES_SELECTOR*="${LDAP::attrname}" eq "memberOf" \
? strtr(ldap(rdn_attrvalue, ldap(dn_index, "${LDAP::attrvalue}", 1)), " ", "_") : ""
๊ทธ๋ฐ ๋ค์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ์ํํ ์ ์์ต๋๋ค.
% dacsauth -fj FEDROOT -m http://example.example.com/cgi-bin/dacs/local_ldap_authenticate ์ํธ ์ํ \
- /usr/local/dacs/ldap_auth_options_direct ์ค \
-DVFS="[federation_keys]dacs-fs:/usr/local/dacs/federations/federation_keys" \
-fn ์ -u bobo -prompt
์ง๋จ
ํ๋ก๊ทธ๋จ์ ์ธ์ฆ์ ์ฑ๊ณตํ๋ฉด 0์ ์ข ๋ฃํ๊ณ ์ธ์ฆ์ ์คํจํ๋ฉด 1์ ์ข ๋ฃํฉ๋๋ค.
์๋ฌ ๋ฐ์๋จ.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์์ dacsauth ์ฌ์ฉ