Orchestrateurs en tant que fournisseurs de ressources et d’identités
Qu’est-ce qu’un orchestrateur RP ?
Un orchestrateur de partie utilisatrice (RP, Relying Party) remplace à l’identique les modules du serveur web. Il comprend une configuration de module et une intégration avec le fournisseur d’authentification OIDC de l’orchestrateur. Il permet de résoudre le problème des clients qui doivent s’assurer que le trafic latéral non authentifié ne peut pas atteindre une application hébergée sur un serveur web ou qui doivent modifier leur réseau pour intégrer Maverics en tant que proxy. Cette communication utilise le protocole OIDC avec des réclamations personnalisées pour définir les politiques de la passerelle d’applications.
Comment l’utilise-t-on ?
Dans cette configuration, les politiques d’authentification et d’autorisation sont définies sur le fournisseur d’identité de l’orchestrateur dans les passerelles d’applications. Ces politiques sont appliquées par les instances RP de l’orchestrateur, qui sont souvent co-localisé avec le serveur Web qu’elles protègent.
Ce cas de figure nécessite un tissu
d’orchestrateurs connectés :
- IdP Orchestrators sont configurés en tant que
provider
- RP Orchestrators sont configurés en tant que
consumer
Prérequis
- Maîtriser l’environnement : hôte et port du serveur web, hôte et port de l’application, hôte et port de la réserve de du fournisseur d’identité de l’orchestrateur
- Savoir où le protocole TLS est utilisé, dans quel dossier se trouvent les certificats et si l’utilisateur Maverics peut ou non accéder à ce dossier
- S’assurer que la configuration IDP de maverics est valide
- S’assurer que la configuration Maverics RP proposée est valide sur la base de la configuration IDP
Options de configuration du fournisseur (IDP)
La configuration du fournisseur d’identité de l’orchestrateur est définie dans un bloc providers
sous fabric
dans maverics.yaml
(voir l’exemple).
Les options suivantes doivent être définies :
authEndpoint
l’emplacement où l’orchestrateur servira son
terminal d’autorisation.
issuer
définit l’émetteur
sur le nom de domaine complet de l’orchestrateur.
clients
une liste des clientsOIDC enregistrés.
clientID
un identifiant unique délivré à un client donné.
clientSecret
un secret unique délivré à un client donné.
redirectURLs
une liste des terminaux qu’un client peut utiliser pour
recevoir un rappel de redirection.
Exemple de configuration du fournisseur
fabric:
providers:
- authEndpoint: /auth
issuer: https://maverics.sonarsystems.com
clients:
- clientID: rp-orchestrator-1
clientSecret: <secret-from-vault>
redirectURLs:
- https://app.sonarsystems.com/oidc
- https://www.sonarsystems.com/oidc
Options de configuration du consommateur (RP)
La section Fabric consumers
contient des paramètres pour :
- une configuration proxy simple
- les paramètres d’un client de la partie utilisatrice OIDC
Paramètres du proxy consommateur
upstream
(requis) : correspond à l’URL de l’application protégée qui fait l’objet d’une transmission par proxy. Il peut s’agir d’une adresse IP ou d’un nom d’hôte, et du port sur lequel l’application est connectée. Obligatoire.basePath
: (facultatif, La valeur par défaut est « / ») correspond au chemin d’accès à l’application. Lorsqu’il est combiné avechost
, cela crée un port d’écoute.host
(facultatif) : un nom d’hôte ou un nom de domaine entièrement admissible utilisé par l’orchestrateur RP. Utilisez cette option pour différencier plusieurs configurations de fournisseurs ayant des comportements différents en fonction du nom d’hôte dans la requête HTTP (c’est-à-dire si l’orchestrateur reçoit des requêtes sur différents noms d’hôte virtuels).preserveHost
(facultatif, la valeur par défaut estfalse
) : un champ booléen utilisé pour déterminer si l’en-tête Host doit être conservé dans les requêtes sortantes. Par défaut, l’orchestrateur définit l’en-tête pour qu’il corresponde à l’hôte en amont. Ce champ est souvent utilisé lorsque l’orchestrateur transfère le trafic vers un autre proxy inverse tel qu’Apache.
Paramètres du client OIDC consommateur
authEndpoint
: le terminal d’authentification enregistré exposé par l’orchestrateur IDP.clientID
: l’identifiant client (ID client OIDC) de cette instance d’orchestrateur RP, correspondant à unclientID
dans la configuration Fabric de l’orchestrateur IdP.clientSecret
: un secret partagé entre le fournisseur d’identité et l’orchestrateur RP (secret client OIDC), correspondant à unclientSecret
dans la configuration Fabric.providerIssuer
: l’identifiant de l’émetteur du fournisseur OIDC. Ce paramètre doit correspondre àissuer
dans la configuration Fabric (si défini).redirectURL
: l’URL vers laquelle le navigateur est redirigé afin de transmettre le JWT d’authentification à l’orchestrateur RP. Ce champ est obligatoire et doit constituer une URL complète (par exemplehttps://app.sonarsystems.com/oidc
).unauthorizedPage
correspond à l’URL vers laquelle l’utilisateur est redirigé lorsque l’évaluation de la politique conduit à un refus d’accès à l’application.appgatewayMappings
: une liste de chemins d’accès auxemplacements
des applications protégées avec leurappgatewayName
correspondant.location
: un chemin d’accès URL (par exemple,/assets/img
) ou une expression rationnelle pour les chemins d’accès correspondants (par exemple,~ ^/assets).*
)appgatewayName
: lenom
de la passerelle d’applications correspondante sur l’orchestrateur IDP.
ignoredPaths
: une liste de chemins d’accès à ignorer sur les applications protégées. L’ orchestrateur transmettra la connexion au serveur Web cible sans appliquer de politique ou d’en-têtes. Prise en charge des expressions rationnelles (par exemple,~ ^/assets).*
)
Exemple de configuration du consommateur
Une configuration du consommateur
est généralement utilisée dans un serveur Web avec déploiement
d’un orchestrateur local :
fabric:
consumers:
# Proxy Config
- basePath: / # Optional. Defaults to "/"
upstream: http://127.0.0.1:8080 # Required
host: app.sonarsystems.com # Optional
preserveHost: false # Optional
# OIDC Config
authEndpoint: https://maverics.sonarsystems.com:8443/auth
clientID: rp-orchestrator-1
clientSecret: hardcoded-secret (This is not pulled from the secret provider)
providerIssuer: https://maverics.sonarsystems.com
redirectURL: https://app.sonarsystems.com/oidc
unauthorizedPage: https://app.sonarsystems.com/sonar/accessdenied
appgatewayMappings:
- location: /
appgatewayName: sonar-app1
- location: /resources
appgatewayName: sonar-resources
ignoredPaths:
- /api