/sso-auth

A nuget package developed to help with implementation of Single Sign-On Auth on .net applications

Primary LanguageC#

Guia Sanepar.SSOAuth - Keycloak Single Sign-On Sanepar MVC .NET Framework 4.7

Biblioteca criada para facilitar a implementação da autenticação Single Sign-On utilizando Keycloak, adotado pela Sanepar.

Configuração

Criar as seguintes entradas no web.config da aplicação dentro de substituindo os dados do atributo value com dados válidos.

Em seguida deve-se adicionar o atributo [Authorize] sob o controller ou actions que se deseja autenticar.

É aconselhado criar sua propria impelentação do atributo de autorização extendendo a classe System.Web.Mvc.AuthorizeAttribute e implementando no mínimo os métodos:

  • protected bool AuthorizeCore(HttpContextBase httpContext);
  • protected void HandleUnauthorizedRequest(AuthorizationContext filterContext);

Desta forma, é feita a verificação correta das roles criadas para o sistema e o correto redirecionamento para a página de acesso negado.

Para logout deve ser implementado uma action com o seguinte código:

Request.GetOwinContext()
                .Authentication
                .SignOut(HttpContext
                        .GetOwinContext()
                        .Authentication
                        .GetAuthenticationTypes()
                        .Select(o => o.AuthenticationType).ToArray());

Ou utilizado a url configurada no web.config .

Extra

A biblioteca oferece ainda a Classe CustomAuthorizationRoles, contendo os métodos básicos:

  • PossuiPermissoes(string[] permissoes, string pattern, EnumTipoAcesso tipoAcesso) -- Procura as roles do sistema de um determinado tipo de acesso que correspondam a um padrão (pattern) Regex

  • public IEnumerable GetCodUnidadesUsuario(string matchPattern, string replacePattern) -- Semelhante ao método acima, retorna um IEnumerable de inteiro com o código das unidades. Deve-se entrar com o padrão de procura e o padrão para replace do Regex.