RP & IDP Orchestrators (Legacy)
What is an RP Orchestrator?
A Relying Party (RP) Orchestrator is a like-for-like replacement of web server modules. It includes module-style configuration and an integration with the Orchestrator’s OIDC auth provider. It solves the problem of customers needing to make sure that unauthenticated side-channel traffic cannot reach a web server hosted application or having to change networking to accommodate Maverics as a proxy. This communication uses the OIDC protocol with custom claims for defining App Gateway policies.
How is it used?
In this configuration, authentication and authorization policies are defined on the IdP Orchestrator in App Gateways. These policies are enforced by the RP Orchestrator instances, which are often co-located with the web server they protect.
This scenario requires a fabric
of connected orchestrators:
Prerequisites
- Know the environment: Host and port of webserver, host and port of app, host and port of IdP orchestrator pool
- Know where TLS is being used, which folder the certificates are located, and whether or not the Maverics user can access the folder
- Ensure maverics IDP configuration is valid
- Ensure proposed Maverics RP config is valid based on the IDP config
Provider (IdP) Configuration options
IdP Orchestrator configuration is defined in a providers
block under fabric
in maverics.yaml
(see example).
The following options must be set:
authEndpoint
The location where the Orchestrator will serve its
authorization endpoint.
issuer
Set the issuer
to the FQDN of the Orchestrator.
clients
A list of registered OIDC clients.
clientID
A unique identifier issued to a given client.
clientSecret
A unique secret issued to a given client.
redirectURLs
A list of endpoints that a client can use to
receive a redirect callback.
Provider Configuration Example
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
Consumer (RP) Configuration options
The Fabric consumers
section contains settings for:
- a simple proxy configuration
- settings for a Relying Party (RP) OIDC client
Consumer Proxy Settings
upstream
: (Required) The url of app that is being protected and proxied to. This could be an IP address or hostname and the port the application listens on. Required.basePath
: (Optional. Default is “/”) A path on the application. When combined withhost
this creates the listen address.host
: (Optional) A hostname or fully qualified domain name the RP Orchestrator is listening for. Use this to differentiate between multiple provider configurations that behave differently depending on the hostname in the HTTP request (i.e. if the Orchestrator receives requests on different virtual hostnames).preserveHost
: (Optional. Default isfalse
) A boolean field used to determine if the Host header should be preserved on outbound requests. By default, the Orchestrator will set the host header to match the upstream’s host. This field is often used when the Orchestrator is forwarding traffic to another reverse proxy such as Apache.
Consumer OIDC Client Settings
authEndpoint
: the registered auth endpoint exposed by the IdP Orchestrator.clientID
: the client identifier (OIDC client ID) for this RP orchestrator instance, matching aclientID
in the IdP Orchestrator’s Fabric configuration.clientSecret
: a secret shared between the IdP Orchestrator and RP Orchestrator (OIDC client secret), matching aclientSecret
in the Fabric configuration.providerIssuer
: the OIDC Provider issuer identifier. This should match theissuer
in the Fabric configuration (if set).redirectURL
: the URL that the browser is redirected to in order to pass the authentication JWT back to the RP Orchestrator. This field is required and must be a full URL (e.g.https://app.sonarsystems.com/oidc
).unauthorizedPage
is the URL a user is redirected to when a policy evaluation denies access to the app.appgatewayMappings
: a list oflocation
paths on the protected applications with their correspondingappgatewayName
.location
: a URL path (e.g./assets/img
) or a regular expression for matching paths (e.g.~ ^/assets.*
)appgatewayName
: thename
of the corresponding App Gateway on the IdP Orchestrator.
ignoredPaths
: a list of paths to ignore on the protected applications. The orchestrator will pass the connection through to the target web server without applying any policy or headers. Supports regular expressions (e.g.~ ^/assets.*
)
Consumer Configuration Example
A consumer
configuration is typically used in a Web Server with Local
Orchestrator deployment:
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