호스팅형 인가 서비스

Speedle Cloud — 호스팅형 인가 API

오픈 소스 Speedle 정책 엔진을 기반으로 구축된 개발자를 위한 호스팅형 인가 서비스입니다.

Speedle Cloud는 개발자를 위한 접근 제어 서비스입니다. 서비스를 생성하고, SPDL로 접근 규칙을 작성하며, 인가 API를 호출하여 사용자가 리소스에 대해 작업을 수행할 수 있는지 확인할 수 있습니다.

'사용자 X가 리소스 Z에서 작업 Y를 수행할 수 있는가, 어떤 조건에서 가능한가?'와 같은 세분화된 권한이 필요한 애플리케이션 개발자를 위한 서비스입니다. 자체 인가 서버를 배포하고 운영하지 않고도 이러한 규칙을 한곳에서 관리하세요. 무료 베타는 체험, 학습 및 평가용입니다.

샘플 인가 워크스페이스 둘러보기

로그인 없이 정책 관리 워크스페이스를 둘러보세요. 이 읽기 전용 데모는 내장된 샘플 데이터와 콘솔의 정책 목록, SPDL 표시 및 Playground 결과 구성 요소를 사용합니다. 브라우저에서 실행되며 API 호출을 수행하지 않고 실제 계정을 읽거나 수정할 수 없습니다.

샘플 서비스: books-demo · 읽기 전용 · 샘플 데이터 전용

정책

인가 정책 (2)

역할 정책 (1)

reader-access

grant role reader get /books

플레이그라운드

샘플 요청을 선택하여 사전 계산된 IsAllowed 결정을 확인하세요. 이는 고정된 예시이며 실시간 API 평가가 아닙니다.

샘플 인가 요청
{
  "subject": {
    "principals": [
      {
        "type": "user",
        "name": "alice"
      }
    ]
  },
  "serviceName": "books-demo",
  "resource": "/books",
  "action": "get"
}

허용되었습니다. 허용 정책이 적용되었습니다.

전체 결과(JSON)
{
  "allowed": true,
  "reason": 0
}

사유 코드: 0 = 허용, 1 = 거부, 3 = 일치하는 정책 없음.

모든 샘플 정책, 요청 및 결정(JavaScript 없이도 읽기 가능)

reader-access

grant role reader get /books

protect-books

deny user bob delete /books

alice-reader

grant user alice reader on /books

Alice가 도서 읽기 — reader 역할을 통해 허용됨

{
  "request": {
    "subject": {
      "principals": [
        {
          "type": "user",
          "name": "alice"
        }
      ]
    },
    "serviceName": "books-demo",
    "resource": "/books",
    "action": "get"
  },
  "response": {
    "allowed": true,
    "reason": 0
  }
}

Bob이 도서 삭제 — 명시적으로 거부됨

{
  "request": {
    "subject": {
      "principals": [
        {
          "type": "user",
          "name": "bob"
        }
      ]
    },
    "serviceName": "books-demo",
    "resource": "/books",
    "action": "delete"
  },
  "response": {
    "allowed": false,
    "reason": 1
  }
}

Carol이 도서 읽기 — 일치하는 허용 정책 없음

{
  "request": {
    "subject": {
      "principals": [
        {
          "type": "user",
          "name": "carol"
        }
      ]
    },
    "serviceName": "books-demo",
    "resource": "/books",
    "action": "get"
  },
  "response": {
    "allowed": false,
    "reason": 3
  }
}

베타 기간 무료

  • 계정당 최대200개 정책, 인가 정책 및 역할 정책 합산.
  • 계정당 최대하루 10,000회 API 호출(계정당, 관리 및 인가 합산). 00:00 UTC에 재설정됩니다.

GitHub 또는 Google로 로그인하세요. 신용카드가 필요하지 않습니다.

주요 기능

  • SPDL 및 Speedle 엔진을 사용하여 동일한 워크스페이스에서 각 서비스의 인가 정책과 역할 정책을 관리하세요.
  • SPDL을 검증하고 4가지 작업의 Playground로 저장된 정책을 테스트하세요.
  • 자체 보관을 위해 서비스 정책을 SPDL 또는 JSON으로 내보내세요.
  • 문서화된 IsAllowed API를 통해 서버 측 인가를 통합하세요. 현재 롤아웃 상태는 아래를 참조하세요.
  • 일일 할당량 사용량 및 재설정 시간을 확인하세요. 정책 관리와 인가 확인이 일일 할당량을 공유합니다.
  • 콘솔은 영어, 중국어 간체, 일본어, 한국어, 스페인어를 지원합니다.

