Autenticación
15 min
el servidor de autenticación de brightsign admite single sign on (sso), multi factor authentication (mfa) y otros protocolos estándar como openid connect, oauth 2 0 y saml hemos implementado el “ flujo de credenciales de cliente ” de oauth2 para permitir que los clientes autogestionen sus credenciales (client id y secret) y para permitir un control más granular sobre lo que los tokens resultantes pueden hacer, mejorando la seguridad las client credentials se utilizan cuando los clientes (aplicaciones y servicios) desean obtener acceso en su propio nombre en lugar de en nombre de un usuario por ejemplo, estas credenciales pueden ser útiles para servicios en segundo plano que aplican cambios al sistema en general en lugar de hacerlo para un usuario específico flujo de trabajo de la api este documento describe los pasos necesarios para usar nuestras apis junto con ejemplos de código crear client credentials para crear nuevas credenciales de cliente 1\ inicie sesión en brightsign control en control bsn cloud 2\ \<font color="hsl(var( ab gray 900))">seleccione una de sus redes\</font> tenga en cuenta que la lista de funciones disponibles para sus aplicaciones depende de su nivel de acceso en la red seleccionada una vez seleccionada la red, ingresará a la pantalla home vaya a administración > aplicaciones y seleccione agregar aplicación 5\ introduzca un nombre y una descripción para la aplicación, y seleccione las funciones a las que su aplicación necesita acceder de acuerdo con las mejores prácticas de seguridad, debe seleccionar únicamente las funciones que correspondan a los métodos de brightsign cloud api que la aplicación relacionada realmente utiliza para obtener información sobre qué scopes se requieren para cada llamada a la api, consulte la documentación de acceso a funciones docid\ uu zupqkquf54rpi79xl1 y api de bsn cloud docid\ htjt91tjlkym96cdoxsds 6\ haga clic en el botón guardar se mostrarán el nuevo client id y secret 7\ copie estos valores y almacénelos de forma segura, idealmente en un administrador de contraseñas no volverán a mostrarse después de salir de esta pantalla los secretos expiran cada 180 días debe rotarlos en la fecha de expiración o antes notas se pueden crear múltiples aplicaciones el nombre, la descripción y las funciones permitidas de la aplicación pueden editarse o eliminarse los secretos pueden rotarse (consulte más abajo) obtener token de acceso para realizar cualquier llamada a la api de brightsign cloud, se debe obtener un token de acceso desde el endpoint de token https //auth bsn cloud/realms/bsncloud/protocol/openid connect/token tenga en cuenta que, de acuerdo con rfc6749 section 4 4 2 https //www rfc editor org/rfc/rfc6749#section 4 4 2 , las credenciales de cliente emitidas deben proporcionarse utilizando el esquema de autenticación "basic" en formato base64 (como en los ejemplos a continuación) http obtener token de acceso post https //auth bsn cloud/realms/bsncloud/protocol/openid connect/token content type application/x www form urlencoded authorization basic \[base64 encoded clientid and secret] accept application/json grant type=client credentials typescript obtener token de acceso const clientid = '\[clientid]'; const clientsecret = '\[clientsecret]'; const clientcredentials = buffer from(`${clientid} ${clientsecret}`) tostring('base64'); const request = formbody({ 	grant type 'client credentials' }) tostring(); const headers = { 	'content type' 'application/x www form urlencoded', 	'authorization' `basic ${client credentials}`, 	'accept' "application/json", }; const response = await axios post(`https //auth bsn cloud/realms/bsncloud/protocol/openid connect/token`, request, { headers }); return response data as { accesstoken string }; códigos de respuesta esperados código descripción \<font color="#9a0808">`200`\</font> \<font color="#9a0808">correcto\</font> \<font color="#089a4d">`401`\</font> \<font color="#089a4d">no autorizado credenciales no válidas\</font> datos de respuesta destacables propiedad descripción access token token de acceso que se utilizará con las llamadas api hasta su vencimiento expires in tiempo hasta el vencimiento del token de acceso alcance scopes permitidos configurar red cada aplicación que registre tiene acceso a todas las redes de las que actualmente es miembro, por lo que cada vez que obtenga un token de acceso, el siguiente paso es seleccionar la red a la que desea acceder en el alcance de esta sesión para este propósito, necesita llamar al método "put /2022/06/rest/self/session/network/", proporcionar el token de acceso emitido en el paso anterior y el nombre o identificador de la red seleccionada http seleccionar red por id put https //api bsn cloud/2022/06/rest/self/session/network content type application/json authorization bearer \[accesstoken] accept application/json { "id" \[networkid] } http seleccionar red por nombre put https //api bsn cloud/2022/06/rest/self/session/network content type application/json authorization bearer \[accesstoken] accept application/json { "name" "\[networkname]" } typescript seleccionar red por id o nombre const network = "\[networkid|networkname]"; const body = 	isnumber(network) ? { id network } 	isstring(network) ? { name network } 	network; return await this put(`2022/06/rest/self/session/network`, body, \["vnd bsn error"]); códigos de respuesta esperados código descripción \<font color="#089a4d">`204`\</font> \<font color="#089a4d">ok sin contenido\</font> \<font color="#9a0808">`400`\</font> \<font color="#9a0808">solicitud incorrecta la red no existe\</font> \<font color="#9a0808">`401`\</font> \<font color="#9a0808">no autorizado el token de acceso ha expirado\</font> usar la api una vez que se selecciona la red, la aplicación actual tiene acceso a todos sus recursos, pero está limitada por los permisos del usuario que la registró, así como por las funcionalidades seleccionadas durante el registro tenga en cuenta que cada vez que una aplicación emite un nuevo token de acceso, es necesario seleccionar nuevamente la red de destino si se cambian los permisos de un usuario que registró una aplicación determinada o si este usuario se elimina de la red de destino, los recursos disponibles para una aplicación determinada cambian en consecuencia cuando se recibe un código de error 401 , esto indica que el token de acceso ha expirado entonces debe repetir el proceso anterior para obtener un nuevo token de acceso y configurar una red en algunos escenarios, podría resultar óptimo obtener un nuevo token de acceso antes de que expire puede utilizar el valor expires in devuelto en la carga útil de obtener token de acceso para calcular el tiempo de expiración y obtener previamente un nuevo token con anticipación si se recibe un código de error 403 , esto indica que su token de acceso no está autorizado para realizar esta solicitud y debe verificar que los alcances de la aplicación estén especificados correctamente códigos de respuesta esperados código descripción \<font color="#089a4d">`200`\</font> \<font color="#089a4d">ok\</font> \<font color="#9a0808">`401`\</font> \<font color="#9a0808">no autorizado el token de acceso ha expirado\</font> \<font color="#9a0808">`403`\</font> \<font color="#9a0808">prohibido el token de acceso no tiene permiso para realizar la solicitud\</font> rotación de secretos de cliente los secretos de cliente expiran cada 180 días los secretos pueden rotarse con más frecuencia para obtener seguridad adicional puede rotar los secretos automáticamente mediante la api o manualmente mediante la interfaz de usuario si se sospecha que un secreto está comprometido, debe rotarlo inmediatamente usando la opción rotar secreto en la interfaz de usuario la rotación devolverá un nuevo secreto inmediatamente; este debe almacenarse de forma segura el secreto anterior continuará funcionando durante un tiempo limitado, pero debe cambiar su aplicación al nuevo secreto lo antes posible http rotar secreto del cliente para rotar el secreto del cliente mediante la api se proporciona el siguiente método reemplace {id} con el id de la aplicación, no el id del cliente post https //api bsn cloud/2022/06/rest/self/applications/{id}/secret/ content type application/json authorization bearer \[accesstoken] accept application/json códigos de respuesta esperados código descripción \<font color="#089a4d">`200`\</font> \<font color="#15803d">éxito el secreto del cliente existente fue invalidado y se proporciona un nuevo secreto en la respuesta\</font> \<font color="#9a0808">`401`\</font> \<font color="#9a0808">no autorizado el token de acceso ha expirado\</font> \<font color="#9a0808">`403`\</font> \<font color="#9a0808">prohibido el token de acceso no tiene permiso para realizar la solicitud\</font> preguntas frecuentes ¿cómo obtengo un nuevo id y secreto de cliente? necesitará usar brightsign control para crear una nueva aplicación y obtener un nuevo id y secreto de cliente ¿cómo sé qué scopes asignar a mi aplicación? para obtener información sobre qué scopes se requieren para cada llamada api, consulte la documentación de la api de bsn cloud docid\ htjt91tjlkym96cdoxsds ¿cuánto dura la vida útil del nuevo token de acceso? 5 minutos 30 segundos ¿cuánto dura la vida útil de la sesión de red? 24 horas ¿se admiten refresh tokens? no, los refresh tokens no son compatibles con el oauth2 “ flujo de credenciales de cliente ” ¿puedo seguir usando el antiguo endpoint del token de la api heredada con un nuevo id y secreto de cliente? usted no debe hacer esto el endpoint del token de la api heredada dejó de funcionar el 23 de febrero de 2026 ¿qué sucede si sospecho que mi secreto de cliente ha sido comprometido? debe usar brightsign control para rotar el secreto y luego continuar usando el secreto anterior hasta que deje de funcionar; después, use el nuevo secreto ¿existen otras formas de manejar un secreto de cliente comprometido? sí, simplemente puede eliminar la aplicación esto destruirá el id y secreto de cliente existentes puede crear otra aplicación para obtener un nuevo id y secreto de cliente ¿los secretos de cliente expiran? sí, los secretos de cliente expiran cada 180 días debe rotarlos automática o manualmente antes o en la fecha de expiración información adicional para obtener más información, contacte con support\@brightsign biz mailto\ support\@brightsign biz