๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ” ๊ทธ๋ฃน

๊ทธ๋ฃน์€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋‹ค์Œ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค

  • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์‹œ์— ๊ถŒํ•œ์„ ํ• ๋‹นํ•˜์—ฌ ์•ก์„ธ์Šค ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”
  • ํŠน์ • ๋ฆฌ์†Œ์Šค(๋ชจ๋ธ, ๋„๊ตฌ ๋“ฑ)์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ "๋น„๊ณต๊ฐœ"๋กœ ์„ค์ •ํ•œ ํ›„ ํŠน์ • ๊ทธ๋ฃน์— ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ์ œํ•œ
  • ๊ทธ๋ฃน์— ๋Œ€ํ•ด ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ "์ฝ๊ธฐ" ๋˜๋Š” "์“ฐ๊ธฐ"๋กœ ์ง€์ •(์“ฐ๊ธฐ ๊ถŒํ•œ์€ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ํฌํ•จํ•จ)
์ •๋ณด

๊ถŒํ•œ ๋ชจ๋ธ์ด ํ—ˆ์šฉ์ ์ž„์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ถŒํ•œ์„ ์ •์˜ํ•˜๋Š” ๋‘ ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์ธ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ํ—ˆ์šฉ์ ์ธ ๊ถŒํ•œ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฃน ๊ตฌ์กฐโ€‹

Open WebUI์˜ ๊ฐ ๊ทธ๋ฃน์€ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

  • ๊ณ ์œ  ์‹๋ณ„์ž
  • ์ด๋ฆ„๊ณผ ์„ค๋ช…
  • ์†Œ์œ ์ž/์ƒ์„ฑ์ž ์ฐธ์กฐ
  • ๋ฉค๋ฒ„ ์‚ฌ์šฉ์ž ID ๋ชฉ๋ก
  • ๊ถŒํ•œ ๊ตฌ์„ฑ
  • ์ถ”๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

๊ทธ๋ฃน ๊ด€๋ฆฌโ€‹

๊ทธ๋ฃน์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ด€๋ฆฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑ
  • ENABLE_OAUTH_GROUP_MANAGEMENT๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์„ ๋•Œ OAuth ๊ณต๊ธ‰์ž๋กœ๋ถ€ํ„ฐ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”
  • ENABLE_OAUTH_GROUP_MANAGEMENT ๋ฐ ENABLE_OAUTH_GROUP_CREATION์ด ๋ชจ๋‘ ํ™œ์„ฑํ™”๋˜์—ˆ์„ ๋•Œ OAuth ํด๋ ˆ์ž„์—์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ

OAuth ๊ทธ๋ฃน ํ†ตํ•ฉโ€‹

OAuth ๊ทธ๋ฃน ๊ด€๋ฆฌ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด, ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ๋ฉค๋ฒ„์‹ญ์€ OAuth ํด๋ ˆ์ž„์—์„œ ๋ฐ›์€ ๊ทธ๋ฃน๊ณผ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž๋Š” OAuth ํด๋ ˆ์ž„๊ณผ ์ผ์น˜ํ•˜๋Š” Open WebUI ๊ทธ๋ฃน์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค
  • ์‚ฌ์šฉ์ž๋Š” OAuth ํด๋ ˆ์ž„์— ์—†๋Š” ๊ทธ๋ฃน์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค
  • ENABLE_OAUTH_GROUP_CREATION์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, OAuth ํด๋ ˆ์ž„์— ์žˆ์ง€๋งŒ Open WebUI์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค

๊ทธ๋ฃน ๊ถŒํ•œโ€‹

๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์˜ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "๋ฐ์ดํ„ฐ ๊ณผํ•™์ž" ๊ทธ๋ฃน์€ ๋ชจ๋“  ๋ชจ๋ธ, ์ง€์‹ ๋ฒ ์ด์Šค ๋ฐ ๋„๊ตฌ์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฃน์˜ ๋ฆฌ์†Œ์Šค ์•ก์„ธ์Šค ์ œ์–ดโ€‹

Open WebUI๋Š” ๋ชจ๋ธ, ์ง€์‹ ๋ฒ ์ด์Šค, ํ”„๋กฌํ”„ํŠธ ๋ฐ ๋„๊ตฌ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์„ธ๋ฐ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค๋Š” ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน ์ˆ˜์ค€์—์„œ ์ œ์–ด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค์˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ํ•ด๋‹น ์•ก์„ธ์Šค๋ฅผ "๋น„๊ณต๊ฐœ"๋กœ ์„ค์ •ํ•œ ํ›„ ํŠน์ • ๊ทธ๋ฃน์— ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์„ธ์š”.

์•ก์„ธ์Šค ์ œ์–ด ๊ตฌ์กฐโ€‹

์ง€์‹ ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋Š” ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ์ง€์ •ํ•˜๋Š” ์•ก์„ธ์Šค ์ œ์–ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

{
"read": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
},
"write": {
"group_ids": ["group_id1", "group_id2"],
"user_ids": ["user_id1", "user_id2"]
}
}

์ด ๊ตฌ์กฐ๋Š” ํŠน์ • ๋ฆฌ์†Œ์Šค๋ฅผ ๋ˆ„๊ตฌ๋‚˜ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์ •ํ™•ํ•œ ์ œ์–ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.