Orchestrateurs en tant que fournisseurs de ressources et d’identités

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é avec host , 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 est false) : 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 à un clientID 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 à un clientSecret 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 exemple https://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 aux emplacements des applications protégées avec leur appgatewayName 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 : le nom 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