Agent Academy ยท ๋žฉ

๐Ÿ” OAuth 2.0์œผ๋กœ ๋ณด์•ˆ MCP ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ

OAuth 2.0 ์ธ์ฆ์œผ๋กœ ๋ณดํ˜ธ๋œ MCP ์„œ๋ฒ„๋ฅผ Microsoft Copilot Studio ์—์ด์ „ํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

์›๋ฌธ ๋ฒˆ์—ญ ๊ฒŒ์‹œ๋ฌผ โ€” ์ด ๊ธ€์€ Copilot Studio Agent Academy์˜ ์›๋ฌธ ๐Ÿ” Secure an MCP Server with OAuth 2.0์„ ํ•œ๊ธ€๋กœ ์˜ฎ๊ธด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›๋ฌธ ํ‘œํ˜„์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” OAuth 2.0์œผ๋กœ ๋ณด์•ˆ MCP ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ

OAuth 2.0 MCP ๋ฐฐ์ง€
Operation Clearance ๋ฐฐ์ง€

์—์ด์ „ํŠธ ์—ฌ๋Ÿฌ๋ถ„, ์ด๋ฒˆ ๋ฏธ์…˜ Operation Clearance์˜ ๋ชฉํ‘œ๋Š” OAuth 2.0 ์ธ์ฆ์œผ๋กœ ๋ณดํ˜ธ๋œ MCP ์„œ๋ฒ„๋ฅผ Microsoft Copilot Studio ์—์ด์ „ํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ† ํฐ ์—†์ด๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€. Entra ID์— ์ž๊ฒฉ์ฆ๋ช…์„ ๋“ฑ๋กํ•˜๊ณ , Authorization Code Flow๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ , ์ธ์ฆ๋œ ์šด์˜์ž๋งŒ HR ์ฑ„์šฉ ํ›„๋ณด ํŒŒ์ผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŽฏ๐Ÿ”‘

์ฐธ๊ณ : ์ด ๋ฏธ์…˜์€ ์ƒˆ Copilot Studio ์ž‘์„ฑ ํ™˜๊ฒฝ(New Experience) ๊ธฐ์ค€์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฏธ์…˜์€ Microsoft Copilot Studio โค๏ธ MCP ๋ฏธ์…˜์˜ ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฏธ์…˜์—์„œ๋Š” ์ธ์ฆ์ด ์—†๋Š” MCP ์„œ๋ฒ„๋ฅผ ๋‹ค๋ค˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ปค์Šคํ…€ MCP ์„œ๋ฒ„๋ฅผ OAuth 2.0 ์ธ์ฆ์œผ๋กœ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ง ๋งŒ๋“ค ๊ฒƒ๋“ค

  • OAuth 2.0 JWT bearer ํ† ํฐ์„ ๊ฒ€์ฆํ•˜๋Š” ์‚ฌ์ „ ์ œ์ž‘ HR MCP ์„œ๋ฒ„ (.NET)
  • ๋‘ ๊ฐœ์˜ Microsoft Entra ID ์•ฑ ๋“ฑ๋ก โ€” ๋ฐฑ์—”๋“œ(API)์šฉ๊ณผ ํด๋ผ์ด์–ธํŠธ(Copilot Studio)์šฉ
  • OAuth 2.0 ์ธ์ฆ์„ ์‚ฌ์šฉํ•ด ๋ณด์•ˆ MCP ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” Copilot Studio ์—์ด์ „ํŠธ

โš™๏ธ ์‚ฌ์ „ ์ค€๋น„

  • Microsoft Copilot Studio ์ฒดํ—˜ํŒ ๋˜๋Š” ์œ ๋ฃŒ ๊ณ„์ •. ๊ณ„์ •์ด ์—†๋‹ค๋ฉด ์ฝ”์Šค ์„ค์ • ์•ˆ๋‚ด๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
  • Microsoft Entra ID์— ์•ฑ์„ ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌ์ž ๋™์˜๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ.
  • ๋กœ์ปฌ์— Visual Studio Code, .NET SDK, dev tunnel CLI ์„ค์น˜.

์ฐธ๊ณ : Lab 1.1๊ณผ 1.2๋Š” ๋กœ์ปฌ ๋จธ์‹ ๊ณผ Entra ๊ด€๋ฆฌ ์„ผํ„ฐ์—์„œ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Lab 1.3โ€“1.5๋Š” Copilot Studio์—์„œ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์…˜ ์ „์ฒด์—์„œ ์„œ๋ฒ„์™€ dev tunnel์„ ๊ณ„์† ์‹คํ–‰ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”.

OAuth 2.0 Authorization Code Flow๋ž€?

OAuth 2.0์„ ์—์ด์ „ํŠธ์˜ ๋ณด์•ˆ ๊ฒ€๋ฌธ์†Œ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฏธ์…˜์—์„œ์˜ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์ž ์ธ์ฆ โ€” ์—์ด์ „ํŠธ์—์„œ MCP ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด Microsoft Entra ID ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ ์ฝ”๋“œ ๋ฐœ๊ธ‰ โ€” ๋กœ๊ทธ์ธ ํ›„ Entra ID๊ฐ€ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ ํ†ตํ•ด Copilot Studio๋กœ ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ† ํฐ ๊ตํ™˜ โ€” Copilot Studio๊ฐ€ ๊ทธ ์ฝ”๋“œ(๋ฐ ํด๋ผ์ด์–ธํŠธ ์ž๊ฒฉ์ฆ๋ช…)๋ฅผ ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. API ์ ‘๊ทผ โ€” Copilot Studio๊ฐ€ ์•ก์„ธ์Šค ํ† ํฐ์„ MCP ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ , ์„œ๋ฒ„๋Š” ์ฒ˜๋ฆฌ ์ „ ํ† ํฐ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

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

๐ŸŽฏ ์‹œ๋‚˜๋ฆฌ์˜ค

Zava์˜ HR ํŒ€์€ ๋ฏผ๊ฐํ•œ ์ธ์‚ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ํ›„๋ณด ๊ด€๋ฆฌ MCP ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์ธ์ฆ ์—”๋“œํฌ์ธํŠธ๋Š” ํ”„๋กœ๋•์…˜์— ๋ถ€์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž„๋ฌด: OAuth 2.0์œผ๋กœ ๋ณดํ˜ธํ•˜๊ณ , Copilot Studio ์—์ด์ „ํŠธ์— ์—ฐ๊ฒฐํ•ด ์ธ์ฆ๋œ ์ง์›๋งŒ ํ›„๋ณด๋ฅผ ์กฐํšŒยท๊ฒ€์ƒ‰ยท์ถ”๊ฐ€ยท์ˆ˜์ •ยท์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๐Ÿงช Lab 1.1 โ€” ๋ณด์•ˆ MCP ์„œ๋ฒ„ ์„ค์ •

๋ณด์•ˆ HR MCP ์„œ๋ฒ„๋Š” OAuth 2.0์œผ๋กœ ๋ณดํ˜ธ๋œ ํ‘œ์ค€ HR ํ›„๋ณด ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • list_candidates โ€” ์ „์ฒด ํ›„๋ณด ๋ชฉ๋ก ๋ฐ˜ํ™˜
  • search_candidates โ€” ์ด๋ฆ„, ์ด๋ฉ”์ผ, ๊ธฐ์ˆ , ์—ญํ• ๋กœ ๊ฒ€์ƒ‰
  • add_candidate โ€” ์ƒˆ ํ›„๋ณด ์ถ”๊ฐ€
  • update_candidate โ€” ์ด๋ฉ”์ผ๋กœ ๊ธฐ์กด ํ›„๋ณด ์ •๋ณด ์ˆ˜์ •
  • remove_candidate โ€” ์ด๋ฉ”์ผ๋กœ ํ›„๋ณด ์‚ญ์ œ

์ฐจ์ด์ : ๋ชจ๋“  ์š”์ฒญ์— ์œ ํšจํ•œ OAuth 2.0 ์•ก์„ธ์Šค ํ† ํฐ์ด Authorization ํ—ค๋”์— ํ•„์š”ํ•˜๋ฉฐ, Entra ID ํ…Œ๋„ŒํŠธ์— ๋Œ€ํ•ด JWT๋กœ ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค.

  1. ./assets/hr-mcp-server-secured/์— ์žˆ๋Š” ์‚ฌ์ „ ์ œ์ž‘ ๋ณด์•ˆ HR MCP ์„œ๋ฒ„ ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.

  2. Visual Studio Code๋กœ ํด๋”๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์„œ๋ฒ„์—๋Š” OAuth 2.0 ๋ณด์•ˆ์ด ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ:

    • Configuration/HRMCPServerConfiguration.cs โ€” OAuth ํฌํ•จ ๊ตฌ์„ฑ ์„ค์ •
    • Data/candidates.json โ€” ํ›„๋ณด ๋ชฉ๋ก
    • Services/ โ€” ICandidateService.cs / CandidateService.cs, IAuthorizationService.cs / AuthorizationService.cs
    • Tools/HRTools.cs, Tools/Models.cs โ€” MCP ๋„๊ตฌ ๋ฐ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
    • appsettings.json.sample โ€” ๊ตฌ์„ฑ ํ…œํ”Œ๋ฆฟ
    • Program.cs โ€” ์ง„์ž…์ . MCP ์„œ๋ฒ„๊ฐ€ JWT ์ธ์ฆ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ณณ

