0% encontró este documento útil (0 votos)
3 vistas15 páginas

Autenticación y Autorización en RAD Server

El documento aborda los procesos de autenticación y autorización en RAD Server, destacando la autenticación a nivel de aplicación y usuario, así como la diferencia entre autenticación y autorización. Se describen los métodos de autenticación, incluyendo AppSecret y MasterSecret, y se explica el flujo de autenticación que involucra el inicio de sesión y el uso de tokens de sesión. Además, se presenta la configuración de autorización y ejemplos de implementación programática en EMS.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas15 páginas

Autenticación y Autorización en RAD Server

El documento aborda los procesos de autenticación y autorización en RAD Server, destacando la autenticación a nivel de aplicación y usuario, así como la diferencia entre autenticación y autorización. Se describen los métodos de autenticación, incluyendo AppSecret y MasterSecret, y se explica el flujo de autenticación que involucra el inicio de sesión y el uso de tokens de sesión. Además, se presenta la configuración de autorización y ejemplos de implementación programática en EMS.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

RAD Server

Autorización y
Autenticación

Fernando Rizzato
Lead Software Consultant, Latin America

Embarcadero Technologies Copyright 2018


AGENDA

§ Procesos de autenticación
§ Autenticación a nivel de aplicación
§ Autenticación a nivel de usuario
§ Autenticación versus Autorización
§ Flujo de autenticación y autorización
§ Configuración de autorización
§ Demos

Embarcadero Technologies Copyright 2018


PROCESOS DE AUTENTICACIÓN

§ La autenticación es el proceso por el cual un servidor EMS


requiere de sus aplicaciones cliente proporcionar algún
identificador antes de permitir que ellas accedan a sus
endpoints
§ Hay dos niveles de autenticación disponibles, dependiendo de
las necesidades de su servicio
§ Autenticación a nivel de aplicación
§ Autenticación a nivel de usuario

Embarcadero Technologies Copyright 2018


AUTENTICACIÓN A NIVEL DE APLICACIÓN
§ La autenticación a nivel de aplicación requiere que cualquier
cliente proporcione información antes de que puedan solicitar
correctamente un endpoint
§ EMS admite dos tipos de autenticación a nivel de aplicación
§ AppSecret
§ MasterSecret
§ Se pueden definir en la sección [[Link]] del archivo de
configuración de EMS

Embarcadero Technologies Copyright 2018


AUTENTICACIÓN A NIVEL DE APLICACIÓN
§ Por defecto, AppSecret está vacía en la sección [[Link]]
§ Cuando se establece AppSecret, el cliente debe proporcionar
el valor de AppSecret en todas las solicitudes de recursos a
EMS
§ Los clientes pasan el valor de AppSecret en el encabezado de
la solicitud a través del parámetro X-Embarcadero-App-Secret
§ Cuando las restricciones adicionales a recursos se definen en la
sección [[Link]], tanto el AppSecret como las
restricciones [[Link]] se deben atender de forma
simultánea
Embarcadero Technologies Copyright 2018
AUTENTICACIÓN A NIVEL DE APLICACIÓN
§ Cuando se establece el MasterSecret y un cliente pasa el valor
de MasterSecret en un encabezado de solicitud, los derechos
al recurso solicitado se conceden incondicionalmente
§ En concreto, cualquier restricción definida en la sección
[[Link]] del archivo de configuración de EMS se
ignora cuando se proporciona un MasterSecret válido
§ Los clientes pasan el valor de MasterSecret en el encabezado
de la solicitud a través del parámetro X-Embarcadero-Master-
Secret

Embarcadero Technologies Copyright 2018


AUTENTICACIÓN A NIVEL DE USUARIO
§ La sección [[Link]] del archivo de configuración de EMS
también contiene una clave llamada ApplicationID
§ ApplicationID no se aplica específicamente a la autenticación
pero se puede utilizar en instalaciones donde hay varios
servidores EMS para evitar una incompatibilidad entre el
cliente y el servidor
§ Los clientes pasan el valor del ApplicationID en el encabezado
de la solicitud a través del parámetro X-Embarcadero-
Application-Id

Embarcadero Technologies Copyright 2018


