ASP.NET переписать URL перенаправления на IIS (для входа в социальную сеть Facebook) - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть приложение, которое находится за обратным прокси-сервером, и когда пользователь пытается войти в систему с учетной записью Facebook, происходит сбой, поскольку URI перенаправления является внутренним URI, а не общедоступным доменом.

Чтобы обойти это, я хочу переписать перенаправленный URL.

Это поток:

  1. Пользователь входит в Facebook
  2. Microsoft.AspNetCore.Authentication.Facebook пакет nuget берет на себяпроцесс аутентификации
  3. 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:\/\/(.*&amp;redirect_uri=)([^&amp;]*)(.*)" />
        <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>

1 Ответ

0 голосов
/ 13 декабря 2018

Да, это возможно.Обязательно используйте вход {QUERY_STRING} для сопоставления и убедитесь, что в качестве типа действия выбрано Rewrite.

Подобное решение, которое вы могли бы использовать в качестве отправной точки, можно найти здесь

...