Product-apim: ๊ฐ€์ž…์ž์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ธ์ฆ ์ง€์›

์— ๋งŒ๋“  2019๋…„ 11์›” 11์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: wso2/product-apim

ํ˜„์žฌ ๊ธฐ๋ณธ ์ธ์ฆ๋งŒ ์ง€์›ํ•˜๋Š” ์†Œ๋น„์ž๋Š” Api Manager์—์„œ ์ œ๊ณตํ•˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งŽ์€ ์†Œ๋น„์ž๊ฐ€ ์ „์ฒด OAuth2 ๋Œ„์Šค๋ฅผ ํ†ต๊ณผํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ ์ง€์›์€ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ๋œ ์†Œ๋น„ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์ด ์ง€์›ํ•˜๋Š” ์œ ์ผํ•œ ์ธ์ฆ ์Šคํ‚ค๋งˆ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” ๋‹ค์–‘ํ•œ SAP ์ œํ’ˆ(S4, ERP, Customer Cloud, Marketing Cloud, ...)๊ณผ ๊ธฐํƒ€ ๋งŽ์€ ERP, CRM ๋ฐ ๊ธฐํƒ€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Api Manager์—์„œ ๊ธฐ๋ณธ ์ธ์ฆ ์ง€์›์ด ์—†์œผ๋ฉด ์œ ์ผํ•œ ๋Œ€์•ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Api Manager ์œ„์— ์ž์ฒด ๋ฐ˜ ์ง€์› ๊ธฐ๋ณธ ์ธ์ฆ ์ฒ˜๋ฆฌ๊ธฐ ๊ตฌํ˜„
  • Api Manager ์‚ฌ์šฉ์„ ์ค‘์ง€ํ•˜๊ณ  ๋Œ€์•ˆ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.
Affecte3.0.0 TypQuestion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

API ๊ฒŒ์‹œ์ž -> ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ -> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๋ณด์•ˆ
image

๋ชจ๋“  10 ๋Œ“๊ธ€

์ƒˆ๋กœ ์ถœ์‹œ๋œ APIM 3.0.0์€ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ์—”๋“œํฌ์ธํŠธ์˜ ๊ฒฝ์šฐ ์˜ˆ. API์˜ ๊ฒฝ์šฐ ์˜ต์…˜์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

API ๊ฒŒ์‹œ์ž -> ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ -> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๋ณด์•ˆ
image

@Tomas-Mrazek ๋งž์Šต๋‹ˆ๋‹ค. ์ด์ œ API ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ธ์ฆ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๋ณด์•ˆ์—์„œ Basic ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด API ์†Œ๋น„์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์•”ํ˜ธ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๊ณณ์„ ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋” ๋งŽ์€ ์งˆ๋ฌธ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๊ตฌ๋…์€ ๊ธฐ๋ณธ ์ธ์ฆ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋…๊ณผ ๊ด€๊ณ„์—†์ด ๋ชจ๋“  API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๊นŒ? ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉ์ž๋ฅผ "ํ• ๋‹น"ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋“ฑ๋ก๋œ API๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Prod์™€ Sandbox๊ฐ€ ๋™์ผํ•œ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์–ด๋–ค ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ํ˜ธ์ถœ๋˜๋Š”์ง€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ?

