5

Tworzę nową aplikację ASP.NET Core 1.0. Jednym z wymagań jest użycie Active Directory do uwierzytelnienia użytkownika. Niestety nasza organizacja wykorzystuje tylko "stary" Active Directory. W żadnym wypadku nie korzystamy z Azure Active Directory.Użyj standardowej usługi Active Directory w aplikacji ASP.NET Core?

Kiedy utworzyć nowy projekt w Visual Studio 2015, nie ma opcji dla tego pod „Zmień” Uwierzytelnianie:

enter image description here

Jaki jest najlepszy sposób to zrobić?

+0

Szukasz uwierzytelniania NTLM (co byłoby uwierzytelnianie systemu Windows w tym zrzucie) lub chcesz używać AD z IE ASP.NET Identity 3? W przypadku NTLM można znaleźć starszą odpowiedź, która wydaje się działać z wersjami beta8 i RC1. W przypadku ASP.NET Identity nie ma nic wyjętego z pudełka i nie będzie tak daleko, jak wiem, ze względu na obawy związane z bezpieczeństwem (pozwala na brutalne wymuszenie hasła i niemożliwe jest zablokowanie użytkowników po n nieudanych próbach). Jeśli nadal chcesz go wypróbować, musisz zaimplementować niestandardowy 'IUserStore' /' IUserPasswordStore', ale pamiętaj o tym podejściu;) – Tseng

+1

"W przypadku NTLM znajdziesz tutaj starszą odpowiedź" - Czy chcesz uwzględnić link? To zadziała, jeśli znajdę sposób na skonfigurowanie ról użytkownika i administratora przy użyciu uwierzytelniania NLTM. – Derek

Odpowiedz

3

Obecnie nie jest możliwe.

ASP.NET Core obsługuje tylko OpenID Connect OIDC. Bieżące wersje programu ADFS, które są potrzebne do pojedynczej organizacji w obiektach, obsługują tylko WSFed, który nie jest jeszcze zaimplementowany w Core i jest mało prawdopodobne, aby został zaimplementowany w Core przez RTM. Program ADFS obsługuje również protokół OAuth, ale zespół AAD, który napisał kod tego utworu, koncentruje się na OIDC.

+1

Nie, nie ma. AAD obsługuje OIDC. – blowdart

1

Program ASP.NET Core 1.0 RC2 może wykorzystywać uwierzytelnianie systemu Windows. Poniższy kod umożliwia dostęp do obiektu tożsamości użytkownika AD w funkcji Configure(). Nie znalazłem jeszcze eleganckiego sposobu mapowania tej tożsamości do autoryzacji Microsoft.AspNetCore.Identity w ApplicationDbContext.

app.Use(async (context, next) => 
    { 
      var identity = (ClaimsIdentity) context.User.Identity; 
      await next.Invoke(); 
    }); 

Pisałem podobne pytanie, które może chcesz śledzić: Best practice for storing ASP.NET Core Authorization claims when authenticating users against Active Directory?

Powiązane problemy