Extensions de services (existantes)
L’intégration des systèmes d’accès nécessite des possibilités de configuration extrêmement étendues. Les extensions de services donnent aux administrateurs la possibilité de personnaliser le comportement de l’orchestrateur Maverics en fonction des besoins spécifiques de leur intégration.
Comment définir une extension de services
Définition d’une extension de services dans la configuration
Il est possible de configurer complètement une extension de services dans un fichier de configuration, en plaçant simplement la définition de la fonction en ligne.
Voici un exemple de chargement d’un attribut simple en ligne via loadAttrsSE.
appgateways:
- name: Sonar
basePath: /
upstream: https://app.sonarsystems.com:8443
tls: sonar-app
policies:
- location: /
loadAttrsSE:
funcName: LoadAttrs
code: |+
import (
"maverics/app"
"maverics/session"
"net/http"
"time"
)
func LoadAttrs(ag *app.AppGateway, rw http.ResponseWriter, req *http.Request) error {
session.Set(req, "loginTime", time.Now().String())
return nil
}
Définition des extensions de services dans des fichiers distincts
Une extension de services peut également être définie dans un fichier distinct qui est simplement référencé dans le fichier de configuration.
appgateways:
- name: Sonar
basePath: /
upstream: https://app.sonarsystems.com:8443
tls: sonar-app
policies:
- location: /
loadAttrsSE:
funcName: LoadAttrs
file: /etc/maverics/LoadAttributes.go
Avec le fichier séparé LoadAttributes.go
contenant :
package main
import (
"maverics/app"
"maverics/session"
"net/http"
"time"
)
func LoadAttrs(ag *app.AppGateway, rw http.ResponseWriter, req *http.Request) error {
session.Set(req, "loginTime", time.Now().String())
return nil
}
Points d’extension de services
Vous pouvez personnaliser l’expérience en matière d’identité dans les points d’extension de services suivants :
Paquets supplémentaires de Maverics
Maverics comprend également un certain nombre de paquets qui peuvent être utilisés dans les extensions de services pour faciliter le chargement des attributs, la connexion, le retour des résultats des décisions de politique, l’obtention des attributs de session, la fourniture d’attributs, la journalisation et le chargement des secrets.
Pour plus de détails, reportez-vous à la section Paquets de Maverics .
Exemples
Des exemples supplémentaires d’extension de services sont disponibles sur strata-io/strata-service-extension-examples.
Idiomes
Fonctions exportées
Lors de la définition d’une extension de services, le nom de la fonction doit être écrit en majuscules afin d’indiquer que la fonction est exportée et qu’elle sera le point d’entrée appelé par le moteur d’exécution de l’orchestrateur. La mise en majuscule des noms d’extension permet de différencier l’API publique de l’extension de services des utilitaires internes.
Effective Go
Le langage Go définit un large éventail d’idiomes pour l’écriture Effective Go. Les extensions de services devraient généralement se conformer à ces idiomes afin de respecter les bonnes pratiques.
Explorer
Documentation
Pour plus d’informations, rendez-vous sur Hextra.