SDK

Speedle SDK は、決定 API POST /authz-check/v1/is-allowed のクライアントライブラリです。セルフホストの Speedle ADS および Speedle Cloud の両方で動作します。各言語ページではパッケージの追加方法を説明し、両方の環境向けにテスト済みの完全なプログラムを提供しています。ソースコードと完全なリファレンスは teramoby/speedle-sdk にあります。これらのサンプルで PMS と ADS を実行する方法については、デプロイ と Docker イメージ を参照してください。

パッケージ

Java、Python、Go、.NET、Rust はバージョン 0.2.0 です。@speedle/sdk は npm で公開されています。各言語のインストールコマンドは各ページに記載されています。

  • Java: Maven Central io.speedle:speedle-sdk、公開済み。
  • Python: PyPI speedle、公開済み。
  • Go: Go モジュール github.com/teramoby/speedle-sdk/go、公開済み。
  • C#/.NET: NuGet Speedle.Sdk、公開済み。
  • Rust: crates.io speedle、公開済み。
  • Node.js / TypeScript: npm @speedle/sdk、公開済み。

機能

機能 ステータス
isAllowed: 認可決定を返す 6 つの SDK すべて
check: 認可決定と理由(該当するポリシーがない等)を返す 6 つの SDK すべて
セルフホストの Speedle ADS 6 つの SDK すべて
Speedle Cloud まもなく公開

メソッド名は各言語の命名規則に従っています。Python と Rust では is_allowed と check、Go では IsAllowed と Check、.NET では IsAllowedAsync と CheckAsync です。

付与されたアクセス許可の照会、診断、ポリシー管理などのその他の操作には、REST API(認可決定 API および ポリシー管理 API)を使用してください。

ポリシー例

すべてのサンプルは、サービス docs 内のリソース /docs/public に対して、ユーザー alice が get および delete を実行できるかどうかを確認します。ローカルの Speedle からドキュメント通りの回答を得るには、クイックスタート の手順に従ってビルドし、ポート 6733 で PMS を、ポート 6734 で ADS を起動してから、サービスとポリシーを作成します:

./bin/spctl --pms-endpoint http://127.0.0.1:6733/policy-mgmt/v1/ create service docs
./bin/spctl --pms-endpoint http://127.0.0.1:6733/policy-mgmt/v1/ create policy -c "grant user alice get,list /docs/public" --service-name=docs

ローカルの例は、認証情報なしで http://localhost:6734 に接続します。SDK はループバックホストに対してのみ平文の http:// を受け入れます。他の ADS には HTTPS を使用してください。

Speedle Cloud はまもなく公開されます。 Speedle Cloud のサンプルは https://cloud.speedle.io に接続し、環境変数 SPEEDLE_SERVICE と SPEEDLE_TOKEN からサービス名とそのサービススコープのトークンを読み取ります。そのサービス内で同じポリシーを作成すると、同じ回答が得られます。トークンはサーバー側のシークレットです。ブラウザ、モバイルアプリ、またはデスクトップクライアントには絶対に配布しないでください。