Skip to content

OAuth2 Password Grant

목적

OAuth2 Resource Owner Password Grant — 사용자의 사용자 이름과 비밀번호를 사용한 인증입니다. 사용자가 자격 증명을 앱에 신뢰하는 퍼스트파티 애플리케이션에 적합합니다.

사용 시기

  • 퍼스트파티 애플리케이션 (모바일, 웹)
  • Keycloak 및 유사한 ID 제공자와의 통합
  • API가 OAuth2 Password Grant를 지원할 때

설정

yaml
specs:
  - domain: jokes
    llm_title: Dad Joke API
    base_url: https://icanhazdadjoke.com
    collections:
      - llm_title: Jokes
        location: https://raw.githubusercontent.com/mmadfox/swag2mcp/main/specs/dadjoke.yaml
    auth:
      type: oauth2-pwd
      config:
        client_id: "$(CLIENT_ID)"
        client_secret: "$(CLIENT_SECRET)"
        username: "$(USERNAME)"
        password: "$(PASSWORD)"
        token_url: "https://auth.example.com/oauth/token"
        scopes:
          - openid
          - profile
        request_format: form

매개변수

매개변수필수설명
client_id클라이언트 식별자
username사용자 이름
password비밀번호
token_url토큰 엔드포인트 URL
client_secret아니요클라이언트 시크릿 (선택 사항, 공개 클라이언트용)
scopes아니요권한 목록 (선택 사항)
request_format아니요요청 형식: form (기본값, application/x-www-form-urlencoded) 또는 json (application/json)

참고 사항

  • client_secret은 선택 사항 — 공개 클라이언트가 지원됩니다 (예: Keycloak)
  • swag2mcp는 토큰이 만료되면 자동으로 갱신합니다
  • 토큰은 만료까지 캐시됩니다
  • client_id, client_secret, username, password$(VAR) 구문을 통한 환경 변수를 지원합니다
  • token_urlscopes는 그대로 사용됩니다 (환경 변수 해결 없음)
  • request_format: json은 토큰 요청을 JSON 본문으로 전송합니다 — 토큰 엔드포인트가 Content-Type: application/json을 필요로 할 때 사용하세요