๊ธฐ๋ณธ ์ธ์ฆ์—์„œ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ ๋Œ€์‹  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ‚ค์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋‘ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ ์žˆ์„ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์„œ๋ฅผ ์ง€์  ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ตฌ๋…์€ ๊ธฐ๋ณธ ์ธ์ฆ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋…๊ณผ ๊ด€๊ณ„์—†์ด ๋ชจ๋“  API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๊นŒ? ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉ์ž๋ฅผ "ํ• ๋‹น"ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋“ฑ๋ก๋œ API๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, oauth2 ํ† ํฐ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋…ํ•œ ์‚ฌ์šฉ์ž๋งŒ API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ† ํฐ ๋˜๋Š” ๊ธฐ๋ณธ ์ธ์ฆ์„ ํ†ตํ•ด ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉ์ž๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์†ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค ์„ธ๋ถ„ํ™”๋œ ์ œ์–ด๋ฅผ ์›ํ•˜๋ฉด /carbon ์ฝ˜์†”์—์„œ ์—ญํ• ์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹นํ•˜์‹ญ์‹œ์˜ค. API ๊ฒŒ์‹œ์ž์—์„œ API ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ devportal์— ๋Œ€ํ•œ ๊ฐ€์‹œ์„ฑ์„ ํŠน์ • ์—ญํ• ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํŠน์ • ์—ญํ• ์ด ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋งŒ๋“ค๊ณ  ์ด ๋ฒ”์œ„๋ฅผ ๋ฆฌ์†Œ์Šค์— ํ• ๋‹นํ•˜๊ณ  ๋ณด์•ˆ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋…ํ•œ ์‚ฌ์šฉ์ž๋Š” API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ์—ญํ• ์„ ํ• ๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Prod์™€ Sandbox๊ฐ€ ๋™์ผํ•œ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์–ด๋–ค ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ํ˜ธ์ถœ๋˜๋Š”์ง€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ?

์ข‹์€ ์งˆ๋ฌธ. ๋‚˜๋Š” ๋‹ต์„ ๋ชจ๋ฅธ๋‹ค.

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์ด๊ฒƒ์€ ์†Œ๋น„์ž ํ‚ค์™€ ๋น„๋ฐ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋์ ์€ /token ์ƒ์„ฑ AFAIK ์ค‘์— ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @Tomas-Mrazek ๋ฐ @tmkasun , ์ด๊ฒƒ์€ ์ด์ œ ๊ธฐ๋ณธ ์ธ์ฆ์— ๋Œ€ํ•œ ์ €์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ธ์ฆ์— ๋Œ€ํ•œ ์ œ ์ƒ๊ฐ์„ ์š”์•ฝํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

OAuth2 - ์•ฑ์„ API๋กœ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์™€ ๋น„๋ฐ€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ฑ๊ณผ ํ™˜๊ฒฝ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•ฑ์ด Api๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋ ค๋ฉด ๊ตฌ๋…ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ํ‚ค์™€ ๋น„๋ฐ€์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ํ•ด๋‹น API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์  API ํ‚ค - ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ํ‚ค๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋Š” ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์–ด๋–ค ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด API๋ฅผ ๊ตฌ๋…ํ•œ๋‹ค๋Š” ๊ฐœ๋…์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ ์šฉ๋ฉ๋‹ˆ๋‹ค. App์„ Api์— ๊ตฌ๋…ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ์ธ์ฆ - "์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ๊ธฐ๋ณธ ์ธ์ฆ"์ด๋ผ๊ณ  ๋ถ€๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ฑ ๋ฐ ๊ตฌ๋…์˜ ๊ฐœ๋…์„ ์™„์ „ํžˆ ๋ฒ„๋ฆฌ๊ณ  ๊ฒŒ์‹œ์ž ๋˜๋Š” Store/DevPortal ๋Œ€์‹  Carbon admin์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ฐœ๋…(์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜ ๊ถŒํ•œ)๊ณผ ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‚˜์˜ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ๊ณผ ์ƒŒ๋“œ๋ฐ•์Šค ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์ • ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ๋”์šฑ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์ด์ œ ๊ตฌ๋…ํ•œ ์•ฑ ๋ชฉ๋ก์„ ๋ณด๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ carbon admin์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๋ฐ ๊ถŒํ•œ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Api์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ํŠน์ • ์•ฑ์„ ํ‰๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ตฌ๋… ์ˆ˜์ค€์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ธ์ฆ์„ ์ง€์›ํ•˜๋Š” "์˜ฌ๋ฐ”๋ฅธ" ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•ฑ ์ˆ˜์ค€ ๊ธฐ๋ณธ ์ธ์ฆ - ์‚ฌ์šฉ์ž๋ฅผ ๊ฐœ๋…์—์„œ ์ œ์™ธํ•˜๊ณ (์˜ˆ: ์ •์  ํ‚ค ์‚ฌ์šฉ) ๋Œ€์‹  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ธ์ฆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์—ฌ์ „ํžˆ โ€‹โ€‹API์— ๊ฐ€์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์†Œ๋น„์ž ํ‚ค์™€ ์†Œ๋น„์ž ๋น„๋ฐ€์€ ๊ธฐ๋ณธ ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์•ฑ/Api ๊ตฌ๋… ๊ฐœ๋…์„ ์œ ์ง€ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋„๊ตฌ(ํผ๋ธ”๋ฆฌ์…”/devPortal, Carbon Admin ํ•„์š” ์—†์Œ)๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ด๋–ค ์•ฑ์ด ์–ด๋–ค API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์–ด๋–ค ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฑฐ๊ธฐ์— ๋„์ฐฉํ•˜๋Š” ๋ฐฉ๋ฒ•?

๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ์œ„์—์„œ ์ œ์•ˆํ•œ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ "์•ฑ ๊ธฐ๋ณธ ์ธ์ฆ"์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ตฌํ˜„์„ ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ์กด ๊ธฐ๋ณธ ์ธ์ฆ์—์„œ ์‚ฌ์šฉ์ž/ํŒจ์Šค ๋ฐ ํ‚ค/๋น„๋ฐ€์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ์„ธ ๋ฒˆ์งธ ์˜ต์…˜๋„ ์žˆ์ง€๋งŒ ๊ฐ€์žฅ ๋”๋Ÿฌ์šด ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ธ์ฆ ๊ตฌํ˜„์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Carbon ์ฝ˜์†”์„ ํ†ตํ•ด ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž์™€ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์—ญํ•  ->์„ ๊ธฐ๋ฐ˜์œผ๋กœ devportal์—์„œ API ๊ฐ€์‹œ์„ฑ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @Tomas-Mrazek ๋ฐ @markokocic
์ œ์•ˆํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋‹ต๋ณ€์„ ์ธ๋ผ์ธ์œผ๋กœ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

๊ตฌ๋…์€ ๊ธฐ๋ณธ ์ธ์ฆ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋…๊ณผ ๊ด€๊ณ„์—†์ด ๋ชจ๋“  API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๊นŒ? ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉ์ž๋ฅผ "ํ• ๋‹น"ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋“ฑ๋ก๋œ API๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ธ์ฆ ์ง€์›์—๋Š” ๊ตฌ๋…์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. API ์ž‘์„ฑ์ž๊ฐ€ ํŠน์ • API์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ธ์ฆ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น API์— ๊ฐ€์ž…ํ•˜์ง€ ์•Š๊ณ ๋„ ํ•ด๋‹น API๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„).
@markokocic ์˜ˆ, ๊ตฌ๋… ์ž‘๋™ ๋ฐฉ์‹์€ An Application subscribed to an API ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ Baisc ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์–ป์Šต๋‹ˆ๋‹ค :

  • ๋ฆฌ์†Œ์Šค ์ˆ˜์ค€ ๋˜๋Š” API ์ˆ˜์ค€ ์กฐ์ ˆ
  • ๋ฆฌ์†Œ์Šค ๋ฒ”์œ„ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

๋‹น์‹ ์€ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค:

  • ๊ตฌ๋… ์ˆ˜์ค€ ์กฐ์ ˆ
  • Production & Sandbox ํ™˜๊ฒฝ ์ฐจ๋ณ„ํ™”

Prod์™€ Sandbox๊ฐ€ ๋™์ผํ•œ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์–ด๋–ค ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ํ˜ธ์ถœ๋˜๋Š”์ง€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ, ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ™˜๊ฒฝ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์—†์œผ๋ฉฐ ํ”„๋กœ๋•์…˜ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

@Tomas-Mrazek

