Проверка подлинности Windows с помощью Nodejs и IIS; проблема с получением имени пользователя - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь настроить веб-приложение NodeJS с IIS, чтобы сначала использовать проверку подлинности Windows, если не найдено , то имеют возможность использовать анонимную проверку подлинности для доступа к веб-сайту.

После этой статьи https://github.com/tjanczuk/iisnode/issues/87, я повысил переменные сервера IIS до X-iisnode- * Заголовки HTTP-запроса", как вы можете видеть в файле конфигурации ниже.

Проблема заключается в следующем: когда анонимная аутентификация отключена в IIS, все пользователи домена проходят аутентификацию правильно, но анонимные пользователи вообще не могут получить доступ к веб-сайту.
Когда я включаю анонимную аутентификацию, все пользователи получают анонимный доступ, а переменная auth_user всегда возвращается пустой.

Есть ли способ сообщить IIS, сначала включить проверку подлинности Windows, если пользователь домена не использует анонимную проверку подлинности?

Я запускаю приложение NodeJS на сервере Windows 2012, iisnode, IIS 8

<configuration>
  <system.webServer>

    <handlers>
      <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
    </handlers>

    <rewrite>
      <rules>
        <rule name="app">
          <match url="^/*" />
          <action type="Rewrite" url="app.js" logRewrittenUrl="false" />
        </rule>
      </rules>
            <rewriteMaps>
                <rewriteMap name="http://website/">
                    <add key="http://website/" value="192.168.10.1/" />
                </rewriteMap>
            </rewriteMaps>
    </rewrite>

    <iisnode promoteServerVars="AUTH_USER,AUTH_TYPE" />

  </system.webServer>
</configuration>

Я также пытался использовать node-sspi для получения информации о пользователе, которая работала, когда я запускал приложение в автономном режиме.режиме, это не удалось, когда я пытался запустить его за IIS ... кто-нибудь пробовал это?

...