주요 컨텐츠로 이동

엔터프라이즈 OAuth로 어디서나 Genie 사용하기

Use Genie Everywhere with Enterprise OAuth

발행일: February 19, 2026

제품5 min read

Summary

  • 이제 사용자는 당사의 강력한 확장성 기능(API, SDK, MCP 및 Copilot Studio 통합)을 통해 이미 작업하는 도구에서 Genie에게 자연어로 데이터 질문을 할 수 있습니다.
  • 엔터프라이즈 OAuth를 사용하여 최종 사용자가 어디서 질문하든 상관없이 모든 Genie 대화가 올바른 데이터 권한으로 안전하게 인증되고 관리되도록 보장합니다.
  • 두 가지 일반적인 사용 사례(Genie를 Microsoft Teams에 통합하고 사용자 지정 웹 앱에 Genie 포함)에 대한 단계별 가이드를 통해 조직 전체에서 신뢰할 수 있는 대화형 분석을 확장하는 방법을 알아보세요.

소개

데이터의 민주화는 인사이트에 쉽고 안전하게 액세스할 수 있도록 하는 것에서 시작됩니다. Databricks Genie를 사용하면 이제 Teams, Slack, Confluence 또는 사용자 지정 웹 앱과 같이 이미 사용하고 있는 도구에서 데이터와 직접 대화할 수 있습니다. 네이티브 Copilot Studio/Foundry 통합을 사용하든 Genie Conversation APIs/SDK로 구축하든, 이제 Genie는 자연어 분석을 일상적인 워크플로에 적용할 수 있습니다. 내부적으로는 OAuth를 적용하여 각 사용자를 안전하게 인증하고 데이터 액세스 권한을 적용할 수 있습니다.

이전에는 The AACasas Bahia 와 같은 고객이 Microsoft Teams와 내부 앱에 자체적으로 Genie 통합을 구축했습니다. 이제 당사의 강력한 확장성 제품군을 통해 이러한 경험을 더 쉽고, 더 빠르며, 더 확장 가능하게 만들 수 있습니다.

이 블로그에서는 조직 전체에 엔터프라이즈 OAuth로 Genie를 배포하는 두 가지 일반적인 방법을 살펴보겠습니다.

  • Copilot Studio 통합을 통해 Microsoft Teams에 Genie를 도입하세요
  • Genie Conversation API로 사용자 지정 웹 앱에 Genie를 포함하세요.

Genie를 Microsoft Teams로 가져오기

그룹 대화 중에는 임시 데이터 관련 질문이 수시로 발생합니다. Databricks Genie의 기본 Copilot Studio 통합을 통해 사용자는 이제 Microsoft Teams에서 직접 질문이 발생하는 즉시 답변을 얻을 수 있습니다. 이 통합을 활용하려면 아래 단계를 따르세요.

사전 요구 사항

  • 최고 품질의 결과를 제공할 수 있도록 모범 사례 에 따라 큐레이션된 대상 Genie 스페이스가 있는지 확인하세요.
  • 최종 사용자/Service Principal은 대상 Genie space에 대한 액세스 권한(최소 CAN VIEW), 공간의 Unity Catalog 데이터에 대한 SELECT 권한, 공간의 SQL compute에 대한 CAN USE 권한이 있어야 합니다. 최종 사용자는 간소화된 '읽기 전용' 환경을 위해 선택적으로 Consumer Access 자격을 할당받을 수 있습니다.

1단계: Azure Databricks를 Power Platform에 연결

Microsoft Teams에서 Genie를 활성화하는 첫 번째 단계는 Azure Databricks를 Power Platform에 연결하는 것입니다(설명서). Microsoft Power Apps에서 '연결'을 클릭하고 'Azure Databricks' 또는 AWS/GCP를 사용하는 경우 'Databricks'를 선택합니다. 다음 필드를 구성하세요.

  • 각 최종 사용자가 자신의 ID로 Databricks에 인증하도록 하려면 인증 유형으로 OAuth를 선택하세요.
  • 서버 호스트 이름 및 HTTP 경로의 경우, 대상 Genie space가 있는 워크스페이스로 이동합니다. SQL warehouse를 선택하고 연결 세부 정보를 열어 이 정보를 검색하세요(Genie space에 연결된 것과 동일한 SQL warehouse일 필요는 없습니다).