์ฐธ๊ณ : ์„œ๋ฒ„์—๋Š” Entra ID ํ…Œ๋„ŒํŠธ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜์‹  ํ† ํฐ์„ ๊ฒ€์ฆํ•˜๋Š” JWT bearer ์ธ์ฆ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๋งŒ HR ๋„๊ตฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ MCP ์„œ๋ฒ„ ์ฝ”๋“œ
JWT ์ธ์ฆ์ด ์ ์šฉ๋œ ๋ณด์•ˆ MCP ์„œ๋ฒ„ ์ฝ”๋“œ

๐Ÿงช Lab 1.2 โ€” Microsoft Entra ID ์•ฑ ๋“ฑ๋ก ์„ค์ •

๋‘ ๊ฐœ์˜ ์•ฑ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” HR MCP ์„œ๋ฒ„(๋ฐฑ์—”๋“œ/API)์šฉ, ํ•˜๋‚˜๋Š” Copilot Studio ํด๋ผ์ด์–ธํŠธ(ํ”„๋ŸฐํŠธ์—”๋“œ)์šฉ์ž…๋‹ˆ๋‹ค.

HR MCP ์„œ๋ฒ„ ์•ฑ ๋“ฑ๋ก (๋ฐฑ์—”๋“œ)

  1. ํšŒ์‚ฌ ๊ณ„์ •์œผ๋กœ https://entra.microsoft.com์„ ์—ฝ๋‹ˆ๋‹ค.

  2. ์™ผ์ชฝ ํƒ์ƒ‰์—์„œ ์•ฑ ๋“ฑ๋ก โ†’ + ์ƒˆ ๋“ฑ๋ก์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    Entra ์•ฑ ๋“ฑ๋ก ํ™”๋ฉด
    Entra ID ์•ฑ ๋“ฑ๋ก ํ™”๋ฉด
  3. ๋‹ค์Œ ์„ค์ •์œผ๋กœ ์•ฑ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๋ฆ„: HR MCP Server
    • ์ง€์›๋˜๋Š” ๊ณ„์ • ์œ ํ˜•: ์ด ์กฐ์ง ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ณ„์ •๋งŒ
    • ๋ฆฌ๋””๋ ‰์…˜ URI: ์ง€๊ธˆ์€ ๋น„์›Œ ๋‘ (๋‚˜์ค‘์— ๊ตฌ์„ฑ)
  4. ๋“ฑ๋ก์„ ์„ ํƒํ•ด ์•ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ์•ฑ ๋“ฑ๋ก ๋ฒ„ํŠผ
    ์•ฑ ๋“ฑ๋ก ์™„๋ฃŒ ๋ฒ„ํŠผ

๋ฐฑ์—”๋“œ์—์„œ API ๋…ธ์ถœ

  1. HR MCP Server ์•ฑ์—์„œ API ๋…ธ์ถœ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID URI ์˜†์˜ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•˜๊ณ , ๊ธฐ๋ณธ๊ฐ’(api://<client-id>)์„ ๊ทธ๋Œ€๋กœ ์ˆ˜๋ฝํ•œ ๋’ค ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

    API ๋…ธ์ถœ ์ €์žฅ
    API ๋…ธ์ถœ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID URI ์ €์žฅ
  3. ์ด API์—์„œ ์ •์˜ํ•œ ๋ฒ”์œ„์—์„œ + ๋ฒ”์œ„ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฒ”์œ„ ์ด๋ฆ„: HR.Manage
    • ๋™์˜ ๊ฐ€๋Šฅ ๋Œ€์ƒ: ๊ด€๋ฆฌ์ž ๋ฐ ์‚ฌ์šฉ์ž
    • ๊ด€๋ฆฌ์ž ๋™์˜ ํ‘œ์‹œ ์ด๋ฆ„: Manage HR data
    • ๊ด€๋ฆฌ์ž ๋™์˜ ์„ค๋ช…: Allows managing HR data as an Admin
    • ์‚ฌ์šฉ์ž ๋™์˜ ํ‘œ์‹œ ์ด๋ฆ„: Manage HR data
    • ์‚ฌ์šฉ์ž ๋™์˜ ์„ค๋ช…: Allows managing HR data as a user
    • ์ƒํƒœ: ์‚ฌ์šฉ
  4. ๋ฒ”์œ„ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ๋ฒ”์œ„ ์ถ”๊ฐ€
    HR.Manage ๋ฒ”์œ„ ์ถ”๊ฐ€
  5. ๊ฐœ์š” ํŽ˜์ด์ง€์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํด๋ผ์ด์–ธํŠธ) ID์™€ ๋””๋ ‰ํ„ฐ๋ฆฌ(ํ…Œ๋„ŒํŠธ) ID๋ฅผ ๋ฉ”๋ชจํ•ฉ๋‹ˆ๋‹ค โ€” ๋‚˜์ค‘์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Copilot Studio ํด๋ผ์ด์–ธํŠธ ์•ฑ ๋“ฑ๋ก (ํ”„๋ŸฐํŠธ์—”๋“œ)

