SDK
Los SDK de Speedle son bibliotecas cliente para la API de decisiones POST /authz-check/v1/is-allowed. Funcionan tanto con un Speedle ADS autohospedado como con Speedle Cloud. Cada página de lenguaje muestra cómo agregar el paquete y proporciona un programa completo y probado para ambos entornos. El código fuente y la referencia completa se encuentran en teramoby/speedle-sdk. Para ejecutar PMS y ADS para estos ejemplos, consulte Despliegue y la Imagen de Docker.
Paquetes
Java, Python, Go, .NET y Rust están en la versión 0.2.0. @speedle/sdk está publicado en npm. Cada página de lenguaje muestra el comando de instalación correspondiente.
- Java: Maven Central
io.speedle:speedle-sdk, publicado. - Python: PyPI
speedle, publicado. - Go: Módulo de Go
github.com/teramoby/speedle-sdk/go, publicado. - C#/.NET: NuGet
Speedle.Sdk, publicado. - Rust: crates.io
speedle, publicado. - Node.js / TypeScript: npm
@speedle/sdk, publicado.
Funcionalidades
| Funcionalidad | Estado |
|---|---|
isAllowed: devuelve la decisión de autorización |
Los seis SDK |
check: devuelve la decisión y el motivo (p. ej., ninguna política aplicable) |
Los seis SDK |
| Speedle ADS autohospedado | Los seis SDK |
| Speedle Cloud | Próximamente |
Los nombres de los métodos siguen las convenciones de cada lenguaje: is_allowed y check en Python y Rust, IsAllowed y Check en Go, IsAllowedAsync y CheckAsync en .NET.
Para otras operaciones, como la consulta de permisos concedidos, diagnóstico y gestión de políticas, utilice las API REST: la API de decisiones de autorización y la API de gestión de políticas.
Política de ejemplo
Todos los ejemplos comprueban si el usuario alice puede realizar las acciones get y delete sobre el recurso /docs/public en el servicio docs. Para obtener los resultados documentados desde un Speedle local, compílelo e inicie PMS en el puerto 6733 y ADS en el puerto 6734 como se describe en el Inicio rápido, luego cree el servicio y la política:
./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=docsLos ejemplos locales se conectan a http://localhost:6734 sin credenciales. Los SDK solo aceptan http:// en texto plano para hosts de bucle invertido (loopback); utilice HTTPS para cualquier otro ADS.
Speedle Cloud estará disponible próximamente. Los ejemplos de Speedle Cloud se conectan a https://cloud.speedle.io y leen el nombre del servicio y su token exclusivo desde las variables de entorno SPEEDLE_SERVICE y SPEEDLE_TOKEN. Cree la misma política en ese servicio para obtener las mismas respuestas. El token es un secreto del lado del servidor: nunca lo exponga en navegadores, aplicaciones móviles ni clientes de escritorio.