AUTENTICACIÓN A NIVEL DE USUARIO
§ La autenticación en el nivel de usuario requiere que un usuario
inicie sesión formalmente en la aplicación, cuando se genera
un token de sesión
§ Este token de sesión, cuyo nombre es X-Embarcadero-Session-
Token, se debe proporcionar en el encabezado de cada
solicitud posterior para que el servidor EMS pueda identificar
al usuario
§ Este token de sesión es la pieza central de la autorización

Embarcadero Technologies Copyright 2018


AUTENTICACIÓN VERSUS AUTORIZACIÓN
§ Autenticación es el proceso de identificación de un usuario
§ Para autenticar a un usuario, un cliente primero debe llamar
Login o Signup del recurso User de la API administrativa de
EMS
§ El inicio de sesión es una solicitud POST que transmite un
objeto JSON en el cuerpo del mensaje HTTP. Este objeto debe
tener dos propiedades JSON, "username" y "contraseña"
§ Si los datos proporcionados corresponden a los de un usuario
de EMS existente, un token de sesión se devuelve al cliente en
la respuesta
Embarcadero Technologies Copyright 2018
AUTENTICACIÓN VERSUS AUTORIZACIÓN
§ Autorización es la determinación de que un determinado
usuario tiene derecho a invocar un punto final específico
§ Esto se puede hacer a nivel de usuario o de grupo
§ Una autorización en el nivel de usuario o de grupo se emplea
para permitir o denegar el acceso a un endpoint o un recurso
específico
§ Usted controla la autorización y la autenticación de la sección
[[Link]] del archivo de configuración de EMS

Embarcadero Technologies Copyright 2018


FLUJO DE AUTENTICACIÓN Y AUTORIZACIÓN
1. El cliente realiza la solicitud de login
POST [Link] HTTP/1.1
{"username":"User1","password":"User1pass"}
2. El servidor responde
HTTP/1.1 201 Created {"username":"User1","_id":"04C3B621-A056-49CF-8C56-
D18E8363F58E","_meta":{"creator":"04C3B621- A056-49CF-8C56-
D18E8363F58E","created":"2018-05-04T09:05:54.000Z"},"session
Token":"d7bdc5523d04ecab7a35c1df53a7077d"}
3. El cliente llama un endpoint
GET [Link] HTTP/1.1
X-Embarcadero-Session-Token: d7bdc5523d04ecab7a35c1df53a7077d
4. El servidor responde
HTTP/1.1 200 OK
”country test"
Embarcadero Technologies Copyright 2018
in the AccessControl resource.

CONFIGURACIÓN
Consider DE [Link]
now the following AUTORIZACIÓN entries:
Users={"groups" : ["everyone"]}
[Link]={"public": true}
[Link]={"groups", ["admin"]}
[Link]={"groups", ["admin"]}
Groups={"groups" : ["everyone"]}
[Link]={"groups", ["admin"]}
[Link]={"groups", ["admin"]}
[Link]={"groups", ["admin"]}
Customers={"groups" : ["everyone", "admin"]}
Accounts={"groups" : ["*"]}
AccessControl={"groups", ["admin"]}

Embarcadero Technologies Copyright 2018


groups.

Also, it is possible to implement authorization programmatically from within your


CONFIGURACIÓN DE AUTORIZACIÓN
custom EMS endpoints. An example of this is demonstrated in the following code:
procedure [Link](const AContext:
TEndpointContext);
begin
//Allow MasterSecret unconditionally
if not ([Link] in
[Link]) then
begin
if [Link] = nil then
[Link]('', 'User required');
if not [Link]('Administrators') then
[Link]('', 'Administrator required');
end;
end;

procedure [Link](const AContext: TEndpointContext;


const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);
begin
CheckAdministrator(AContext);
// implement response here
// …
end;

Embarcadero Technologies Copyright 2018


Embarcadero Technologies Copyright 2018 14
GRACIAS!
Preguntas?
Me puedes encontrar en:
@FernandoRizzato
[Link]@[Link]
Síguenos en
[Link]/EMBTLatAm

Embarcadero Technologies Copyright 2018 15

También podría gustarte