У меня есть приложение, которое находится за обратным прокси-сервером, и когда пользователь пытается войти в систему с учетной записью Facebook, происходит сбой, поскольку URI перенаправления является внутренним URI, а не общедоступным доменом.
Чтобы обойти это, я хочу переписать перенаправленный URL.
Это поток:
- Пользователь входит в Facebook
Microsoft.AspNetCore.Authentication.Facebook
пакет nuget берет на себяпроцесс аутентификации - GET-запрос перенаправления (302) происходит с этим URL:
https://www.facebook.com/v2.6/dialog/oauth?client_id={clientid}&scope=public_profile,email&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A5000%2Fsignin-facebook&state={longstring}
И это часть, которую я хочу переписать:
redirect_uri=https%3A%2F%2Flocalhost%3A5000%2Fsignin-facebook
до
redirect_uri=https://mypublicdomain.com/signin-facebook
Возможно ли это с модулем перезаписи URL IIS?Я попытался настроить его, но не смог заставить его работать.
(на сервере я использую ASP.NETCORE 1.1.2)
<outboundRules>
<remove name="Rewrite Location Header" />
<rule name="Rewrite Location Header" preCondition="IsRedirection" enabled="true">
<match serverVariable="RESPONSE_Location" pattern="^https:\/\/(.*&redirect_uri=)([^&]*)(.*)" />
<action type="Rewrite" value="{R:1}https://google.com{R:3}" replace="false" />
</rule>
<preConditions>
<preCondition name="IsRedirection">
<add input="{RESPONSE_STATUS}" pattern="3\d\d" />
</preCondition>
</preConditions>
</outboundRules>