Single Sign-on (SSO) é um esquema de autenticação que permite que um usuário efetue login com um único ID em qualquer um dos vários sistemas de software relacionados, mas independentes. Isso quer dizer que o usuário poderá efetuar o login em uma página terceira de sua intranet sem precisar colocar suas credenciais novamente.
Essa conexão é possível com o BioAtlas integrando-o a uma intranet de sua instituição.
Para realizar e obter o retorno esperado, é necessário possuir as seguintes informações se existirem:
Introdução:
Este artigo técnico destina-se a orientar os desenvolvedores na implementação de acesso via Single Sign-On (SSO) em suas aplicações.
Estrutura:
Headers
- X-api-key
- Ex: x-api-key: XXXXXXXXXXXXXXX
- Content-Type
- Ex: Content-Type=application/json
- X-Application
- Ex: X-Application=bioatlas (BioAtlas Humano)
X-Application=vet (BioAtlas Vet)
Body (JSON)
- Nome do usuário - (name: String)
- Ex: “name”: ”José da Silva”
- CPF - (cpf: String)
- Ex: “cpf”: “36556357820” (qualquer identificador)
- Classe (Curso) - (class: String)
- Ex: “class”: “Medicina”
- E-mail do usuário - (email: String)
- Ex: “email”: “email@exemplo.com”
- Grupo - (group: String)
- Ex: “group”: “teacher” (professores) “group”: “painel-user” (alunos)
É necessário possuir sempre a x-api-key válida e enviar um JSON contendo pelo menos o Email ou CPF (qualquer identificador). Caso não possua a x-api-key, entre em contato com nosso time de suporte (support@medicalharbour.com).
Utilização:
1. Endpoint
| https://api2.medicalharbour.com/authv2/pre-auth-sso |
2. Headers
Nos headers da request, devem ser incluídos os seguintes campos:
BioAtlas Humano:
|
x-api-key: YOUR_API_KEY content-Type: application/json x-Application=bioatlas |
BioAtlas Vet:
|
x-api-key: YOUR_API_KEY content-Type: application/json x-Application=vet |
3. Body
O body deve conter as informações do usuário que pretende acessar o BioAtlas.
Ex: Aluno medicina identificado pelo email:
|
{ “name”: “José da Silva”, “email”: “email@exemplo.com” “class”: “Medicina”, “group”: “painel-user” } |
Ex: Professor Biomedicina identificado pelo CPF:
|
{ “name”: “Maria dos Santos”, “cpf”: “36556357820”, “class”: “Biomedicina”, “group”: “teacher” } |
Ex: Aluno medicina identificado pelo email e pelo ID:
|
{ “name”: “Joao Pereira”, “cpf”: “123456”, “email”: “email@exemplo.com” “class”: “medicina”, “group”: “painel-user” } |
4. Options
Utilize as seguintes informações no Request Options:
|
{ credentials: “include”, method: ‘POST’, body: raw, redirect: ‘follow,’ } |
5. Response
Caso o resultado seja 200-OK, o campo msg irá retornar a url de acesso, no qual consta um token de acesso
BioAtlas Humano:
|
{"status": "success", "msg": " https://bioatlas.medicalharbour.com/AuthSSO?token=ef360d10c8257a0b9bd26545d5eb3 c42f24589e0e89307243c6e091dcd5a990p” |
BioAtlas Vet:
|
{"status": "success", "msg": " https://bioatlasvet.medicalharbour.com/AuthSSO?token=ef360d10c8257a0b9bd26545d5eb3 c42f24589e0e89307243c6e091dcd5a990p” |
6. Resultado:
BioAtlas Humano:
Ao entrar no link gerado na response
(https://bioatlas.medicalharbour.com/AuthSSO?token=ef360d10c8257a0b9bd26545d5eb3
c42f24589e0e89307243c6e091dcd5a990p), o usuário deverá entrar logado, conforme imagem:
BioAtlas Vet:
Ao entrar no link gerado na response
(https://bioatlasvet.medicalharbour.com/AuthSSO?token=ef360d10c8257a0b9bd26545d5eb3c42f24589e0e89307243c6e091dcd5a990p), o usuário deverá entrar logado, conforme imagem:
7. Code Sample:
Abaixo um exemplo completo do script JavaScript utilizado para demonstração:
|
function main() { var myHeaders = new Headers(); myHeaders.append("x-api-key", "XXXXXXXXXXXXXXXXXX"); myHeaders.append("Content-Type", "application/json"); myHeaders.append("X-Application", "bioatlas"); var raw = JSON.stringify({ “name”: “José da Silva”, “email”: “email@exemplo.com”, “class”: “Medicina”, “group”: “painel-user” });
var requestOptions = { credentials: "include", method: 'POST', headers: myHeaders, body: raw, redirect: 'follow'};
fetch("https://api2.medicalharbour.com/authv2/pre-auth-sso ", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error));
} |
8. FAQ:
Quais as alterações necessárias para quem já tem implementado sso?
- Alterar rota auth/sso para authv2/pre-auth-sso.
- Adicionar header X-Application=bioatlas
Remover implementação do front
Nota: Em caso de dúvidas, entre em contato com nosso time de suporte técnico através de uma Solicitação de Suporte Ténico (https://medicalharbour.zendesk.com/hc/pt-br/requests/new).
Comentários
0 comentário
Por favor, entre para comentar.