본문으로 건너뛰기

서드파티 AI 에이전트가 앱에 접근할 수 있도록 허용하세요

:

Logto의 AI 솔루션 을 살펴보세요: MCP 서버, AI 에이전트, 앱을 위한 인증 (Authentication) 및 인가 (Authorization).

이 가이드는 Logto를 서비스와 통합하고 AI 에이전트가 해당 서비스에 접근할 수 있도록 설정하는 과정을 안내합니다.

다음 내용을 학습할 수 있습니다:

  • 서비스의 인가 (Authorization) 서버로 Logto를 구성하는 방법
  • AI 에이전트가 서비스에 접근할 수 있도록 액세스 토큰 (Access token)을 얻는 방법
  • AI 에이전트로 플로우를 테스트하는 방법

서드파티 AI 에이전트와 자체 AI 에이전트(또는 앱)의 차이점

예시를 통해 살펴보겠습니다. 당신이 날씨 데이터를 제공하는 서비스를 운영하는 개발자라고 가정해봅시다.

공식 날씨 앱 (자체 AI 에이전트 / 앱)

  • 사용자가 날씨를 확인할 수 있도록 공식 날씨 앱을 제공합니다.
  • 동작 방식: 공식 날씨 앱은 Logto를 사용하여 사용자를 인증 (Authentication)합니다. Alice가 로그인하면, 신뢰할 수 있는 앱이기 때문에 별도의 동의 화면 없이 자동으로 날씨 데이터에 접근할 수 있습니다.

서드파티 AI 에이전트

  • 서비스 생태계를 확장하기 위해, 다른 개발자가 "WeatherBot"(날씨 업데이트와 예보를 제공하는 AI 어시스턴트)을 만들어 서드파티 AI 에이전트로 통합합니다.
  • 동작 방식: WeatherBot(서드파티 AI 에이전트)은 사용자의 날씨 데이터에 접근하고자 합니다. Alice가 자신의 계정으로 WeatherBot에 로그인하면:
    • WeatherBot이 날씨 데이터에 접근할 수 있도록 허용할지 묻는 동의 화면이 표시됩니다.
    • Alice는 이 접근을 허용하거나 거부할 수 있습니다.
    • Alice가 동의한 데이터만 WeatherBot과 공유되며, 추가적인 데이터는 명시적인 재동의 없이는 WeatherBot이 접근할 수 없습니다.

이러한 접근(권한) 제어는 사용자 데이터의 안전을 보장합니다. 서비스가 모든 데이터를 관리하더라도, WeatherBot과 같은 서드파티 AI 에이전트는 사용자가 명시적으로 허용한 데이터에만 접근할 수 있습니다. 이 과정은 서비스 내의 접근 제어 구현에 의해 강제되므로, 우회할 수 없습니다.

요약

클라이언트 유형예시동의 필요 여부제어 주체
공식 날씨 앱자체 날씨 앱아니오당신(개발자)
서드파티 AI 에이전트WeatherBot 어시스턴트다른 개발자
노트:

자체 AI 에이전트 또는 앱과 서비스를 통합하고 싶다면, 빠른 시작 가이드를 참고하세요.

사전 준비 사항

  • Logto Cloud (또는 자체 호스팅) 테넌트
  • AI 에이전트가 접근할 수 있도록 API 엔드포인트를 제공하는 서비스

플로우 이해하기

  • 서비스: AI 에이전트에 노출하고자 하는 서비스
  • AI 에이전트: 서비스에 접근할 AI 에이전트
  • Logto: OpenID Connect 제공자(인가 (Authorization) 서버) 역할을 하며 사용자 아이덴티티를 관리

비공식 시퀀스 다이어그램을 통해 전체 과정을 시각적으로 설명합니다:

서드파티 AI 에이전트 설정하기

