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:
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"
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:
Clique no botão “Entrar com AD FS Login” e você será direcionado ao portal da Empresa, conforme exemplo abaixo:
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: