public Task <LoginInteractionResponse> ProcessClientLoginAsync(ValidatedAuthorizeRequest request) { // check idp restrictions var currentIdp = request.Subject.GetIdentityProvider(); if (request.Client.IdentityProviderRestrictions != null && request.Client.IdentityProviderRestrictions.Any()) { if (!request.Client.IdentityProviderRestrictions.Contains(currentIdp)) { var response = new LoginInteractionResponse { SignInMessage = _signIn }; return(Task.FromResult(response)); } } return(Task.FromResult(new LoginInteractionResponse())); }
public Task <LoginInteractionResponse> ProcessClientLoginAsync(ValidatedAuthorizeRequest request) { // check idp restrictions var currentIdp = request.Subject.GetIdentityProvider(); if (request.Client.IdentityProviderRestrictions != null && request.Client.IdentityProviderRestrictions.Any()) { if (!request.Client.IdentityProviderRestrictions.Contains(currentIdp)) { var response = new LoginInteractionResponse { SignInMessage = _signIn }; Logger.WarnFormat("User is logged in with idp: {0}, but idp not in client restriction list.", currentIdp); return(Task.FromResult(response)); } } // check if idp is local and local logins are not allowed if (currentIdp == Constants.BuiltInIdentityProvider) { if (_options.AuthenticationOptions.EnableLocalLogin == false || request.Client.EnableLocalLogin == false) { var response = new LoginInteractionResponse { SignInMessage = _signIn }; Logger.Warn("User is logged in with local idp, but local logins not enabled."); return(Task.FromResult(response)); } } return(Task.FromResult(new LoginInteractionResponse())); }