서드파티 AI 에이전트가 서비스에 접근할 수 있도록 하려면 다음 단계를 따라야 합니다:

  1. Logto에 AI 에이전트 등록: Logto에 AI 에이전트를 대표하는 애플리케이션을 생성합니다.
  2. AI 에이전트 구성: AI 에이전트가 서비스에 요청을 보내고 401 Unauthorized 응답을 처리할 수 있도록 합니다.
  3. 인가 (Authorization) 플로우 구현: AI 에이전트가 Logto에서 액세스 토큰을 얻기 위해 OAuth 2.0 인가 플로우를 처리할 수 있어야 합니다.
  4. 통합 테스트: AI 에이전트를 사용하여 서비스에 접근하고 인증 및 인가 요청이 성공적으로 처리되는지 확인합니다.

Logto에서 서드파티 AI 에이전트 구성하기

서드파티 AI 에이전트가 귀하의 서비스에 접근할 수 있도록 하려면, Logto에서 서드파티 앱을 설정해야 합니다. 이 앱은 AI 에이전트를 대표하며, 인증 (Authentication) 및 인가 (Authorization)에 필요한 자격 증명을 획득하는 데 사용됩니다.

서드파티 앱이란?:

서드파티 앱은 외부 개발자(리소스 소유자가 아님)가 만든 애플리케이션으로, 보호된 리소스에 접근하기 위해 사용자 동의가 필요합니다. 퍼스트파티 앱(자체 애플리케이션)과 달리, 서드파티 앱은 사용자의 데이터에 접근하기 전에 특정 권한을 승인하도록 요청하는 동의 화면을 표시합니다. 이를 통해 사용자는 외부 서비스와 어떤 데이터를 공유할지 직접 제어할 수 있습니다.

자세한 내용은 서드파티 애플리케이션을 참고하세요.

AI 에이전트를 온보딩하는 방법은 세 가지가 있습니다:

개발자가 Logto에서 서드파티 앱을 생성할 수 있도록 허용하기

마켓플레이스를 구축하거나 개발자가 Logto에서 서드파티 앱을 생성할 수 있도록 하려면, Logto Management API를 활용하여 프로그래밍 방식으로 서드파티 앱을 생성할 수 있습니다. 이를 통해 개발자는 자신의 애플리케이션을 등록하고 인증 (Authentication)에 필요한 자격 증명을 획득할 수 있습니다.

클라이언트 등록 프로세스를 처리할 자체 서비스를 호스팅해야 합니다. 이 서비스는 Logto Management API와 상호작용하여 개발자를 대신해 서드파티 앱을 생성합니다.

또는, Logto 콘솔에서 직접 서드파티 앱을 수동으로 생성하여 프로세스를 익힐 수도 있습니다.

사전 등록 없이 어떤 AI 에이전트든 연결 허용하기

오픈 MCP 생태계에서는 사전에 에이전트를 알 수 없는 경우가 많습니다. 동적 앱은 등록 단계를 제거합니다: 에이전트는 자신의 클라이언트 메타데이터 문서를 제공하는 공개 HTTPS URL을 client_id로 사용하고, Logto는 인가 (Authorization) 요청이 도착하면 이를 해석합니다.

여전히 동적 앱에 부여된 권한을 통해 에이전트가 요청할 수 있는 범위를 제어할 수 있으며, 모든 인가 (Authorization)는 사용자 동의 화면을 거칩니다.

Logto에서 서드파티 앱을 수동으로 생성하기

