Angular и Ethernet User Management (EUM) - PullRequest
0 голосов
/ 15 января 2019

Мой основной вопрос - как настроить приложение Angular 6 или 7 для использования EUM? Все мои Angular-приложения до сих пор использовали Bearer Token и HTTPInteceptor. Я не могу найти примеры с EUM.

Вот одна ссылка, которую я нашел, которая использует AD FS: СПА с AD FS Я думаю, что моя реализация будет похожей, но я бы хотел более конкретный пример с EUM.

Больше Baskground:

В настоящее время у меня есть веб-сайт SharePoint и веб-сайт администрирования ASP.NET MVC. Безопасность EUM.

Когда пользователь заходит на веб-сайт администратора, мой web.config настраивается таким образом, чтобы он автоматически перенаправлялся на страницу единого входа в EUM, если он еще не прошел проверку подлинности. После входа они перенаправляются обратно на сайт администратора. На данный момент у меня есть доступ к большому количеству информации, но все, что меня волнует, это то, что они аутентифицированы и какое там имя пользователя. На веб-сайте администратора он имеет свой собственный набор ролей для управления разрешениями.

Этот подход хорошо работал в течение 10 лет. Интеграция и тестирование были довольно просты. При работе локально, в нашей среде разработки или в промежуточной среде у меня на веб-сайте ASP.NET MVC установлено использование проверки подлинности Windows. Все эти среды являются внутренними, поэтому все пользователи, имеющие к ним доступ, проходят проверку подлинности в Active Directory в нашей сети.

Для интеграции с EUM у меня просто следующее:

<system.identityModel>
    <identityConfiguration>
      <audienceUris>
        <!-- This value is from EUM -->
        <add value="https://MyAdminWebsite/" />
      </audienceUris>
      <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <trustedIssuers>
          <!-- These value is from EUM -->
          <add thumbprint="SOMEBIGLONGSTRINGWITHLETTERSANDNUMBERS" name="urn:thinktecture:identityserver:EnvisionIT" />
        </trustedIssuers>
      </issuerNameRegistry>
      <certificateValidation certificateValidationMode="None" />
      <tokenReplayDetection enabled="true" />
    </identityConfiguration>
  </system.identityModel>
  <system.identityModel.services>
    <federationConfiguration>
      <cookieHandler requireSsl="true" />
      <!-- These value is from EUM -->
      <wsFederation passiveRedirectEnabled="true" issuer="https://login.OurCompanySingleSignOn" realm="https://MyAdminWebsite/" reply="https://MyAdminWebsite/" requireHttps="true" />
    </federationConfiguration>
  </system.identityModel.services>

Эти различия в конфигурации являются единственными различиями между различными средами. Через 12 лет сайт показывает свой возраст. По многим причинам нам нужно серьезное обновление. У меня есть 2-летний опыт работы с Angular, и я бы не сказал, что я эксперт, но я знаю, что я делаю "большую часть" времени. Angular 7 намного лучше, чем 2.

Текущее приложение представляет собой стандартное трехуровневое приложение со слоем веб-службы для доступа ко всем базам данных. Я планирую делать ту же архитектуру. Будет сайт ASP.NET Core Angular - ASP.NET Core API - БД SQL Server.

Какие-либо предложения или примеры, которые помогут мне начать?

...