์ด์ œ Copilot Studio๊ฐ€ HR MCP Server๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์•ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  1. ์•ฑ ๋“ฑ๋ก์—์„œ + ์ƒˆ ๋“ฑ๋ก์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๋ฆ„: HR MCP Consumer
    • ์ง€์›๋˜๋Š” ๊ณ„์ • ์œ ํ˜•: ์ด ์กฐ์ง ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๊ณ„์ •๋งŒ
    • ๋ฆฌ๋””๋ ‰์…˜ URI: ๋น„์›Œ ๋‘ (Copilot Studio๊ฐ€ ๋‚˜์ค‘์— ์ œ๊ณต)

ํด๋ผ์ด์–ธํŠธ ์‹œํฌ๋ฆฟ ๋งŒ๋“ค๊ธฐ

  1. HR MCP Consumer ์•ฑ์—์„œ ์ธ์ฆ์„œ ๋ฐ ๋น„๋ฐ€ โ†’ + ์ƒˆ ํด๋ผ์ด์–ธํŠธ ์•”ํ˜ธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. ์„ค๋ช…๊ณผ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„(์˜ˆ: 12๊ฐœ์›”)์„ ์„ค์ •ํ•˜๊ณ  ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”: ๋น„๋ฐ€ ๊ฐ’์„ ์ฆ‰์‹œ ๋ณต์‚ฌํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜์„ธ์š” โ€” ์ดํ›„์—๋Š” ๋‹ค์‹œ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

API ๊ถŒํ•œ ๊ตฌ์„ฑ

  1. API ๊ถŒํ•œ โ†’ + ๊ถŒํ•œ ์ถ”๊ฐ€ โ†’ ๋‚ด ์กฐ์ง์—์„œ ์‚ฌ์šฉํ•˜๋Š” API๋ฅผ ์„ ํƒํ•˜๊ณ  HR MCP Server๋ฅผ ๊ฒ€์ƒ‰ํ•ด ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    API ๊ถŒํ•œ ์„ ํƒ
    HR MCP Server API ์„ ํƒ
  2. ์œ„์ž„๋œ ๊ถŒํ•œ์„ ์„ ํƒํ•˜๊ณ  HR.Manage๋ฅผ ์ฒดํฌํ•œ ๋’ค ๊ถŒํ•œ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ๊ถŒํ•œ ์ถ”๊ฐ€
    HR.Manage ์œ„์ž„๋œ ๊ถŒํ•œ ์ถ”๊ฐ€
  3. Microsoft Graph ์œ„์ž„๋œ ๊ถŒํ•œ๋„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค: + ๊ถŒํ•œ ์ถ”๊ฐ€ โ†’ Microsoft Graph โ†’ ์œ„์ž„๋œ ๊ถŒํ•œ โ†’ email, openid, profile, User.Read ์„ ํƒ โ†’ ๊ถŒํ•œ ์ถ”๊ฐ€.

  4. [ํ…Œ๋„ŒํŠธ]์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ๋™์˜ ๋ถ€์—ฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ์˜ˆ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ๊ด€๋ฆฌ์ž ๋™์˜ ๋ถ€์—ฌ
    ๊ด€๋ฆฌ์ž ๋™์˜ ๋ถ€์—ฌ ์™„๋ฃŒ
  5. ๊ฐœ์š” ํŽ˜์ด์ง€์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํด๋ผ์ด์–ธํŠธ) ID๋ฅผ ๋ฉ”๋ชจํ•ฉ๋‹ˆ๋‹ค(๋น„๋ฐ€ ๊ฐ’์€ ์ด๋ฏธ ์ €์žฅํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค).

MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ ๋ฐ ์‹คํ–‰

  1. appsettings.json.sample์„ ๋ณต์‚ฌํ•ด appsettings.json์œผ๋กœ ๋งŒ๋“ค๊ณ  AzureAd ์„น์…˜์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

     {
       "AzureAd": {
         "Instance": "https://login.microsoftonline.com/",
         "TenantId": "[YOUR_TENANT_ID]",
         "ClientId": "[YOUR_HR_MCP_SERVER_CLIENT_ID]",
         "Audience": "[YOUR_HR_MCP_SERVER_CLIENT_ID]",
         "Scopes": "[YOUR_APPLICATION_ID_URI]/HR.Manage"
       }
     }
    

    [YOUR_TENANT_ID], [YOUR_HR_MCP_SERVER_CLIENT_ID]๋Š” ๋ฐฑ์—”๋“œ ์•ฑ์˜ ๊ฐ’์œผ๋กœ, [YOUR_APPLICATION_ID_URI]๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID URI(์˜ˆ: api://xxxxxxxx-...)๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

  2. ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

     dotnet run
    

    ์œ ํšจํ•œ ์•ก์„ธ์Šค ํ† ํฐ ์—†์ด ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์€ ์ด์ œ 401 Unauthorized๋กœ ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

dev tunnel๋กœ ์„œ๋ฒ„ ์™ธ๋ถ€ ๋…ธ์ถœ

  1. dev tunnel์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด dev tunnels ์‹œ์ž‘ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด ์„ค์น˜ํ•œ ํ›„ ํ„ฐ๋„์„ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.

    ์ค‘์š”: hr-mcp-secured๋ฅผ ๊ณ ์œ ํ•œ ์ด๋ฆ„(์˜ˆ: hr-mcp-secured-alex)์œผ๋กœ ๊ต์ฒดํ•˜์„ธ์š”.

     devtunnel create hr-mcp-secured -a --host-header unchanged
     devtunnel port create hr-mcp-secured -p 47002
     devtunnel host hr-mcp-secured
    
  2. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ URL์„ ๋ณต์‚ฌํ•ด ์ €์žฅํ•ฉ๋‹ˆ๋‹ค โ€” Copilot Studio์™€ Entra ID์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    dev tunnel ํ˜ธ์ŠคํŒ…
    dev tunnel ์‹คํ–‰ ๋ฐ ์—ฐ๊ฒฐ URL ํ™•์ธ

ํŒ: ๋ฏธ์…˜ ์ „์ฒด์—์„œ ์„œ๋ฒ„(dotnet run)์™€ ํ„ฐ๋„(devtunnel host hr-mcp-secured)์„ ๋ชจ๋‘ ์‹คํ–‰ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID URI ๋ฐ ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ

  1. Entra ๊ด€๋ฆฌ ์„ผํ„ฐ์—์„œ HR MCP Server ์•ฑ โ†’ API ๋…ธ์ถœ โ†’ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID URI ์˜† ํŽธ์ง‘์„ ์„ ํƒํ•˜๊ณ , api://<guid>๋ฅผ dev tunnel URL(ํ›„ํ–‰ ์Šฌ๋ž˜์‹œ ์—†์ด, ์˜ˆ: https://hr-mcp-secured.devtunnels.ms)๋กœ ๊ต์ฒดํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  2. appsettings.json์˜ Scopes๊ฐ€ dev tunnel URL์„ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

     {
       "AzureAd": {
         "Instance": "https://login.microsoftonline.com/",
         "TenantId": "[YOUR_TENANT_ID]",
         "ClientId": "[YOUR_HR_MCP_SERVER_CLIENT_ID]",
         "Audience": "[YOUR_HR_MCP_SERVER_CLIENT_ID]",
         "Scopes": "[YOUR_DEVTUNNEL_URL]/HR.Manage"
       }
     }
    
  3. ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์ค‘์ง€(Ctrl+C)ํ•œ ๋’ค dotnet run์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช Lab 1.3 โ€” Copilot Studio์—์„œ ์—์ด์ „ํŠธ ๋งŒ๋“ค๊ธฐ

์ด์ œ ๋ณด์•ˆ MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  1. Microsoft Copilot Studio๋กœ ์ด๋™ํ•ด ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค. ํ™ˆ ํŽ˜์ด์ง€์—์„œ ๋˜๋Š” ๋นŒ๋“œํ•  ํ•ญ๋ชฉ ์„ ํƒ ์•„๋ž˜ ์—์ด์ „ํŠธ ์นด๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Build ํŽธ์ง‘๊ธฐ๋กœ ๋ฐ”๋กœ ์ด๋™๋ฉ๋‹ˆ๋‹ค.

    ์—์ด์ „ํŠธ ๋งŒ๋“ค๊ธฐ
    ์—์ด์ „ํŠธ ๋งŒ๋“ค๊ธฐ
  2. ์—์ด์ „ํŠธ ์ด๋ฆ„ ์ง€์ • ํ•„๋“œ์— ๋‹ค์Œ์„ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

     HR Candidate Management (Secured)
    
    ์—์ด์ „ํŠธ ์ด๋ฆ„ ์ž…๋ ฅ
    ์—์ด์ „ํŠธ ์ด๋ฆ„ ์ž…๋ ฅ ํ™”๋ฉด
  3. Build ํƒญ์˜ ์ง€์นจ ํ•„๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

     You are a helpful HR assistant that specializes in secure candidate management. You can help users search for candidates, check their availability, get detailed candidate information, and add new candidates to the system.
    
     All operations require user authentication through OAuth 2.0 to ensure data security and compliance with enterprise policies.
    
     Always provide clear and helpful information about candidates, including their skills, experience, contact details, and availability status.
    
  4. ์˜ค๋ฅธ์ชฝ ๊ตฌ์„ฑ ํŒจ๋„์—์„œ ๋ชจ๋ธ ๋“œ๋กญ๋‹ค์šด์„ ์—ด๊ณ  GPT-5 Chat์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ๋ชจ๋ธ ๋“œ๋กญ๋‹ค์šด
    GPT-5 Chat ๋ชจ๋ธ ์„ ํƒ
  5. ์ƒ๋‹จ ๋„๊ตฌ ๋ชจ์Œ์—์„œ ์ €์žฅ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ์—์ด์ „ํŠธ ๊ตฌ์„ฑ ์™„๋ฃŒ
    ์—์ด์ „ํŠธ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์™„๋ฃŒ
  6. Build ํƒญ์˜ ์ง€์‹ ์„น์…˜์—์„œ ๋ชจ๋“  ์›น ์‚ฌ์ดํŠธ ๊ฒ€์ƒ‰ ์†Œ์Šค์˜ X(์ œ๊ฑฐ)๋ฅผ ์„ ํƒํ•ด ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋„๊ตฌ์™€ ์ง€์‹๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

  7. ๋Œ€ํ™” ์‹œ์ž‘ ๋ฌธ๊ตฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋‹จ ๋„๊ตฌ ๋ชจ์Œ์—์„œ ์ถ”๊ฐ€ ์˜ต์…˜(โ€ฆ) โ†’ ์„ค์ • โ†’ ์ธ์‚ฌ๋ง ๋ฐ ํ”„๋กฌํ”„ํŠธ ํƒญ โ†’ ์ถ”์ฒœ ํ”„๋กฌํ”„ํŠธ ์•„๋ž˜ ์ถ”์ฒœ ํ”„๋กฌํ”„ํŠธ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ฐ ์ œ๋ชฉ๊ณผ ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    • ์ œ๋ชฉ: List all candidates โ€” ๋ฉ”์‹œ์ง€: Show me all candidates in the HR system
    • ์ œ๋ชฉ: Search candidates โ€” ๋ฉ”์‹œ์ง€: Search for candidates with skills in [SKILL]
    • ์ œ๋ชฉ: Add new candidate โ€” ๋ฉ”์‹œ์ง€: Add a new candidate with firstname [FIRSTNAME], lastname [LASTNAME], email [EMAIL], role [ROLE], languages [LANGUAGES], and skills [SKILLS]
    ์ถ”์ฒœ ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ
    ์ถ”์ฒœ ํ”„๋กฌํ”„ํŠธ ๊ตฌ์„ฑ ์™„๋ฃŒ
  8. ์„ค์ •์„ ๋‹ซ๊ณ  ์ €์žฅ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช Lab 1.4 โ€” OAuth 2.0์œผ๋กœ MCP ๋„๊ตฌ ๋“ฑ๋ก

์ด์ œ ๋ณด์•ˆ MCP ์„œ๋ฒ„๋ฅผ ๋„๊ตฌ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  OAuth 2.0์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  1. ์˜ค๋ฅธ์ชฝ ๊ตฌ์„ฑ ํŒจ๋„์˜ ๋„๊ตฌ ์„น์…˜์—์„œ ๋„๊ตฌ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋„๊ตฌ ์ถ”๊ฐ€ ๋Œ€ํ™” ์ƒ์ž์—์„œ ์ปค์Šคํ…€ ์ถ”๊ฐ€(+) ์ปจํŠธ๋กค์„ ์„ ํƒํ•˜๊ณ  Model Context Protocol(MCP) ์„ ์„ ํƒํ•ด ์ƒˆ ์ปค์Šคํ…€ MCP ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    MCP ๋„๊ตฌ ์ถ”๊ฐ€
    ์ปค์Šคํ…€ MCP ๋„๊ตฌ ์ถ”๊ฐ€ ํ™”๋ฉด
  2. MCP ์„œ๋ฒ„ ์ถ”๊ฐ€ ๋Œ€ํ™” ์ƒ์ž์—์„œ ๊ธฐ๋ณธ ์„ค์ •์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    • ์„œ๋ฒ„ ์ด๋ฆ„: HR MCP Server Secured
    • ์„œ๋ฒ„ ์„ค๋ช…: Securely manages HR candidates with OAuth 2.0 authentication for enterprise compliance
    • ์„œ๋ฒ„ URL: ์•ž์„œ ์ €์žฅํ•œ dev tunnel ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ URL
    MCP ์„œ๋ฒ„ ์„ธ๋ถ€ ์ •๋ณด
    MCP ์„œ๋ฒ„ ์ด๋ฆ„, ์„ค๋ช…, URL ์ž…๋ ฅ
  3. ์ธ์ฆ ์•„๋ž˜ OAuth 2.0์„ ์„ ํƒํ•˜๊ณ  ๊ตฌ์„ฑ ์œ ํ˜•์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•œ ๋’ค ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    • ํด๋ผ์ด์–ธํŠธ ID: HR MCP Consumer ์•ฑ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํด๋ผ์ด์–ธํŠธ) ID
    • ํด๋ผ์ด์–ธํŠธ ์‹œํฌ๋ฆฟ: ์•ž์„œ ์ €์žฅํ•œ ํด๋ผ์ด์–ธํŠธ ์•”ํ˜ธ ๊ฐ’
    • ์ธ์ฆ URL: https://login.microsoftonline.com/[YOUR_TENANT_ID]/oauth2/v2.0/authorize
    • ํ† ํฐ URL: https://login.microsoftonline.com/[YOUR_TENANT_ID]/oauth2/v2.0/token
    • ์ƒˆ๋กœ ๊ณ ์นจ ํ† ํฐ URL: https://login.microsoftonline.com/[YOUR_TENANT_ID]/oauth2/v2.0/token
    • ๋ฒ”์œ„: ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋ฒ”์œ„ ์ž…๋ ฅ

    ์ค‘์š”: ์ด ๋ฒ”์œ„๋Š” ์ž„์‹œ์ž…๋‹ˆ๋‹ค โ€” ์—ฐ๊ฒฐ์ด ํ™•๋ฆฝ๋˜๋ฉด ๋ณด์•ˆ ์„œ๋ฒ„์˜ ์‹ค์ œ ๋ฒ”์œ„([YOUR_DEVTUNNEL_URL]/HR.Manage)๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

    OAuth 2.0 ์ˆ˜๋™ ๊ตฌ์„ฑ
    OAuth 2.0 ์ˆ˜๋™ ๊ตฌ์„ฑ ํ™”๋ฉด
  4. ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ด MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  5. ๋„๊ตฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉด Copilot Studio๊ฐ€ ๋ฆฌ๋””๋ ‰์…˜ URL์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณต์‚ฌํ•œ ๋’ค Entra ๊ด€๋ฆฌ ์„ผํ„ฐ์—์„œ HR MCP Consumer ์•ฑ โ†’ ์ธ์ฆ โ†’ + ํ”Œ๋žซํผ ์ถ”๊ฐ€/+ ๋ฆฌ๋””๋ ‰์…˜ URI ์ถ”๊ฐ€ โ†’ ์›น์„ ์„ ํƒํ•˜๊ณ  URL์„ ๋ถ™์—ฌ๋„ฃ์–ด ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    ๋ฆฌ๋””๋ ‰์…˜ URI ๊ตฌ์„ฑ
    Entra ID์— ๋ฆฌ๋””๋ ‰์…˜ URI ๋“ฑ๋ก
  6. (์„ ํƒ ์‚ฌํ•ญ) ํ™˜๊ฒฝ์— Power Apps ์ปค์Šคํ…€ ์ปค๋„ฅํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, Power Automate์—์„œ ์˜ฌ๋ฐ”๋ฅธ ํ™˜๊ฒฝ ์„ ํƒ โ†’ ๋” ๋ณด๊ธฐ โ†’ ๋ชจ๋‘ ๊ฒ€์ƒ‰ โ†’ ์ปค์Šคํ…€ ์ปค๋„ฅํ„ฐ๋กœ ์ด๋™ํ•ด HR MCP Server Secured ์ปค๋„ฅํ„ฐ์˜ ๋ณด์•ˆ ํƒญ์—์„œ ํด๋ผ์ด์–ธํŠธ ์‹œํฌ๋ฆฟ, ๋ฆฌ์†Œ์Šค URL(dev tunnel URL), ๋ฒ”์œ„(HR.Manage)๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ปค๋„ฅํ„ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. ์—ฐ๊ฒฐ ์™„๋ฃŒ: ๋„๊ตฌ ๊ตฌ์„ฑ์—์„œ ์—ฐ๊ฒฐ ์•ˆ ๋จ โ†’ ์ƒˆ ์—ฐ๊ฒฐ ๋งŒ๋“ค๊ธฐ โ†’ ๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ์œ ํšจํ•œ ํšŒ์‚ฌ ๊ณ„์ •์œผ๋กœ ์ธ์ฆํ•œ ๋’ค ๋™์˜๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ์ถ”๊ฐ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. HR MCP Server Secured ๋„๊ตฌ ์นฉ์„ ์—ด์–ด list_candidates, search_candidates, add_candidate, update_candidate, remove_candidate ๋‹ค์„ฏ ๊ฐœ ๋„๊ตฌ๊ฐ€ ๋ชจ๋‘ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงช Lab 1.5 โ€” ์—์ด์ „ํŠธ ํ…Œ์ŠคํŠธ

