Como acessar o S-Works via AD-FS?

Como acessar o S-Works via AD-FS?


Foi realizada uma melhoria no S-Works, permitindo após configuração o acesso ao sistema via AD-FS.


Essa melhoria visa a autenticação, via portal da Empresa.

Quando o usuário acessar a tela do S-Works, e clicar no botão "Entrar com AD-FS Login", este será direcionado ao portal da empresa para login.

No entanto, se já estiver logado neste portal, o S-Works reconhecerá este login e acessará sua página inicial.

OBS: Caso seja criado um usuário que será utilizado em integrações (execuções da WebAPi do S-Works), este não terá acesso ao ambiente do S-Works devido à autenticação, porém poderá executar os métodos da API normalmente. 


Abaixo segue o passo a passo a ser realizado para a configuração do sistema:

Acesse o ambiente e faça o login, como usuário que possua perfil de administrador, no exemplo abaixo foi utilizado o Superuser:

Interface gráfica do usuárioDescrição gerada automaticamente


Ao acessar o sistema a tela de boas-vindas será exibida:

Acesse o Menu Administração e clica na opção Configurações, conforme demonstrado abaixo:


Com a tela de Configurações aberta, clique no botão “+Adicionar Configuração”:


Com a tela aberta, inserir as chaves de configuração conforme demonstrado abaixo e clique em salvar:

Seguem as chaves que deverão ser cadastradas:

   "CustomAuth": "AppUserManagerADFS",
    "ADFS_CLIENT_ID": "fa888f6e-3c57-423c-996a-92d6585f9969",

   "ADFS_AUTHORIZE_URL": "https://sts.santander.com.br/adfs/oauth2/authorize",

   "ADFS_REDIRECT_URL": "https://localhost:5001/ADFSLogin/Autenticar",

   "ADFS_RESPONSE_TYPE": "id_token",

   "ADFS_RESPONSE_MODE": "form_post",

   "CustomAuthCodigoEmpresa": "1",

   "ADFS_GRUPOS": "SuperUser=GSEG_SBR_VPN_CORP;Operador=AZURE_BR_AIP",

   "ADFS_USR_NOME": "given_name",

   "ADFS_USR_USERNAME": "SamAccountName",

   "ADFS_USR_SOBRENOME": "family_name",

   "ADFS_USR_EMAIL": "email",

   "ADFS_USR_GRUPOS": "role",

   "ADFS_NONCE": "12345",

   "ADFS_SCOPE": "openid allatclaims",

   "ADFS_STATE": "12345",

   "ADFS_RESOURCE": "https://localhost:5001" 

Interface gráfica do usuário, TabelaDescrição gerada automaticamente com confiança média


Breve explicação sobre as chaves de configurações:

CustomAuth: chave de configuração para determinar o provider de autenticação a ser utilizado, para o AD-FS deve-se sempre utilizar o valor AppUserManagerADFS.

CustomAuthCodigoEmpresa: chave de configuração que define o código da empresa ao qual o usuário do AD-FS será criado.

ADFS_CLIENT_ID: chave de configuração que recebe o client_id do cliente.

ADFS_AUTHORIZE_URL: chave de configuração responsável por armazenar o parâmetro authorization_endpoint.

ADFS_REDIRECT_URL: chave de configuração responsável pelo redirecionamento do SSO para o SWorks, ela deve ser configurada de acordo com a URL configurada no servidor do cliente, porém é necessário acrescentar o seguinte endereço na URL: “/ADFSLogin/Autenticar”.

ADFS_RESPONSE_TYPE: chave de configuração que determina o tipo de response a ser retornado pelo AD-FS.

ADFS_RESPONSE_MODE: chave de configuração que determina o modo do response. Para receber os valores das claims no response, ele deve estar configurado como form_post.

ADFS_SCOPE: chave para determinar os escopos a serem retornados no response, caso seja utilizado mais de um, eles devem estar separados por espaço. O escopo necessário para retornar as claims é o allatclaims.

ADFS_RESOURCE: esta chave de configuração aguarda o valor de WebApi configurado no ambiente do cliente, ela deve ser configurada com a URL do S-Works.

ADFS_STATE: chave de configuração a ser preenchida com uma string simples, cujo valor será retornado no response.

ADFS_NONCE: chave de configuração a ser preenchida com uma string simples, cujo valor será retornado no token.

ADFS_GRUPOS: chave de configuração responsável por receber o bind a ser realizados entre os grupos do controlador do domínio (AD) e os perfis do S-Works, esta chave deve ser preenchida da seguinte forma perfil_sworks=grupo_ad;

Obs: não utilizar espaço entre a igualdade e caso for utilizar mais de uma igualdade, separá-las com ponto e vírgula (;).

ADFS_USR_USERNAME: chave de configuração que define o nome da propriedade de username (nome do usuário) a ser consultada no tokenJWT retornado pelo AD-FS, caso esta chave de configuração não seja criada, o S-Works irá tentear preencher o nome do usuário com a propriedade sAMAccountName.

ADFS_USR_EMAIL: chave de configuração que define o nome da propriedade do email a ser localizado no tokenJWT retornado pelo AD-FS, caso esta chave de configuração não seja criada, o SWorks irá tentar preencher o email através da propriedade mail.

ADFS_USR_SOBRENOME: chave de configuração que define o nome da propriedade de sobrenome do usuário a ser localizada no tokenJWT retornado pelo AD-FS, caso esta chave de configuração não seja criada, o SWorks irá tentear preencher o sobrenome através da propriedade sn.

ADFS_USR_NOME: chave de configuração que define o nome da propriedade de nome do usuário a ser localizada no tokenJWT retornado pelo AD-FS, caso esta chave de configuração não seja criada, o SWorks irá tentar preencher o nome do usuário através da propriedade givenName.

ADFS_USR_GRUPOS: chave de configuração que define o nome da role de grupos a ser localizada no AD-FS, caso esta chave estiver preenchida significa que o SWorks irá buscar por grupos customizados. Por padrão o SWorks irá buscar os grupos através da propriedade memberOf.


Com as configurações adicionadas ao sistema, é necessário realizar o log-off.

Após o log-off é possível verificar a opção de entrar utilizando o AD-FS:

Interface gráfica do usuário, AplicativoDescrição gerada automaticamente


Clique no botão “Entrar com AD FS Login” e você será direcionado ao portal da Empresa, conforme exemplo abaixo:

Interface gráfica do usuárioDescrição gerada automaticamente


Preencha os campos com os dados de login/senha ,clique em "Entrar" e você será direcionado a tela principal do S-Works, conforme exemplo abaixo:

Interface gráfica do usuário, Texto, AplicativoDescrição gerada automaticamente