이용 방법

  1. 계정 생성

    로그인이 가능해지면 GitHub 또는 Google을 선택하고 계정 생성을 명시적으로 확인하세요. Google 계정 ID와 인증된 이메일로 Speedle Cloud 계정을 식별하고 보호합니다.

  2. 서비스 생성

    워크스페이스에서 애플리케이션의 인가 정책과 역할 정책을 묶는 서비스 이름을 지정하세요. 무료 계정마다 서비스를 최대 100개까지 만들 수 있으며, 정책 한도와 일일 할당량은 계정 전체에 적용됩니다.

  3. 정책 작성

    워크스페이스에서 SPDL 인가 또는 역할 정책을 추가, 검증 및 저장하세요. 이 실제 예시는 alice에게 /books를 가져올 수 있는 권한을 부여합니다.

    grant user alice get /books
  4. Playground에서 테스트

    저장된 정책에 대해 테스트 주체, 리소스 및 작업을 전송합니다. 앱을 통합하기 전에 허용/거부, 진단 세부정보, 부여된 역할 또는 권한을 검사하세요.

  5. API 토큰 생성

    토큰에서 최근 인증 후 토큰을 생성하세요. 한 번 표시되는 비밀 값을 저장하여 애플리케이션의 서버 측 비밀 저장소에 보관하세요.

  6. IsAllowed 호출

    애플리케이션 서버가 인증된 사용자의 주체, 리소스 및 작업을 IsAllowed로 전송합니다. 반환된 결정을 앱에 적용하고 오류 시 기본적으로 닫힘(거부) 상태를 유지합니다.

인가 API 통합 프리뷰: 아래 요청은 문서화된 IsAllowed 계약입니다. 인증된 API 롤아웃이 아직 진행 중이며 프로덕션 로그인이 열리지 않았습니다. 지금은 공개 샘플 데모를 사용하고 스테이지 가용성은 engine.speedle.io의 Speedle Cloud 문서를 확인하세요. 데모는 이 요청을 전송하지 않습니다.

POST /authz-check/v1/is-allowed
Authorization: Bearer <issued token>
Content-Type: application/json

{"subject":{"principals":[{"type":"user","name":"alice"}]},"serviceName":"books","resource":"/books","action":"get","attributes":[{"name":"level","type":"numeric","value":3},{"name":"when","type":"datetime","value":"2026-11-05T03:00:00Z"}]}

위의 저장된 alice 정책이 일치할 때의 응답 예시:

{"allowed":true,"reason":0}

인가 API는 Speedle ADS(Authorization Decision Service)와 호환됩니다. 주체를 직접 제공하세요. v1에서는 사용자 지정 외부 함수 및 Token Asserter가 지원되지 않습니다.

또는 Speedle SDK(Go, Java, Python, Node.js, .NET, Rust)를 사용하여 코드에서 호출할 수도 있습니다

자주 묻는 질문

Speedle Cloud란 무엇인가요?

Speedle Cloud는 개발자를 위한 호스팅형 인가 서비스입니다. 오픈 소스 Speedle 정책 엔진을 실행하고, SPDL 정책을 저장하며, API를 통해 IsAllowed 인가 요청에 응답하므로 애플리케이션 자체 인가 서버가 필요하지 않습니다. 인증된 API 접근은 순차적으로 배포 중이며, 각 스테이지의 현재 가용성은 engine.speedle.io 설명서에 기록되어 있습니다.

Speedle Cloud는 오픈 소스 Speedle Engine과 어떻게 다른가요?

Speedle Engine(engine.speedle.io)은 사용자가 직접 배포하고 운영하는 자체 호스팅 엔진입니다. Speedle Cloud는 관리형 서비스로, 동일한 정책 모델과 SPDL을 사용하며 콘솔, 정책 스토리지 및 인가 API가 호스팅되고 무료 베타 기간 동안 고정 계정 한도가 적용됩니다.

Speedle Cloud의 비용은 얼마인가요?

베타 기간 동안 무료입니다. 각 계정은 인가 정책과 역할 정책을 합산하여 최대 200개까지 유지할 수 있으며, UTC 일일 최대 10,000회의 관리 및 인가 호출을 수행할 수 있습니다. 신용카드가 필요하지 않으며 베타에는 SLA가 없습니다.

Speedle Cloud는 어떻게 시작하나요?

engine.speedle.io에서 Speedle Cloud 설명서를 읽고 샘플 데이터를 사용하여 라이브 데모를 체험해 보세요. 해당 스테이지에서 로그인 및 토큰 인증 API 호출이 가능해지면 GitHub 또는 Google로 로그인하고 서비스와 API 토큰을 생성한 다음 서버에서 IsAllowed를 호출하세요.