Protección de Servicios Web RESTful

Defina roles, privilegios y clientes de OAuth para garantizar que se necesitan autenticación y autorización para acceder a los servicios web RESTful.

Para proteger un servicio web RESTful, debe:

  • Crear Rol

  • Crear un privilegio seleccionando el rol y los módulos o recursos que proteger

Para activar el acceso a un servicio RESTful protegido mediante el flujo de trabajo OAUTH2, cree un cliente OAuth con el rol y el privilegio creados para proteger el servicio RESTful.

En las siguientes secciones se proporciona información sobre cómo crear roles, privilegios y clientes de OAuth:

Managing Roles

Puede crear, editar y suprimir roles para servicios RESTful en la página Roles.

Para navegar a la página Roles, en la página Visión general de REST, haga clic en Roles en Objetos o en el menú de la cabecera, seleccione Seguridad y, a continuación, seleccione Roles.

Las acciones disponibles en el menú contextual son:

Creación de Roles

Cree un rol con un nombre específico. Después de crear el rol, puede asociarlo a un privilegio.

  1. En la página Roles, haga clic en Crear rol.
  2. En el campo Nombre de rol, introduzca el nombre del rol que se va a crear.

    Mostrar código: seleccione esta opción para ver el equivalente de código PL/SQL del control deslizante Crear rol. Puede copiar y ejecutar este código PL/SQL en la hoja de trabajo para realizar la misma acción que se produce al hacer clic en Crear en el control deslizante Crear Rol.

  3. Haga clic en Create.

    El nuevo rol asignado se muestra en la página Roles.

Edición de un rol

En esta sección se describe cómo editar un rol.

  1. En la página Roles, para el rol específico, haga clic en Acciones menú de contexto y seleccione Editar.
  2. Introduzca los cambios necesarios y haga clic en Guardar.

    Para obtener una descripción de los campos, consulte Creación de un rol.

Supresión de un Rol

En esta sección, se describe cómo suprimir un rol.

  1. En la página Roles, para el rol específico, haga clic en Acciones menú de contexto y seleccione Suprimir.

    Se le solicitará que confirme.

  2. Haga clic en para suprimir.

Visualización de privilegios asignados

En esta sección, se describe cómo ver los privilegios asociados a un rol.

En la página Roles, para el rol específico, haga clic en Acciones menú de contexto y seleccione Detalles. Se muestran los privilegios asignados al rol.

Gestión de Privilegios

Puede crear, editar y suprimir privilegios para los servicios RESTful en la página Privileges.

Un privilegio define el conjunto de roles, al menos uno de los cuales un usuario autenticado debe poseer para acceder a un servicio RESTful protegido por un privilegio.

Para navegar a la página Privilegios, en la página Visión general de REST, haga clic en Privilegios en Objetos o, en el menú de la cabecera, seleccione Seguridad y, a continuación, seleccione Privilegios.

Los atributos de privilegio que se muestran por defecto en la vista de tarjeta se muestran en la siguiente figura.

Las acciones disponibles en el menú contextual son:

Creación de un privilegio

En esta sección, se describe cómo crear un privilegio.

  1. En la página Privilegios, haga clic en Crear privilegio.
  2. Introduzca los siguientes campos. Los campos con un asterisco (*) son obligatorios:
    • Etiqueta: introduzca el nombre del privilegio de una manera que sea fácil de entender.
    • Nombre: introduzca un nombre único para el privilegio.
    • Descripción: introduzca una breve descripción de la finalidad del privilegio.
    • Comentarios: introduzca comentarios.
    • Roles: introduzca uno o más roles asignados al privilegio.
    • Módulos Protegidos: seleccione los módulos que desea proteger.
    • Recursos Protegidos: en lugar de los módulos protegidos, utilice el separador Proteger Recursos para aplicar la seguridad basada en un patrón de URI.

    Mostrar código: seleccione esta opción para ver el equivalente de código PL/SQL del control deslizante Crear privilegio. Puede copiar y ejecutar este código PL/SQL en la hoja de trabajo para realizar la misma acción que se produce al hacer clic en Crear en el control deslizante Crear Privilegio.

  3. Haga clic en Create.

    El nuevo privilegio se muestra en la página Privilegios.

Edición de un privilegio

En esta sección se describe cómo editar un privilegio.

  1. En la página Privilegios, para el privilegio específico, haga clic en Acciones menú de contexto y seleccione Editar.
  2. Realice los cambios necesarios y haga clic en Guardar.

    Para obtener una descripción de los campos, consulte Creating a Privilege.

Supresión de un privilegio

En esta sección, se describe cómo suprimir un privilegio.

  1. En la página Privilegios, para el privilegio específico, haga clic en Acciones menú de contexto y seleccione Suprimir.
  2. Se le pedirá que confirme. Haga clic en .

Gestión de Clientes de OAuth