2단계: Genie 스페이스를 Copilot Studio 에이전트에 연결

다음으로, Genie 스페이스를 Copilot Studio에 연결합니다(설명서). 저희 통합은 모든 API 및 MCP 로직을 처리하므로 몇 번의 클릭만으로 연결할 수 있습니다.

Copilot Studio에서 에이전트를 클릭합니다. Genie 스페이스용 새 독립형 에이전트를 빌드하려면 "빈 에이전트 만들기"를 선택하세요. Genie를 기존 에이전트 프레임워크에 통합하려는 경우, 기존 Copilot Studio 에이전트를 선택하여 Genie space를 추가할 수도 있습니다.

새 에이전트에서 'Tools'를 클릭한 다음 'Add a tool'을 클릭합니다. MCP 섹션에서 Azure Databricks Genie(또는 AWS/GCP용 Databricks Genie)를 선택합니다.

이제 원하는 Genie 스페이스를 선택하고 연결 세부 정보를 구성할 수 있습니다.

  • 사용할 자격 증명: 각 애플리케이션 사용자가 자신의 ID 및 데이터 액세스 권한으로 로그인할 수 있도록 '최종 사용자 자격 증명'을 선택합니다. 이렇게 하면 애플리케이션 사용자가 Genie 스페이스 또는 테이블에 액세스할 수 없는 경우 Genie에서 데이터 인사이트를 검색할 수 없습니다.
  • 최종 사용자가 단일 공유 ID(service principal(권장) 또는 사용자 본인의 ID)를 사용하여 인증하도록 하려면 '제작자가 제공한 자격 증명'을 선택하세요.
  • 중요: 대상 Genie 스페이스에 컨텍스트, 주요 개념 및 제한 사항을 간략하게 설명하는 명확한 제목과 설명이 있는지 확인하세요. 이를 통해 코파일럿 스튜디오 에이전트가 요청을 효과적으로 오케스트레이션할 수 있습니다.

3단계: 연결 매개변수 공유 사용 설정

"End user credentials"를 선택하면 각 사용자는 자신의 계정으로 Databricks에 로그인해야 합니다. 이 과정을 더 간단하게 만들려면 Microsoft 설명서에 설명된 대로 연결 parameter를 공유하여 사용자가 직접 해당 정보를 제공할 필요가 없도록 하는 것이 좋습니다. 실제로 이는 서버 Hostname과 HTTP 경로를 제공하는 것을 의미하며, 이를 통해 사용자는 Copilot Studio 에이전트의 Genie 스페이스에 연결된 정확한 Databricks 작업 공간에 인증할 수 있습니다.

  • Copilot Studio 에이전트의 설정 페이지를 여세요.
  • 연결 설정을 열고 Azure Databricks가 연결됨 상태를 표시하는지 확인합니다.
  • 다음으로 '세부 정보 보기'를 클릭하고 '연결 매개변수' 탭에서 매개변수 공유 권한을 허용하세요.

4단계: 에이전트를 Teams로 가져오기

이제 Genie 스페이스에 연결된 Copilot Studio 에이전트가 준비되었으므로 Teams에 게시할 수 있습니다.

  • 에이전트에 명확한 이름과 설명이 있는지 확인하세요.
  • 다음 사항도 권장합니다.
    • 추론 모델(예: GPT-5 Reasoning, Claude Sonnet 4.5)을 선택하여 Genie를 효과적으로 폴링하고 사용합니다.
    • 환경을 맞춤 설정하기 위한 사용자 지정 에이전트 지침 추가(예: 답변 서식 및 지연 시간 기본 설정).
  • Copilot Studio 에이전트를 검토한 후 게시를 클릭하세요. 그런 다음 Channels에서 원하는 채널로 Teams를 선택합니다.

모두 준비되었습니다! 이제 Genie가 Microsoft Teams에서 실시간으로 운영되어 질문이 발생하는 즉시 거버넌스가 적용된 데이터 인사이트를 제공합니다.

최종 사용자가 Microsoft Teams에서 Genie를 활용하는 방법을 보려면 고객 사례를 참조하세요.

5X 리더

Gartner®: Databricks 클라우드 데이터베이스 리더