์ด์ œ OAuth 2.0์ด ์ œ๋Œ€๋กœ ์ง€ํ‚ค๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  1. ์ƒ๋‹จ ๋„๊ตฌ ๋ชจ์Œ์—์„œ ๊ฒŒ์‹œ๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ฒŒ์‹œ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

  2. ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด List all candidates ์ถ”์ฒœ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์„ ํƒํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

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

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

  4. ์—์ด์ „ํŠธ๊ฐ€ ๋ณด์•ˆ MCP ์„œ๋ฒ„๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ํ›„๋ณด ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋„๊ตฌ๋„ ํ…Œ์ŠคํŠธํ•ด ๋ด…๋‹ˆ๋‹ค.

     Search for candidates with Training skills
    
     Get candidate with email bob.brown@example.com
    

    ํŒ: ์ฒซ ์ธ์ฆ ์ดํ›„ ์•ก์„ธ์Šค ํ† ํฐ์ด ์บ์‹œ๋˜๋ฏ€๋กœ ๋งŒ๋ฃŒ๋˜๊ฑฐ๋‚˜ ์ทจ์†Œ๋˜์ง€ ์•Š๋Š” ํ•œ ๋งค ์š”์ฒญ๋งˆ๋‹ค ์žฌ์ธ์ฆํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง: ์—์ด์ „ํŠธ ์‹คํ–‰ ์ค‘ .NET ํ„ฐ๋ฏธ๋„์— ๊ฐ ๋„๊ตฌ ํ˜ธ์ถœ๊ณผ ์ˆ˜์‹  Authorization: Bearer ํ—ค๋”๊ฐ€ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด JWT ์•ก์„ธ์Šค ํ† ํฐ์ด ์ „์†กยท๊ฒ€์ฆ๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๋ฏธ์…˜ ์™„๋ฃŒ!

