J'ai besoin d'aide pour résoudre mon problème.

Ce que je veux atteindre, c'est

http ://abc.contoso.com -> https ://abc.contoso.com (Forcer la redirection HTTP vers HTTPS)

Mon problème est que l'URI nécessaire pour le point de terminaison d'autorisation Azure OAuth 2.0 ne correspond pas.

L'URI accepté comme destination lors du renvoi des réponses d'authentification (jetons) après l'authentification réussie des utilisateurs doit être : https://abc.contoso.com/signin-oidc

Mais HAProxy envoie le formulaire HTTP comme ci-dessous :

https://login.microsoftonline.com/bdeebc-dd/oauth2/authorize?client_id=fd& redirect_uri=http%3A%2F%2Fabc.contoso.com%2Fsignin-oidc &response_type=id_token&scope=openid profile&response_mode=form_post

Que dois-je faire pour avoir le formulaire HTTPS (redirect_uri=https%3A%2F%2Fabc.contoso.com%2Fsignin-oidc) au lieu de HTTP pour OAuth ?

Ma configuration est

L'extrémité avant

frontend public_front_end
bind *:80
mode http
option forwardfor
redirect scheme https code 301 if !{ ssl_fc }

frontend public_secured_front_end
bind *:443 ssl crt /etc/haproxy/certs

Back-end

use_backend abc-api if { hdr(host) -i abc.contoso.com }

backend abc-api

mode http

http-request add-header X-Forwarded-Proto https

server webserver01 192.168.0.1:4569 check

option forwardfor

Merci

answer

Vous devez mettre à jour l'application Azure AD que vous avez configurée pour effectuer cette authentification afin d'ajouter une URL de réponse pour le point de terminaison https.