사용자 지정 웹 애플리케이션에 Genie 도입하기

많은 조직에서는 사용자가 이미 사용 중인 도구에서 질문할 수 있도록 Genie를 맞춤형 웹 앱에 직접 포함하고자 합니다. 예를 들어 매장 관리자는 기존 판매 단말기에서 직접 재고에 관해 즉석 질문을 할 수 있습니다. Genie Conversation API와 Databricks OAuth를 통해 이제 이것이 가능합니다.

웹 앱과 Genie 간의 통합을 구축하기 전에 사용할 OAuth 패턴(사용자-머신(U2M), 머신-머신(M2M) 또는 On-Behalf-Of(OBO) 모델)을 결정하는 것이 중요합니다. 각 접근 방식은 서로 다른 유형의 애플리케이션 사용 사례에 해당합니다.

  • U2M(사용자-머신) - 각 최종 사용자에게 거버넌스가 적용된 개인화된 데이터 액세스가 필요할 때 가장 좋습니다. 이 모델에서 사용자는 회사 ID(예: SSO)로 로그인하면 Genie가 사용자별 OAuth 토큰을 수신하고 해당 사용자의 권한으로 쿼리가 실행됩니다. 사용 사례 예시: 영업 담당자가 단일 기본 Genie 스페이스와 채팅하며 자신의 거래에서 얻은 데이터 인사이트만 볼 수 있어야 하는 Sales Copilot.
  • M2M(머신-머신) - 모든 사용자가 동일한 데이터 액세스 권한을 갖고 더 간단한 거버넌스를 원하는 사용 사례에 가장 좋습니다. 이 모델을 사용하면 서비스 주체가 인증하고 연결된 OAuth 토큰을 Genie에 발급하며, 이 토큰은 서비스 주체의 권한으로 쿼리를 실행하는 데 사용됩니다. 사용 사례 예시: 모든 직원이 회사 전체 KPI 지표에 대해 질문하고 동일하게 공유된 인사이트를 받을 수 있는 '회사 KPI' 챗봇입니다.
  • OBO(On-Behalf-Of) - 중앙 백엔드에서 사용자별 데이터 거버넌스가 필요한 앱에 가장 적합합니다. 이 모델에서 애플리케이션은 먼저 Databricks에 인증한 다음, 최종 사용자의 데이터 권한이 적용된 상태로 해당 사용자를 "대신하여(on-behalf-of)" Genie API를 호출합니다. 사용 사례 예시: 사용자가 Genie를 활용하는 통합 챗봇과 대화하는 금융 분석 포털에서 각 사용자는 자신이 승인된 데이터만 볼 수 있습니다.

이 블로그의 나머지 부분에서는 Databricks의 기본 제공 OAuth 지원을 사용하는 Genie 통합의 첫 번째 패턴인 OAuth U2M 흐름 에 대해 중점적으로 살펴보겠습니다.

참고: Databricks는 OAuth 토큰 페더레이션도 지원합니다. 이를 사용하여 자체 ID 공급자가 발급한 토큰을 가져와 위에서 설명한 방법과 결합하여 Genie에 액세스할 수 있습니다.

사전 요구 사항

  • 최고 품질의 결과를 제공할 수 있도록 모범 사례 에 따라 큐레이션된 대상 Genie 스페이스가 있는지 확인하세요.
  • 최종 사용자/Service Principal은 대상 Genie space에 대한 액세스 권한(최소 CAN VIEW), 공간의 Unity Catalog 데이터에 대한 SELECT 권한, 공간의 SQL compute에 대한 CAN USE 권한이 있어야 합니다. 최종 사용자에게 간소화된 '읽기 전용' 환경을 위해 소비자 액세스 권한을 선택적으로 할당할 수 있습니다.

1단계: OAuth 애플리케이션 등록

사용자 지정 웹 앱을 Genie에 안전하게 연결하려면 먼저 Databricks 계정에 등록하세요. 이 단계를 통해 Databricks는 이후 단계에서 앱에 대한 사용자 범위 토큰을 안전하게 발급할 수 있습니다. 자세히 알아보려면 제품 설명서 를 확인하세요.

