Use flujo de concesión implícito de OAuth 2.0 en el sitio de Power Pages
Esta característica permite que un cliente realice llamadas del lado del cliente a API externas y las proteja mediante flujo de concesión implícito de OAuth. Proporciona un extremo para obtener tokens de identidad seguro. Estos tokens de acceso seguro que contendrán información de identidad de usuario para uso de API externas para autorización después de flujo de concesión implícito de OAuth 2.0. La información de identidad de un usuario que inició sesión se pasa de manera segura a las llamadas AJAX externas, lo que ayuda a los desarrolladores a pasar el contexto de autenticación y también ayudará a los usuarios a proteger sus API.
Certificados personalizados
Use el Centro de administración de Power Platform para cargar el certificado personalizado. Después de cargar el certificado personalizado, debe actualizar la configuración del sitio como se muestra a continuación:
Vaya a la aplicación Administración del portal y, en la sección Sitio web, seleccione Plantillas de sitio.
Para crear un nuevo ajuste, seleccione Nuevo.
Para editar un ajuste existente, seleccione la CustomCertificates/ImplicitGrantflow.
Especificar valores:
- Nombre:CustomCertificates/ImplicitGrantflow
- Sitio web: El sitio web asociado
- Valor: copie la huella digital del certificado personalizado cargado desde la pantalla Administrar certificado personalizado y péguela aquí. El valor indicará qué certificado se utilizará para el flujo de concesión implícito.
Seleccione Guardar y cerrar.
Detalles del extremo de token
También puede ir un token realizando una solicitud de publicación al extremo <portal_url>/_services/auth/token
. El extremo token admite los siguientes parámetros:
Parámetro | ¿Obligatorio? | Descripción |
---|---|---|
client_id | No | Una cadena que se pasa al realizar una llamada al punto de conexión. Debe asegurarse de el identificador del cliente está registrado. De lo contrario, se muestra un error. El identificador de cliente se agrega en notificaciones en el token aud además del appid parámetro y lo pueden usar clientes para validar que el token devuelto es para su aplicación.La longitud máxima es de 36 caracteres. Solo se admiten caracteres alfanuméricos y guiones. |
estado | No | Un valor incluido en la solicitud que también se devuelve en la respuesta del token. Puede ser una cadena de cualquier contenido que desee usar. Generalmente, se usa un valor único generado de forma aleatoria para evitar ataques de falsificación de solicitudes entre sitios. La longitud máxima es de 20 caracteres. |
nonce | No | Un valor de cadena enviado por el cliente que se incluye en el token de identificador resultante como notificación. El cliente puede entonces comprobar este valor para mitigar los ataques de repetición de token. La longitud máxima es de 20 caracteres. |
response_type | No | Este parámetro solo admite token como valor, lo que permite a la aplicación inmediatamente recibir un token de identidad del punto de conexión, sin realizar una segunda solicitud al punto de conexión. |
Nota
Aunque los parámetros client_id
, state
y nonce
son opcionales, se recomienda usarlos para asegurarse de que las integraciones son seguras.
Respuesta correcta
El extremo token devuelve state expires_in como encabezados de respuesta, y token en el cuerpo del formulario.
Respuesta de error
El error en el extremo token se devuelve como documento de JSON con los siguientes valores:
- Id. de error: Identificador único del error.
- Mensaje de error: Un mensaje de error específico que puede ayudarle a identificar la causa raíz de un error de autenticación.
- Id. de correlación: Un GUID que se usa para fines de depuración. Si ha habilitado el registro de diagnóstico, el id. de correlación estaría presente en registros de errores del servidor.
- Marca de tiempo: Fecha y hora en que se generó el error.
El mensaje de error se muestra en el idioma predeterminado del usuario que ha iniciado sesión. Si el usuario no ha iniciado sesión, una página de inicio de sesión se muestra para que el usuario inicie sesión. Por ejemplo, una respuesta de error tiene este aspecto:
{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd" }
Validar token de identificador
No basta con obtener un token de identificador para autenticar al usuario; también debe validar la firma del token y comprobar las notificaciones en el token según los requisitos de la aplicación. El extremo del token pública proporciona la clave pública del sitio, que puede usarse para validar la firma del token proporcionado por el sitio web. La dirección URL para el extremo token público es: <portal_url>/_services/auth/publickey
.
Activar o desactivar flujo de concesión implícito
De forma predeterminada, flujo de concesión implícito está habilitado. Si desea desactivar el flujo de concesión implícito, establezca el valor del ajuste Connector/ImplicitGrantFlowEnabled en Falso.
Si la configuración del sitio no está disponible en el sitio web, debe crear una nueva configuración del sitio con el valor apropiado.
Configure validez de token
De forma predeterminada, el token es válido durante 15 minutos. Si desea cambiar la validez del token, establezca el valor del sitio ImplicitGrantFlow/TokenExpirationTime con el valor necesario. El valor debe especificarse en segundos. El valor máximo puede ser 1 hora, y el valor mínimo debe ser 1 minuto. Si se especifica un valor incorrecto (por ejemplo, caracteres alfanuméricos), se usa el valor predeterminado de 15 minutos. Si especifica un valor mayor que el valor máximo o inferior al valor mínimo, se usarán los valores máximo y mínimo respectivamente de forma predeterminada.
Por ejemplo, para establecer la validez del token a 30 minutos, establezca el valor del sitio ImplicitGrantFlow/TokenExpirationTime en 1800. Para establecer la validez del token a 1 hora, establezca el valor del sitio ImplicitGrantFlow/TokenExpirationTime en 3600.
Registrar el identificador del cliente para flujo de concesión implícito
Debe registrar el identificador de cliente con el sitio web para el que está permitido este flujo. Para registrar un identificador del cliente, debe crear los siguientes valores del sitio:
Configuración del sitio | Valor |
---|---|
ImplicitGrantFlow/RegisteredClientId | Los valores de identificador de cliente válidos que se permiten para este sitio web. Los valores deben ir separados por punto y coma y pueden contener caracteres alfanuméricos y guiones. La longitud máxima es de 36 caracteres. |
Código de ejemplo
Puede usar el código siguiente para empezar a usar la concesión implícita de OAuth 2.0 con las API de Power Pages.
Use el token de OAuth de Power Pages con una API web externa
Este ejemplo es un proyecto basado en ASP.NET y se usa para validar el token de id. emitido por Power Pages. El código de ejemplo completo se puede encontrar aquí: Usar el token de OAuth de Power Pages con una API web externa.
Ejemplo de extremo de token
Este ejemplo le muestra cómo puede usar la función getAuthenticationToken para capturar un token de identificador mediante el extremo de token en Power Pages. El ejemplo se puede encontrar aquí: Ejemplo de extremo de token.