테스트 목적이나 임시 통합을 위해 Logto 콘솔에서 서드파티 앱을 수동으로 생성할 수 있습니다. 전체 클라이언트 등록 플로우를 구현하지 않고 빠르게 통합을 테스트하고 싶을 때 유용합니다.

  1. Logto 콘솔에 로그인하세요.

  2. 애플리케이션애플리케이션 생성서드파티 앱 -> OIDC를 선택하세요.

  3. 앱 이름 및 기타 필수 항목을 입력한 후 애플리케이션 생성을 클릭하세요.

  4. 권한 탭을 클릭하여 앱에 권한을 부여하세요:

    • 사용자 섹션: profile, email 등 기본 아이덴티티 클레임을 위한 사용자 데이터 권한.
    • API 리소스 섹션: Logto에서 정의한 API 리소스의 권한(스코프), 예: 귀하의 서비스를 대표하는 API 리소스.
    • 조직 섹션: Logto 조직을 사용하는 경우 조직 권한.
  5. 서드파티 앱에서 요청할 권한(스코프)을 설정하세요. 예: openid profile email 및 API 리소스 스코프.

    참고: OIDC를 위해서는 openid가 필수입니다. API 리소스에 바인딩된 액세스 토큰 (Access token)을 받으려면, 인가 (Authorization) 요청에 resource 파라미터도 포함해야 합니다. 최신 MCP 사양을 따르는 MCP 클라이언트는 보호된 리소스 메타데이터에 따라 이를 자동으로 처리합니다.

  6. 서드파티 애플리케이션의 리디렉션 URI를 적절히 설정하세요. Logto에서도 리디렉션 URI를 반드시 업데이트해야 합니다.

서드파티 앱 권한

내부적으로, 서드파티 앱은 표준 OAuth 2.0 / OIDC 클라이언트입니다. 이는 여러분(또는 서드파티 개발자)이 어떤 OAuth 2.0 / OIDC 라이브러리나 프레임워크도 사용하여 Logto와 통합할 수 있음을 의미합니다.

유의해야 할 몇 가지 사항:

  1. 서드파티 앱을 생성할 때, 앱의 아키텍처에 따라 적절한 애플리케이션 유형을 선택하세요:
    • 전통적인 웹: 인증을 위해 클라이언트 시크릿을 사용합니다.
    • 싱글 페이지 앱 / 네이티브: 클라이언트 시크릿 없이 PKCE를 사용하여 안전하게 인가합니다.
  2. 대부분의 빠른 시작 가이드는 퍼스트파티 앱을 대상으로 작성되어 있지만, 서드파티 앱 통합 시에도 참고 자료로 사용할 수 있습니다.
  3. 주요 차이점은 서드파티 앱에서는 동의 화면 (Consent screen)이 표시되어, 사용자의 데이터 접근에 대해 명시적인 허가를 요청한다는 점입니다.

전체 통합 가이드는 서드파티 애플리케이션에서 확인하세요.

서비스에서 인가 (Authorization) 설정하기

서비스에서 접근 제어를 활성화하려면 다음을 구현해야 합니다:

  1. Logto에서 API 리소스 정의: AI 에이전트가 접근할 엔드포인트를 대표하는 API 리소스를 Logto에 생성합니다.
  2. 접근 제어 로직 구현: 서비스 내에서 AI 에이전트로부터 받은 액세스 토큰을 검증하고, 사용자가 요청한 리소스에 접근할 권한이 있는지 확인하는 로직을 구현합니다.
  3. AI 에이전트에 응답: 액세스 토큰이 유효하고 사용자가 권한이 있다면 요청한 리소스를 반환합니다. 그렇지 않으면 401 Unauthorized 응답을 반환합니다.

서비스에서 접근 제어를 구현하는 방법에 대해 더 알고 싶다면, 인가 (Authorization) 가이드를 참고하세요.

통합 테스트하기

  1. 서비스를 시작합니다.
  2. AI 에이전트를 시작합니다.
  3. AI 에이전트에서 서비스에 접근하는 API 엔드포인트를 호출합니다.
  4. AI 에이전트는 401 Unauthorized 응답을 처리하고 사용자를 Logto로 인증하러 리디렉션해야 합니다.
  5. 인증이 성공하면, AI 에이전트는 액세스 토큰을 받아 이를 사용해 서비스에 요청을 보냅니다.
  6. AI 에이전트는 액세스 토큰을 사용하여 서비스에서 리소스를 정상적으로 받아야 합니다.