Module Maverics Apache (existant)

Module Maverics Apache (existant)

ℹ️
Les modules de serveur Web Maverics ont été remplacés par les orchestrateurs RP. Ce modèle doit être utilisé dans tous les nouveaux déploiements où un serveur web est protégé par un orchestrateur local.

Maverics Apache Module est un plug-in conçu pour Apache HTTP Server (Apache), IBM HTTP Server (IHS), ou Oracle HTTP Server (OHS). Le module Maverics Apache est principalement utilisé pour l’application des politiques et l’envoi d’en-têtes aux ressources protégées.

Exigences relatives au serveur

  • Apache 2.4, IHS 8.5 ou OHS 12c
  • Centos/RHEL 7 ou 8
  • Droits Sudo pour les tâches d’installation et d’administration

Installation

Pour installer le module Maverics Apache, procurez-vous une copie du paquet RPM adapté à votre version de Linux et à votre distribution de serveur Web. Par exemple :

  • Apache & OHS :

    • Centos/RHEL 7 : mod_maverics_apache2_4.v0.1.7.el7.x86_64.rpm
    • Centos/RHEL 8 : mod_maverics_apache2_4.v0.1.7.el8.x86_64.rpm
  • IHS :

    • Centos/RHEL 7 : mod_maverics_ihs.v0.1.7.el7.x86_64.rpm
    • Centos/RHEL 8 : mod_maverics_ihs.v0.1.7.el8.x86_64.rpm

Copiez le paquet RPM sur le serveur et installez-le à l’aide du RPM. Par exemple :

sudo rpm -ivh mod_maverics_ihs.v0.1.7.el8.x86_64.rpm

Mise à niveau

Pour effectuer une mettre à niveau d’une installation existante vers la dernière version, utilisez l’option -U ou --upgrade :

sudo rpm -Uvh mod_maverics_ihs.v0.1.8.el8.x86_64.rpm

Configurer

Directives de premier niveau

# MavericsOrchestratorAuthEndpoint
# The registered auth endpoint that is set in the Maverics Orchestrator
# configuration file.
MavericsOrchestratorAuthEndpoint https://maverics.enterprise.com/auth

# MavericsResponseType
# The response type (or OpenID Connect Flow) used.   
# This is an optional field and when not defined the "code" response type is used. Currently, only
# id_token is supported when using the Orchestrator as an IdP.
# MavericsResponseType [ "id_token" | "code" | "id_token token" | "code id_token" | "code token" | "code id_token token" ]`   
MavericsResponseType id_token

# MavericsClientID
# OpenID Connect client ID.
MavericsClientID oidc-id

# MavericsClientSecret
# OpenID Connect client secret.
MavericsClientSecret 0123456789

# MavericsRedirectURI  
# The redirect_uri for this OpenID Connect client; this is a vanity URL
# that must ONLY point to a path on your server protected by this module   
# but it must NOT point to any actual content that needs to be served.
# You can use a relative URL like /protected/redirect_uri if you want to   
# support multiple vhosts that belong to the same security domain in a dynamic way.
MavericsRedirectURI https://org.enterprise.com/sonar/oidc

# MavericsResponseMode  
# The response mode used (this serves as default value for discovered OPs too).
# This is an optional field and when not defined the default response mode is form_post.
# MavericsResponseMode [form_post|query|fragment]
MavericsResponseMode form_post

# MavericsProviderIssuer   
# OpenID Connect Provider issuer identifier (e.g. https://maverics.enterprise.com).  
MavericsProviderIssuer  https://maverics.enterprise.com   

# MavericsPathAuthRequestParams
# Additional query parameters that will be sent during the Authorization Request.
# These must be URL-query-encoded as in: "display=popup&prompt=consent".
# This is an optional field and when not defined the default is to add no additional parameters.   
MavericsPathAuthRequestParams tos=true&newsletter=false

# MavericsSessionCount
# The total number of sessions to keep in memory.
# This is an optional field and when not defined a default of 500 sessions will be used.
MavericsSessionCount: 500

# MavericsSessionSize
# The size of each session that is stored in memory in bytes.
# This is an optional field and when not defined default of 16913 bytes will be used.
MavericsSessionSize: 16913