์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค, ์—์ด์ „ํŠธ ์—ฌ๋Ÿฌ๋ถ„ โ€” Operation Clearance ์™„๋ฃŒ! Copilot Studio ์—์ด์ „ํŠธ๊ฐ€ ์ด์ œ OAuth 2.0 ๊ฒ€๋ฌธ์†Œ๋ฅผ ํ†ต๊ณผํ•œ ํ›„์—๋งŒ HR ํ›„๋ณด ํŒŒ์ผ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฏธ์…˜์—์„œ ๋‹ฌ์„ฑํ•œ ๊ฒƒ๋“ค:

โœ… ๋ณด์•ˆ MCP: OAuth 2.0 JWT ํ† ํฐ ๊ฒ€์ฆ์ด ์ ์šฉ๋œ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ
โœ… Entra ID ๋“ฑ๋ก: ์•ˆ์ „ํ•œ API ์ ‘๊ทผ์„ ์œ„ํ•œ ๋ฐฑ์—”๋“œ ๋ฐ ํด๋ผ์ด์–ธํŠธ ์•ฑ ๋“ฑ๋ก
โœ… Authorization Code Flow: Copilot Studio์—์„œ OAuth 2.0 ์—”๋“œํˆฌ์—”๋“œ ๊ตฌ์„ฑ
โœ… ์ธ์ฆ๋œ ๋„๊ตฌ ์‚ฌ์šฉ: ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์ธ์ฆ์œผ๋กœ ๋ณด์•ˆ MCP ๋„๊ตฌ ์‚ฌ์šฉ

๐Ÿ… ์™„๋ฃŒ ๋ฐฐ์ง€ ํš๋“

Operation Clearance ์™„๋ฃŒ ๋ฐฐ์ง€
Operation Clearance ์™„๋ฃŒ ๋ฐฐ์ง€

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

๐Ÿ”— Microsoft Learn MCP Server โ€” ํ˜ธ์ŠคํŒ…๋œ Microsoft Learn Docs MCP Server๋ฅผ ์—์ด์ „ํŠธ์— ์—ฐ๊ฒฐ

๐Ÿ”— Microsoft Copilot Studio โค๏ธ MCP โ€” ์ปค์Šคํ…€ MCP ์„œ๋ฒ„ ๊ตฌ์ถ• ๋ฐ ๋ฐฐํฌ

๐Ÿ“– Copilot Studio MCP ์—ฐ๊ฒฐ

๐Ÿ“– Microsoft Entra ID ์•ฑ ๋“ฑ๋ก

๐Ÿ“– OAuth 2.0 Authorization Code Flow

๐Ÿ“– Model Context Protocol ๊ฐœ์š”