Artigo
· Abr. 4 3min de leitura

OAuth2 e Autenticação Básica, Autorização E Auditoria por código do web app

Neste artigo, vou explicar como autenticar, autorizar e auditar por código usando o web app CSP ao ativar/desativar e autenticar/remover autenticação de qualquer web app.

Layout do aplicativo
 

Vamos começar com a autenticação

A autenticação verifica a identidade de qualquer usuário ou outra entidade que tenta se conectar ao InterSystems IRIS®. Como se costuma dizer, a autenticação é como você prova que é quem diz ser.

Há várias maneiras diferentes que um usuário pode ser autenticado. Cada uma é conhecida como um mecanismo de autenticação. O InterSystems IRIS aceita vários mecanismos de autenticação:

  • Kerberos — o protocolo Kerberos foi criado para oferecer uma autenticação segura a serviços em uma rede desprotegida. O Kerberos usa tickets para autenticar um usuário e evita a troca de senhas na rede.
  • Baseado no sistema operacional — a autenticação baseada no SO usa a identidade do sistema operacional para cada usuário identificar esse usuário para o InterSystems IRIS.
  • Autenticação da instância — com esse tipo de autenticação, o InterSystems IRIS solicita uma senha ao usuário e compara um hash de senhas fornecidas com um valor armazenado.
  • Lightweight Directory Access Protocol (LDAP) — com esse protocolo, o InterSystems IRIS autentica o usuário com base nas informações em um repositório central, conhecido como servidor LDAP.
  • Autenticação delegada — possibilita a criação de mecanismos de autenticação personalizados. O desenvolvedor do aplicativo controla totalmente o conteúdo do código de autenticação delegada.

Estou usando a Autenticação da instância. Para a criação do Usuário, podemos usar o seguinte comando objectscript  :

  &sql(CREATE USER TestUser IDENTIFY BY demo)

Criamos TestUser com a senha da demonstração


Auditoria

Ao criar o registro do usuário, também é adicionado o banco de dados de auditoria usando o comando objectscript abaixo:

Do $SYSTEM.Security.Audit("%System","%Security","UserChange","User:TestUser | Password:demo","Audit Log inserted from Data_APP_Security")


Leia a documentação relacionada (Guia de auditoria): https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AAUDIT


Autorização

Depois que a autenticação for concluída, precisamos criar funções, conceder Privilégios às funções e, em seguida, vincular as funções aos usuários (Autorização). Faremos isso em três etapas

Etapa 1: Crie uma função usando o seguinte comando objectscript. Estamos criando uma função ReadWrite

&sql(CREATE ROLE ReadWrite)


Etapa 2: conceda Privilégios SELECT,UPDATE,INSERT NA tabela à Função. Estamos atribuindo privilégios da tabela scw.Patient à função ReadWrite

&sql(GRANT SELECT,UPDATE,INSERT ON scw.Patient TO ReadWrite)


Etapa 3: Conceda a Função ao usuário. Estamos atribuindo a função ReadWrite ao TestUser 

&sql(GRANT ReadWrite To TestUser)

Ativar/desativar web app

Podemos ativar ou desativar o web app usando o seguinte código objectscript

New $Namespace
Set $Namespace = "%SYS"
Set App = ##class(Security.Applications).%OpenId("/terminal")
Set App.Enabled=0
Do App.%Save()

"/terminal" aqui é o nome do aplicativo. O aplicativo pode ser desativado definindo "App.Enabled" como 0 e ativado definindo o valor como 1


Autenticar/remover autenticação de web app

Podemos definir a autenticação usando o seguinte código objectscript

New $Namespace
Set $Namespace = "%SYS"
Set App = ##class(Security.Applications).%OpenId("/terminal")
Set App.AutheEnabled=0
Do App.%Save()

"/terminal" aqui é o nome do aplicativo. A autenticação pode ser definida usando a propriedade "App.AutheEnabled". Os seguintes valores numéricos podem ser definidos

property AutheEnabled as Security.Datatype.Authentication [ InitialExpression = 64 ];

Authentication and Session mechanisms enabled (CSP Only).
Bit 2 = AutheK5API
Bit 5 - AutheCache
Bit 6 = AutheUnauthenticated
Bit 11 = AutheLDAP
Bit 13 = AutheDelegated
Bit 14 = LoginToken
Bit 20 = TwoFactorSMS
Bit 21 = TwoFactorPW

Obrigado

Discussão (0)1
Entre ou crie uma conta para continuar