Databricks 계정 콘솔에서 새 OAuth 연결을 추가하고 다음을 구성하세요.

  • 애플리케이션 이름: 로그인 시 사용자에게 표시되는 사람이 읽을 수 있는 이름
  • 리디렉션 URL: 인증 후 Databricks가 사용자를 보낼 수 있도록 허용된 하나 이상의 URL입니다. 이 URL은 이후 단계에서 앱이 사용할 URL과 정확히 일치해야 합니다.
  • 액세스 범위: 앱이 사용자를 대신하여 Genie Conversation API를 호출할 수 있도록 모든 API에 대한 액세스 권한을 부여하세요.

이 연결을 저장하면 Databricks가 다음을 생성합니다.

  • 클라이언트 ID: 앱의 공개 식별자
  • 클라이언트 암호: 백엔드를 위한 개인 자격 증명

백엔드에 이 자격 증명 을 안전하게 저장하세요. 이 자격 증명은 승인 코드를 액세스 토큰으로 교환하고 Genie Conversation API에 대한 호출을 인증하는 데 필요합니다.

2단계: 사용자를 Databricks로 안내하여 인증하고 액세스 권한을 부여하도록 하세요

다음 단계는 앱이 최종 사용자를 Databricks로 안내하여, 사용자가 로그인하고 앱이 자신을 대신하여 Genie와 통신하도록 승인 할 수 있게 하는 것입니다. 로그인 및 승인이 완료되면 Databricks는 수명이 짧은 인증 코드와 함께 사용자를 앱으로 리디렉션합니다.

이 인증 코드는 사용자가 Databricks에 성공적으로 인증했고, 앱이 요청한 액세스를 승인했다는 증거입니다. 앱의 백엔드는 다음 단계에서 이 승인 코드를 사용하여 액세스 토큰을 얻습니다.

시작하려면 웹 애플리케이션을 보호하기 위해 각 로그인에 대한 PKCE 및 상태 값을 생성합니다.

  • SHA-256 및 Base64 URL 인코딩을 사용하여 OAuth PKCE 표준 에 따라 code_verifier 및 일치하는 code_challenge 를 생성합니다. 이 단계는 인증 코드가 도용되어 재사용되는 것을 방지합니다(설명서의 코드 예제 참조).
  • 임의의 state 문자열을 생성하고 쿠키 또는 세션에 저장해야 합니다. 이를 통해 인증 코드가 실제 최종 사용자 세션에 대해 생성되도록 보장할 수 있습니다.

다음으로 프런트엔드에서 Databricks OAuth 엔드포인트를 사용하여 승인 URL을 생성해야 합니다.

사용자가 애플리케이션을 식별하도록 하려면 다음 양식 매개변수를 포함하세요.

  • <databricks-instance>: 작업 공간 인스턴스 이름 이 있는 Databricks 인스턴스(예: dbc-a1b2345c-d6e7.cloud.databricks.com)
  • <client_id>: 이전 단계에서 등록된 OAuth 애플리케이션의 클라이언트 ID
  • <redirect-url>: 이전 단계에서 지정한 것과 동일한 리디렉션 URL
  • <state>: - ​​응답 유효성 검사를 위한 모든 일반 텍스트 문자열
  • <code-challenge>: code_verifier에서 파생된 PKCE 코드 챌린지

사용자가 Databricks 계정에 로그인하면 쿼리 매개변수와 함께 redirect_url로 리디렉션됩니다: https://<redirect_url>/oauth/callback?code=<authorization_code>&state=<state>

콜백 핸들러는 쿼리 문자열에서 authorization_codestate 를 읽어야 합니다. state 값이 쿠키 또는 웹 세션에 저장된 값과 일치하는지 확인합니다. 일치하지 않으면 authorization_code를 폐기합니다. 이제 애플리케이션은 반환된 authorization_code를 액세스 토큰으로 교환할 수 있습니다.

3단계: 인증 코드를 토큰으로 교환하고 안전하게 관리하기

이전 단계에서 검색된 승인 코드는 API를 직접 호출하는 데 사용할 수 없으며, Genie와 안전하게 통신하는 데 필요한 백엔드의 액세스 토큰으로 교환해야 합니다. 자세한 내용은 제품 설명서를 참조하세요).

다음은 인증 코드를 액세스 토큰 및 새로 고침 토큰으로 교환하는 Python 예제입니다(자세한 내용은 OAuth SDK 설명서를 참조하세요).

