Integre las páginas de la consola de Managed Service for OpenTelemetry en su aplicación web para que su equipo pueda consultar datos de rastreo (aplicaciones, detalles de aplicaciones y trazas) sin necesidad de cambiar a la consola de Alibaba Cloud.
El flujo de integración utiliza Resource Access Management (RAM) y Security Token Service (STS) para generar URL que no requieren inicio de sesión. Las directivas de RAM controlan el diseño de la página (ocultar barras de navegación) y el nivel de acceso (completo o de solo lectura).
Funcionamiento
El flujo de integración emplea un inicio de sesión federado basado en STS para otorgar acceso temporal y con alcance limitado a las páginas de la consola:
|
Phase |
Steps |
Frequency |
|
Configuración única |
Cree un usuario de RAM y un rol de RAM con las directivas necesarias |
Una sola vez |
|
Flujo por sesión |
Obtenga credenciales temporales, cámbielas por un token de inicio de sesión y construya una URL que no requiera inicio de sesión |
Cada sesión (los tokens caducan después de 3 horas) |
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una cuenta de Alibaba Cloud con privilegios administrativos de RAM (o la directiva
AliyunRAMFullAccess)Una aplicación web autogestionada con un backend capaz de realizar solicitudes HTTP
Paso 1: Crear un usuario de RAM y otorgar el permiso STS AssumeRole
Cree un usuario de RAM que el backend de su aplicación utilizará para invocar la operación STS AssumeRole.
Inicie sesión en la consola de RAM.
En el panel de navegación izquierdo, seleccione Identity > Users.
En la página Users, haga clic en Create User.
-
En la página Create User, configure los siguientes parámetros:
En la sección User Account Information, establezca Logon Name y Display Name.
En la sección Access Mode, seleccione Using permanent AccessKey to access.
-
Haga clic en OK.
ImportanteRAM genera automáticamente un par de AccessKey para el usuario de RAM. Este par se muestra únicamente una vez. Copie y guarde el ID de AccessKey y el secreto de AccessKey antes de cerrar la página. Para obtener más información, consulte Create an AccessKey pair.
-
En la página Users, localice al usuario de RAM y haga clic en Add Permissions dentro de la columna Actions.
Para otorgar permisos a varios usuarios de RAM simultáneamente, selecciónelos y haga clic en Add Permissions en la parte inferior de la página.
-
En el panel Grant Permission, configure los siguientes parámetros:
-
Establezca Resource Scope:
Account: El permiso se aplica a la cuenta actual de Alibaba Cloud.
ResourceGroup: El permiso se aplica a un resource group específico. Consulte Use a resource group to grant a RAM user the permissions to manage a specific ECS instance.
ImportanteAntes de establecer Resource Scope como ResourceGroup, confirme que el servicio en la nube admita resource groups. Consulte Services that work with Resource Group.
Confirme el Principal (el usuario de RAM al que le está otorgando permisos). El sistema selecciona automáticamente al usuario de RAM actual como principal.
En la sección Policy, seleccione AliyunSTSAssumeRoleAccess.
Haga clic en Grant permissions.
-
Haga clic en Close.
Paso 2: Crear un rol de RAM y otorgar permisos de Managed Service for OpenTelemetry
Cree un rol de RAM que defina los recursos a los que puede acceder la sesión integrada de la consola.
-
Grant permissions to the RAM role. Elija una de las siguientes directivas según el nivel de acceso que necesite:
Policy
Access level
AliyunTracingAnalysisFullAccessAcceso completo de lectura y escritura a Managed Service for OpenTelemetry
AliyunTracingAnalysisReadOnlyAccessAcceso de solo lectura a Managed Service for OpenTelemetry
ImportanteLos permisos del rol de RAM determinan qué datos y operaciones están disponibles en la consola integrada.
Paso 3: Obtener un par de AccessKey temporal y un token de STS
Desde el backend de su aplicación, invoque la operación AssumeRole de STS para obtener credenciales temporales. Utilice uno de los siguientes métodos:
Reemplace los marcadores de posición en el código de ejemplo con sus valores reales:
String akId = "<your-access-key-id>";
String ak = "<your-access-key-secret>";
String roleArn = "<your-role-arn>";
|
Placeholder |
Description |
Where to find it |
|
|
ID de AccessKey del usuario de RAM creado en el Paso 1 |
Consola de RAM > Users > Detalles del usuario |
|
|
Secreto de AccessKey del usuario de RAM creado en el Paso 1 |
Guardado durante el Paso 1 (se muestra solo una vez) |
|
|
Nombre de recurso de Alibaba Cloud (ARN) del rol de RAM creado en el Paso 2 |
Consola de RAM > Roles > Detalles del rol |
Paso 4: Obtener un token de inicio de sesión
Invoque la operación GetSigninToken para intercambiar las credenciales temporales del Paso 3 por un token de inicio de sesión.
El token de STS puede contener caracteres especiales. Codifique el token en formato URL antes de incluirlo en la solicitud.
http://signin4service.alibabacloud.com/federation?Action=GetSigninToken
&AccessKeyId=<temporary-access-key-id>
&AccessKeySecret=<temporary-access-key-secret>
&SecurityToken=<sts-token>
&TicketType=mini
Agregue el parámetro &TicketType=mini únicamente si su aplicación web está desplegada en una plataforma en la nube de socios.
Paso 5: Construir una URL que no requiera inicio de sesión
Combine el token de inicio de sesión del Paso 4 con la URL de la página de la consola para construir una URL que no requiera inicio de sesión.
-
Obtenga la URL de la página de la consola de destino. Por ejemplo, la página Applications correspondiente a la región China (Hangzhou):
https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou -
(Opcional) Agregue parámetros de diseño a la URL de la página de la consola para ocultar elementos de navegación:
Parameter
Effect
Example
hideTopbar=trueOculta la barra de navegación superior
https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou?hideTopbar=truehideSidebar=trueOculta el panel de navegación izquierdo
https://trace4servims.console.alibabacloud.com/#/overview/cn-hangzhou?hideSidebar=truePara ocultar ambos elementos, combine los parámetros:
?hideTopbar=true&hideSidebar=true -
Construya la URL que no requiere inicio de sesión:
http://signin.alibabacloud.com/federation?Action=Login &LoginUrl=<your-login-failure-redirect-url> &SigninToken=<logon-token> &Destination=<console-page-url>Parameter
Description
LoginUrlLa URL a la que se redirige a los usuarios si falla el inicio de sesión (devuelve HTTP 302)
SigninTokenEl token de inicio de sesión obtenido en el Paso 4
DestinationLa URL de la página de la consola de Managed Service for OpenTelemetry (con parámetros de diseño opcionales)
Gestionar la caducidad del token
Los tokens temporales de STS caducan después de 3 horas. Para mantener un acceso ininterrumpido:
Genere un nuevo token de inicio de sesión en cada solicitud de página desde el backend de su aplicación.
Realice una redirección 302 hacia la URL actualizada que no requiere inicio de sesión.
Resultado
La página de la consola de Managed Service for OpenTelemetry se mostrará dentro de su aplicación web.
Código de ejemplo
Descargue el código de ejemplo completo (Java). Este ejemplo integra la página Applications de la consola de Managed Service for OpenTelemetry en una aplicación web autogestionada.