signumsoftware / framework

Open Source framework for writing data-centric applications using the latest versions of .Net Core, C# (not-nullable), ASP.NET Web API, Typescript (strict), React, D3 and Sql Server or PostgreeSQL
https://www.signumsoftware.com/en/Framework
MIT License
222 stars 85 forks source link

Login Signum with AD #540

Closed doganc closed 2 years ago

doganc commented 2 years ago

Hi, Could I use AD Authentication in Signum? I added AD futures (Register User Entity with UserADMixin) and also I can get AD users and mapping in Signum User list, but the related user can't log in, when the user tries to log in (using AD password), the system gets Invalid Username or Password.

what is wrong with my operations or what is my forgetting thinks?

thanks,

olmobrutall commented 2 years ago

You want windows AD or Azure AD?

In any case you don’t need RegisterUser form, this is for open internet applications where users can register themselves. With AD integration the user is created automatically when they login for the first time.

doganc commented 2 years ago

I mean, Windows AD, I'm using this button to get user from A.D.

image

after that, it's created in User list,

olmobrutall commented 2 years ago

you need an authorizer and set it you Starter.cs

AuthLogic.Authorizer = new SouthwindAuthorizer(() => Configuration.Value.ActiveDirectory);

https://github.com/signumsoftware/southwind/blob/master/Southwind.Logic/SouthwindAuthorizer.cs

in Startup.cs ConfigureServicrs you need: services.AddAuthentication(IISDefaults.AuthenticationScheme);

In MainPublic.tsx you need:

AuthClient.registerWindowsAuthenticator();

Just after/before registerUserTicket();

Finally you need to install it and configure it in IIS

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/windowsauthentication/

It’s a little bit complicated, best of luck 🤞

olmobrutall commented 2 years ago

Did it work? Can I close the issue?

doganc commented 2 years ago

Hi, I didn't try yet, but I understand. Thanks, you can close if get any problem I can ask again.

doganc commented 2 years ago

Hi @olmobrutall I add points of your detailed instructions to my code, After that, I'm getting this error if I log in with System User

image

Refresh the page getting this error,

_System.Security.Authentication.AuthenticationException (ExceptionID 2253)No authentication information found! at Signum.React.Authorization.AuthTokenServer.InvalidAuthenticator(FilterContext actionContext) in C:\SignumProjects\EmployeePortal\Framework\Signum.React.Extensions\Authorization\AuthTokensServer.cs:line 42 at Signum.React.Filters.SignumAuthenticationFilter.Authenticate(ResourceExecutingContext actionContext) in C:\SignumProjects\EmployeePortal\Framework\Signum.React\Filters\SignumFilters.cs:line 56 at Signum.React.Filters.SignumAuthenticationFilter.GetResource(ResourceExecutingContext context) in C:\SignumProjects\EmployeePortal\Framework\Signum.React\Filters\SignumFilters.cs:line 66 at Signum.React.Filters.SignumDisposableResourceFilter.OnResourceExecutionAsync(ResourceExecutingContext context, ResourceExecutionDelegate next) in C:\SignumProjects\EmployeePortal\Framework\Signum.React\Filters\SignumFilters.cs:line 165 at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)_

If I use the Login With Windows User button with Domain User (I got user from Active Directory and create a user automatically in User section), I'm getting this error,

image

Could you help me? Thanks for all

doganc commented 2 years ago

Hi, @olmobrutall, Could you tell me what is the problem? it's a bit important for me,

Thanks for all