다음 매개변수를 포함하세요.

  • <databricks-instance>: 작업 영역 인스턴스 이름이 포함된 Databricks 인스턴스
  • <client_id>: 이전 단계에서 등록된 OAuth 애플리케이션의 클라이언트 ID
  • <client_secret>: 1단계에서 생성된 앱의 클라이언트 시크릿
  • <redirect-url>: 1단계에 지정된 것과 동일한 리디렉션 URL
  • <code-verifier>: 2단계에서 생성된 검증 코드

result 객체에서 다음 값을 앱의 데이터베이스에 저장하는 것이 중요합니다.

  • access_token: Genie Conversation API를 호출하는 데 사용됩니다.
  • refresh_token: 사용자가 다시 로그인하지 않고도 새 액세스 토큰을 얻는 데 사용됩니다
  • expires_in: 액세스 토큰의 만료 시간
  • expires_at: 액세스 토큰이 더 이상 유효하지 않은 시점을 나타내는 타임스탬프입니다.

액세스 토큰을 안전하게 관리하려면 앱에서 만료 시간을 추적하고 필요할 때 새로 고침 토큰을 사용하여 새 액세스 토큰을 얻는 것도 중요합니다. 아래 코드 예시는 새로 고침 로직을 추상화하여 항상 유효한 사용자 액세스 토큰을 반환합니다.

4단계: 사용자 프롬프트를 Genie Conversation API로 라우팅하기

이제 애플리케이션이 사용자 범위의 Databricks 액세스 토큰을 가지고 있으므로 로그인한 사용자를 대신하여 Genie space에 프롬프트를 제출할 수 있습니다. Databricks 액세스 토큰을 브라우저로부터 보호하고 관찰 가능성, 오류 처리, 속도 제한을 중앙에서 관리하기 위해 웹 애플리케이션용 백엔드 API 라우터를 생성하는 것을 권장합니다. 아래 코드 예제는 더 간단한 로직을 위해 FastAPI와 Genie의 SDK 를 활용합니다.

  • 먼저 사용자의 액세스 토큰을 사용하여 범위가 지정된 WorkspaceClient를 만듭니다. 그러면 이 WorkspaceClient가 Genie SDK를 호출할 수 있습니다. 코드 예시
  • 다음으로, 백엔드에서 Genie SDK 호출로 변환되는 애플리케이션 소유의 HTTP 엔드포인트를 노출합니다. 이렇게 하면 모든 Genie SDK 호출이 서버 내에서 수행되고 액세스 토큰이 브라우저로 전송되지 않습니다.
    • 예를 들어, 다음은 새 Genie 대화를 시작하기 위한 HTTP 엔드포인트를 빌드하는 방법입니다.
  • 앱에서 지원하려는 Genie 작업을 위해 추가 API 라우터를 계속해서 추가하세요. 포함해야 할 필수 함수는 다음과 같습니다.

이 단계를 마치면 사용자 지정 웹 앱이 Genie와 안전하게 통합되어 사용자가 이미 사용 중인 도구에서 직접 자연어 질문을 하고 거버넌스가 적용된 인사이트를 검색할 수 있게 됩니다.

어디서나 Genie에 액세스

Genie는 사용자가 어디서 일하든 함께할 수 있도록 설계되었습니다. 이 블로그에서는 조직이 OAuth 인증을 사용하여 Genie의 대화형 분석 기능을 Microsoft Teams 및 맞춤형 앱에 안전하게 포함하는 방법을 다루었습니다.

팀이 질문하는 모든 곳에 Genie를 도입함으로써 질문에서 인사이트로, 그리고 인사이트에서 행동으로 이어지는 경로를 단축할 수 있습니다. 지금 바로 Genie 스페이스를 구축하여 사용자에게 제공해 보세요. 언제나처럼 질문 및 피드백이 있는 경우 Databricks 계정 팀에 문의하세요.

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요

다음은 무엇인가요?

ETL and BI Migration Strategies

솔루션

January 27, 2025/1분 이내 소요

Databricks로의 마이그레이션 탐색: 아키텍처와 전략적 접근법

DeepSeek R1 on Databricks

공지사항

January 31, 2025/1분 이내 소요

DeepSeek R1 on Databricks