๋์ ์€ /token ์ƒ์„ฑ AFAIK ์ค‘์— ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, API ์ƒ์„ฑ์ž๊ฐ€ API ์ƒ์„ฑ์ž์— ์˜ํ•ด ์—”๋“œํฌ์ธํŠธ(์ œํ’ˆ ๋ฐ ์ƒŒ๋“œ๋ฐ•์Šค)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. API ์†Œ๋น„์ž๋Š” ๋ฆฌ๋””๋ ‰์…˜ ๊ธฐ๋ฐ˜ ๋ถ€์—ฌ ์œ ํ˜•(์ฆ‰, ์•”์‹œ์ )์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ฝœ๋ฐฑ URL์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@markokocic ๊ด€๋ จ

์•ฑ ์ˆ˜์ค€ ๊ธฐ๋ณธ ์ธ์ฆ

์ด๊ฒƒ์€ ํ˜„์žฌ ๊ตฌํ˜„์—์„œ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช… ๋ถ€์—ฌ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์œ ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํ† ํฐ ์Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ฑ ์ˆ˜์ค€ ๊ธฐ๋ณธ ์ธ์ฆ

์ด๊ฒƒ์€ ํ˜„์žฌ ๊ตฌํ˜„์—์„œ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช… ๋ถ€์—ฌ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์œ ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํ† ํฐ ์Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tmkasun
์˜ˆ, ๊ธฐ๋ณธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

curl -k -X POST https://localhost:8243/token -d "grant_type=client_credentials" -H "Authorization: Basic Base64(consumer-key:consumer-secret)"

๊ทธ๋Ÿฌ๋‚˜ API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์†Œ๋น„์ž๊ฐ€ ์—ฌ์ „ํžˆ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์œ„์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ† ํฐ ์ƒ์„ฑ
  • ์‹ค์ œ API ์š”์ฒญ์— ๋Œ€ํ•ด Bearer ๋ฐ Token์„ ์‚ฌ์šฉํ•˜์—ฌ http "Authorization" ํ—ค๋”๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ตญ ํ† ํฐ ๋งŒ๋ฃŒ ๋ฐ ์ƒˆ๋กœ ๊ณ ์นจ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์†Œ๋น„์ž๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๊ฑฐ๋‚˜ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์žˆ์œผ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…๋œ ๋Œ€๋กœ ์ด ๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์—†๋Š” ๋งŽ์€ ๋ ˆ๊ฑฐ์‹œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SAP์—์„œ ์™ธ๋ถ€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ํ•ญ๋ชฉ์€ URL์ด๋ฉฐ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์œ„ํ•œ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ํ† ํฐ์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ •์˜ ํ—ค๋”๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ์•ฑ ์ˆ˜์ค€ ๊ธฐ๋ณธ ์ธ์ฆ์œผ๋กœ ์„ค๋ช…ํ•œ ๊ฒƒ์€ ์‹ค์ œ๋กœ ํ† ํฐ ์ƒ์„ฑ ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋ณธ ์ธ์ฆ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ:

curl -k -X POST https://localhost:8243/my/nice/Api/doSomething -H "Authorization: Basic Base64(consumer-key:consumer-secret)"

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑ, ์„ค์ • ๋ฐ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด ๋™์ผํ•œ App to API ๊ตฌ๋… ๋ชจ๋ธ์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์ด์ ์œผ๋กœ ๊ธฐ๋ณธ ์ธ์ฆ ํ‘œ์ค€์€ ์ธ์ฆ ํ—ค๋”๋ฅผ URL์˜ ์ผ๋ถ€๋กœ ํฌํ•จํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ ˆ๊ฑฐ์‹œ ์†Œ๋น„์ž๋ฅผ ์ง€์›ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

curl -k -X POST https://consumer-key:consumer-secret<strong i="25">@localhost</strong>:8243/my/nice/Api/doSomething

ํŽธ์ง‘: ์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋” ๋ช…ํ™•ํ•œ ์ด๋ฆ„์€ API์šฉ ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜ ๊ธฐ๋ณธ ์ธ์ฆ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