Mediante la autenticación basada en OAuth 2.0, puede asegurarse de que solo los usuarios o clientes específicos accedan a sus servicios web RESTful.

OAuth 2.0 es un protocolo de Internet estándar que define flujos para proporcionar acceso condicional y limitado a una API RESTful. Para obtener más información, consulte Autenticación basada en OAuth.

Puede crear, editar y suprimir clientes de OAuth en la página Clientes de OAuth.

Para navegar a la página Clientes de OAuth, en la página Visión general de REST, haga clic en Clientes en Objetos o en el menú de la cabecera, seleccione Seguridad y, a continuación, seleccione Cliente de OAuth.

Los atributos del cliente OAuth que se muestran de forma predeterminada en la vista de tarjeta se muestran en la siguiente figura.

Para crear un cliente OAuth, consulte Creación de un cliente OAuth.

Las acciones disponibles en el menú contextual son:

Creación de un cliente OAuth

Crea el cliente de OAuth y otorga los roles y privilegios necesarios.

  1. En la página Clientes de OAuth, seleccione Crear cliente de OAuth.
  2. Introduzca los siguientes campos. Los campos con un asterisco (*) son obligatorios:

    Separador Definición de Cliente

    • Tipo de Otorgamiento: seleccione el tipo de permiso de autorización. Las opciones son Client_Cred, Auth Code o Implicit.

      Para obtener más información sobre estos tipos de permiso, consulte OAuth Flows en la Guía del desarrollador de Oracle REST Data Services.

    • Nombre: nombre del cliente.
    • Descripción: Descripción de la finalidad del cliente.
    • URI de redirección: introduzca el URI controlado por el cliente al que se enviará el redireccionamiento que contiene un token de acceso de OAuth o un error.
    • URI de soporte: introduzca el URI en el que los usuarios finales pueden ponerse en contacto con el cliente para obtener soporte. Ejemplo: http:// www.myclientdomain.com/support/
    • Correo electrónico de soporte: introduzca el correo electrónico en el que los usuarios finales pueden ponerse en contacto con el cliente para obtener soporte.
    • Logotipo: cargue el logotipo en formato de archivo JPG, BMP o SVG. Asegúrese de que el logotipo tenga un tamaño inferior a 100 KB.
    • Roles: seleccione los roles que se van a otorgar.
    • Orígenes permitidos: agregue la lista de prefijos de URL.
    • Privilegios: seleccione los privilegios a los que el cliente desea acceder.

    Mostrar código: seleccione esta opción para ver el código PL/SQL equivalente del panel Crear cliente de OAuth. Puede copiar y ejecutar este código PL/SQL en la hoja de trabajo para realizar la misma acción que se produce al hacer clic en Crear en el panel Crear Cliente de OAuth.

  3. Haga clic en Create.

    El cliente OAuth registrado se muestra en la página Clientes OAuth.

    Se muestra una vista previa del secreto de cliente. Los secretos solo se aplican a los tipos de permiso Credenciales de cliente y Código OAuth. Copie el valor del secreto, ya que esta es la única instancia cuando se muestra. Si olvida el secreto de cliente, puede utilizar la acción Rotar secreto para cambiarlo. Consulte Gestión de secretos.

    El valor de ID de cliente representa la credencial secreta para el cliente de OAuth. Haga clic en Mostrar/Ocultar Mostrar/ocultar icono para ver los valores.

    Pruebe el punto final del servicio REST protegido mediante un cliente REST o la herramienta de línea de comandos cURL.

Edición de un cliente de OAuth

En esta sección se describe cómo editar un cliente de OAuth.

  1. En la página Clientes de OAuth, para el cliente específico, haga clic en Acciones menú de contexto y seleccione Editar.
  2. Edite los campos necesarios y haga clic en Guardar.

    Para obtener una descripción de los campos, consulte Creación de un cliente de OAuth.

Supresión de un cliente de OAuth

En esta sección, se describe cómo suprimir un cliente OAuth.

  1. En la página Clientes de OAuth, para el cliente específico, haga clic en Acciones menú de contexto y seleccione Suprimir.
  2. Se le solicitará que confirme. Haga clic en .

Exportación de un cliente de OAuth

En esta sección, se describe cómo exportar un cliente OAuth.

  1. En la página Clientes de OAuth, para el cliente específico, haga clic en Acciones menú de contexto y seleccione Exportar.
  2. En el panel Cliente de OAuth, haga clic en el icono Copiar o en Descargar para copiar o descargar la información del cliente de OAuth.

Gestión de secretos

Después de generar un secreto de cliente para un cliente de OAuth, puede rotar o revocar el secreto cuando sea necesario. Las opciones Rotar y Revocar están disponibles en el menú contextual del cliente de OAuth específico.

Note:

Con el desuso de los paquetes PL/SQL de OAUTH y OAUTH_ADMIN (consulte Referencia del paquete PL/SQL de ORDS_SECURITY), el proceso de creación de secretos de cliente de OAUTH cambia para los tipos de permiso Credenciales de cliente y Código de autenticación.

Para los clientes de OAuth que se han creado con un secreto no cifrado, la etiqueta Legacy se muestra en la tarjeta.

Rotación de un secreto de cliente

Elimina el secreto existente y crea uno nuevo. Esto es útil cuando no puede recordar el valor secreto de cliente existente.

  • Si existe un secreto de cliente para el cliente de OAuth, haga clic en Rotar para eliminar el existente y generar un nuevo secreto de cliente.

  • Si se revoca un secreto de cliente y no hay ningún valor de secreto asignado, haga clic en Registrar para generar un secreto de cliente para el cliente de OAuth.

Revocar un secreto de cliente

Elimina el secreto de cliente existente.

Seleccione Revocar sesiones para eliminar todas las sesiones de cliente existentes.

Ejemplos

En esta sección se proporcionan algunos ejemplos sobre la creación de un cliente de OAuth con diferentes tipos de permiso.

Creación de un cliente OAuth mediante el tipo de permiso Credenciales de cliente

En esta sección, se describe cómo crear un cliente OAuth mediante el tipo de permiso Credencial de cliente.

Cree un cliente OAuth para el módulo creado "ejemplo" en Ejemplo: inserción de un registro mediante un manejador POST. El punto final para el servicio RESTful es http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/.

Requisitos

Cree un rol denominado HR Admin. Consulte Creación de un rol

Cree un privilegio denominado Example.HR. Consulte Creación de Privilegios

  1. En la página Clientes de OAuth, haga clic en Crear cliente de OAuth.
  2. Introduzca los siguientes campos:
    • En el campo Tipo de permiso, seleccione CLIENT_CRED.
    • Introduzca el nombre, la descripción, el URI de redirección, el URI de soporte y el correo electrónico de soporte para el cliente de OAuth.

    • En el separador Roles, agregue el rol creado (administrador de RR. HH.).

    • En la ficha Privilegios, agregue el privilegio creado (Example.HR).

    • Haga clic en Create.

    La nueva tarjeta de cliente OAuth aparece en la página Clientes de OAuth.

  3. Mediante cURL, pruebe el punto final de servicio sin credenciales de OAuth.
    curl --location --request POST --header "Content-Type: application/json" 
    --data '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia" }' 
    'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    Aparece un error.

  4. Pruebe el punto final con credenciales de OAuth:
    1. Para obtener un token de acceso, seleccione Obtener token de portador en el menú contextual de la tarjeta de cliente de OAuth.

      Aparece el cuadro de diálogo Token de OAuth. Utilice Copiar en portapapeles icono Copiar en portapapeles para copiar el token.

    2. En cURL, utilice el token de acceso de portador en la siguiente sentencia para solicitar el recurso:

      curl -H "Content-Type: application/json" -H "Authorization: Bearer AMccwlnt99gm9kxDs_w1DA" --location --request POST --data 
      '{"DEPTNO": 55, "DEPTNAME": "Sales", "DEPTLOC": "Australia"}' 'http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/'

    La salida muestra:

    {"deptno":55,"dname":"Sales","loc":"Australia","links":[{"rel":"collection",
    "href":"http://xyz.us.comp.com:1234/ords/pdbdba/example/emp/"}]}
  5. En la página SQL, puede verificar el nuevo registro que se ha insertado en la tabla DEPT mediante la siguiente sentencia:
    SELECT * FROM DEPT;

Creación de un cliente OAuth mediante el tipo de otorgamiento de código de autenticación

En esta sección se describe cómo crear un cliente de OAuth mediante el tipo de permiso Código de autenticación.

  1. En la página Clientes de OAuth, haga clic en Crear cliente de OAuth.
  2. Introduzca los siguientes campos:
    • En el campo Tipo de permiso, seleccione Código de autorización.
    • Introduzca el nombre, la descripción, el URI de redirección, el URI de soporte y el correo electrónico de soporte del cliente de OAuth.

    • En el separador Roles, agregue los roles relevantes.

    • En el separador Privilegios, agregue los privilegios relevantes.

    • Haga clic en Create.

    La nueva tarjeta de cliente OAuth aparece en la página Clientes de OAuth.

  3. En la tarjeta de cliente de OAuth, haga clic en el icono Acciones y seleccione Detalles de autenticación.
    Aparece el URI de autorización y valor único.
  4. En el campo URI de autorización, haga clic en el icono Abrir en Nuevo Separador. Se muestra una nueva ventana con un mensaje de error No autorizado junto con un enlace de conexión.
  5. Haga clic en Iniciar sesión y vuelva a introducir sus credenciales de conexión.
  6. Se le solicita que apruebe la solicitud para acceder al URI protegido. Haga clic en Aprobar.
    Aprobar notificación de solicitud