Esto es más o menos lo contrario de lo que se pregunta en esta pregunta .
Recientemente agregué SSO con SAML a una aplicación web SaaS que hace que dicha aplicación sea el Proveedor de servicios (SP). Esto se hace para que los clientes (empresas) puedan usar su Proveedor de Identidad (IdP) existente, de modo que los usuarios (los empleados de las empresas) no tengan que mantener credenciales en nuestra aplicación web, sino que simplemente puedan continuar usando sus cuentas locales existentes.
En SAML, el SP envía una solicitud de autenticación al IdP que responde con una afirmación que proporciona información de autenticación sobre el usuario que desea iniciar sesión. Para que ambas partes (SP e IdP) se aseguren de esa solicitud y respuesta no son fabricados por un golpeador de alambre, están firmados con una clave privada. El certificado utilizado para verificar las firmas de las solicitudes y respuestas se intercambió de antemano como parte del intercambio de metadatos SAML que se realiza manualmente por los administradores de las partes involucradas.
La pregunta es: ¿Hay desventajas significativas para la seguridad de este sistema si utilizo el mismo par de claves públicas / privadas para todos los clientes o es recomendable pasar por los aros de crear un par de claves separado para cada uno? cliente individual?
Estoy preguntando explícitamente sobre la seguridad de este problema. Sé que si tengo que intercambiar la clave debido a un problema de seguridad, todos los clientes deberán actualizar su IdP para incorporar el nuevo certificado. Todavía no me he decidido, pero me inclino a pensar que este es un riesgo aceptable. Esas claves serían almacenadas una junto a la otra; una violación de cualquier descripción requeriría nuevas claves para todos los clientes de todos modos.