Направление, необходимое для прохождения SSRS через auth для интранет-сайта - PullRequest
0 голосов
/ 06 июня 2019

У меня есть сайт интрасети, который находится в том же домене, что и моя служба SSRS (и тот же сервер виртуальных машин). Он заблокирован от внешнего доступа (т. Е. Интернета). Я использую MVC для питания сайта интрасети с помощью аутентификации форм.Это создает файл cookie .ASPXAUTH во время аутентификации с помощью нашего LDAP.

Проблема заключается в том, что когда пользователь входит в систему, появляется iframe для запуска отчета сервера отчетов, однако он также запрашивает проверку подлинности.Я хотел бы удалить этот второй логин.

Сайт интрасети имеет следующий формат: https://SUBDOMAIN.DOMAIN.com/HOME SRSS равен https://SUBDOMAIN.DOMAIN.com/Reports Субдомен и домен совпадают, и они совместно используюттот же подстановочный знак SSL

То, что я пробовал: я отредактировал web.config и reportserver.config для ssrs в папке Microsoft Sql Serv .. \ SSRS \ Reportserver со следующим:

в Web.config

<authentication mode="Forms">
<forms loginUrl="/Account/Login/"
    name=".ASPXFORMSAUTH"

    />
</Authentication>

в ReportServer.config

<Authentication>
  <AuthenticationTypes>
         <Custom />
  </AuthenticationTypes>
  <EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
... 
<UI>
 <CustomAuthenticationUI>
  <PassThroughCookies>
     <PassThroughCookie>.ASPXAUTH</PassThroughCookie>
  </PassThroughCookies>
 </CustomAuthenticationUI>
</UI>

Когда я делаю это и перезапускаю службу ssrs, она выключает все, пока я не вернусь к своим резервным копиям.Есть ли что-то, что мне не хватает?

Здесь что-то сказано о машинных ключах, но некоторые из них я не понимаю: https://social.msdn.microsoft.com/Forums/en-US/c3e11282-495b-4e2a-b422-524dba378444/custom-authentication-provider-for-ssrs-2016-?forum=SQLServer2016Preview

Я предполагаю, что добавляю машинный ключ в web.config для SSRS, но это делаетзначит, мне нужно добавить машинный ключ в мой web.config моего проекта MVC?Нужно ли добавлять машинный ключ к процессу авторизации в другом месте?

Вот генератор файлов cookie этого проекта.Я что-то здесь упускаю?

  authTicket =
     new FormsAuthenticationTicket(1,  // version
         acc.windows_id,
         DateTime.Now,
         DateTime.Now.AddMinutes(500),
         false, "True");


        // Now encrypt the ticket. DO I NEED TO ADD MACHINE KEY HERE SOMEHOW?
        encryptedTicket = FormsAuthentication.Encrypt(authTicket);


       //Create a cookie and add the encrypted ticket to the cookie as data.
       HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);


       // Add the cookie to the outgoing cookies collection. 
         Response.Cookies.Add(authCookie);
         FormsAuthentication.RedirectFromLoginPage(logon_user, true);

Я ищу какое-то общее направление.Статьи MSDN читаются как стерео инструкции и, похоже, не признают того, что я пытаюсь сделать конкретно.Надеюсь, кто-то здесь сделал что-то похожее, я знаю, что я близок, но, вероятно, одна или две вещи отсутствуют

Я также пытался вызвать .ASPXFORMSAUTH просто .ASPXAUTH.Это не сработало.Я получаю, что сервер отчетов не работает (ошибка 503) в обоих направлениях.

...