# MavericsCookieDomain   
# The domain to be used when session and state cookies are created.
# This is an optional field and when not defined the currently accessed hostname is used.   
MavericsCookieDomain example.com

# MavericsCookiePath
# The path to be used when session and state cookies are created.
# This is an optional field and when not defined will default to `/`
MavericsCookiePath /app

Directives au niveau de l’emplacement

# MavericsAppGateway
# The App Gateway that will be used for the location. This is a unique identifier that should match
# the name of the corresponding App Gateway defined in the Orchestrator.
MavericsAppGateway sonar

Réglages des cookies

SameSite

Par défaut, l’attribut SameSite=None est défini pour les cookies. Dans les navigateurs modernes, SameSite=None doit être associé à l’attribut Secure , et par conséquent les cookies ne seront définis que lorsqu’un serveur utilise le protocole HTTPS. Pour les serveurs qui utilisent le protocole HTTP, définissez SetEnvIf User-Agent ".*" OIDC_SET_COOKIE_APPEND=; pour vous assurer que les cookies sont bien définis dans le navigateur.

Activer le module Maverics Apache

Pour activer le module Apache Maverics, ajoutez la directive AuthType maverics et Require valid-user au bloc d’emplacement. Vous trouverez un exemple ci-dessous.

MavericsOrchestratorAuthEndpoint https://maverics.enterprise.com/auth
MavericsResponseType id_token
MavericsClientID test-client
MavericsClientSecret 0123456789
MavericsRedirectURI https://org.enterprise.com/sonar/oidc
MavericsCryptoPassphrase none
MavericsResponseMode form_post
MavericsProviderIssuer https://maverics.enterprise.com

LoadFile /usr/lib64/libz.so.1
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
LoadModule maverics_module /usr/lib64/httpd/modules/mod_maverics.so
<VirtualHost *:443>
	SSLEnable
	KeyFile /opt/IBM/HTTPServer/conf/ihsserverkey.kdb
	<Location /sonar>
		AuthType maverics
		Require valid-user
		MavericsAppGateway sonar
	</Location>
</VirtualHost>

Désactiver le module Maverics Apache

Pour désactiver le module Apache Maverics, supprimez ou commentez la directive AuthType maverics et Require valid-user dans le(s) bloc(s) d’emplacement. Supprimez également toutes les directives liées au module Maverics Apache. Vous trouverez un exemple ci-dessous.

LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
<VirtualHost *:443>
	SSLEnable
	KeyFile /opt/IBM/HTTPServer/conf/ihsserverkey.kdb
	<Location /sonar>
	</Location>
</VirtualHost>

Méthode recommandée pour définir plusieurs passerelles d’applications

Vous trouverez ci-dessous notre méthode recommandée pour configurer votre module Apache pour plusieurs passerelles d’applications. Nous utilisons /maverics en tant qu’emplacement pour la gestion de la redirection OIDC.

MavericsOrchestratorAuthEndpoint https://maverics.enterprise.com/auth
MavericsResponseType id_token
MavericsClientID test-client
MavericsClientSecret 0123456789
MavericsRedirectURI https://org.enterprise.com/maverics/oidc
MavericsCryptoPassphrase none
MavericsResponseMode form_post
MavericsProviderIssuer https://maverics.enterprise.com

LoadFile /usr/lib64/libz.so.1
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
LoadModule maverics_module /usr/lib64/httpd/modules/mod_maverics.so
<VirtualHost *:443>
       SSLEnable
       KeyFile /opt/IBM/HTTPServer/conf/ihsserverkey.kdb
       KeepAliveTimeout 1
        <Location /sonar>
                AuthType maverics
                Require valid-user
                MavericsAppGateway Sonar
        </Location>
        <Location /crm>
                AuthType maverics
                Require valid-user
                MavericsAppGateway crm
        </Location>
        <Location /maverics>
                AuthType maverics
                Require valid-user
        </Location>
</VirtualHost>

Vous trouverez ci-dessous la configuration de tissu correspondante pour l’orchestrateur.

fabric:
  providers:
    - authEndpoint: /auth
      issuer: https://maverics.enterprise.com
      clients:
        - clientID: test-client
          clientSecret: 0123456789
          redirectURLs:
            - https://org.enterprise.com/maverics/oidc