macOS または Linux で Homebrew を使い、Speedle のコマンドラインツールをインストールします。Homebrew は、公式組織以外の tap にある formula を信頼するまで、その formula をインストールまたは起動しません。
brew tap teramoby/tap
brew trust teramoby/tap
brew install teramoby/tap/spctlFormula の名前は spctl です。macOS でのコマンドは speedle-spctl なので、このインストールは Apple Gatekeeper の /usr/sbin/spctl を置き換えません。Linux では同じプログラムを spctl としても使えます。
ポリシー管理サービスと認可決定サービスは別の formula です。
brew install teramoby/tap/speedle-pms
brew install teramoby/tap/speedle-adsコマンドラインツールと両方のサービスをまとめてインストールします。
brew install teramoby/tap/speedlespctl、speedle-pms、speedle-ads はそれぞれ、そのリリースの macOS または Linux バイナリをインストールし、そのリリースの checksums.txt と照合します。
Homebrew でのデモ
両方のサービスを起動します。これらは 127.0.0.1 で待ち受け、1 つのファイルポリシーストアを共有します。
brew services start speedle-pms
brew services start speedle-adsspeedle-pms は 127.0.0.1:6733 で待ち受けます。speedle-ads は 127.0.0.1:6734 で待ち受けます。どちらも --store-type file を使い、ポリシーファイルは $(brew --prefix)/var/speedle/policies.json です。ログは $(brew --prefix)/var/log/ にあります。--insecure=true はこのループバックのデモ専用です。TLS はセキュリティを参照してください。
サービスとポリシーを作成します。Linux では speedle-spctl の代わりに spctl を使えます。
speedle-spctl --pms-endpoint http://127.0.0.1:6733/policy-mgmt/v1/ create service mysvc
speedle-spctl --pms-endpoint http://127.0.0.1:6733/policy-mgmt/v1/ create policy -c "grant user user1 get,del res1" --service-name=mysvcADS に、user1 が res1 を get できるか問い合わせます。
curl --fail --silent --show-error --header 'Content-Type: application/json' --data '{"subject":{"principals":[{"type":"user","name":"user1"}]},"serviceName":"mysvc","resource":"res1","action":"get"}' http://127.0.0.1:6734/authz-check/v1/is-allowed応答には "allowed":true が含まれます。両方のサービスは共有ファイルからポリシーの変更を読み取ります。停止するには次を実行します。
brew services stop speedle-ads
brew services stop speedle-pms