¿Esto no permite que nadie acceda a tu API independientemente de
¿Tienen la clave secreta o no?
Sí, la concesión implícita carece de la capacidad de autenticar al cliente, lo que pueden hacer las otras subvenciones, introduciendo aún más los vectores de ataque que otorga la autorización, que requieren un secreto del cliente, no experimentados.
El caso de uso para la concesión implícita es la autenticación de los usuarios finales y el acceso por parte del cliente a un recurso (posiblemente propiedad del usuario final) y debe ser utilizado por las aplicaciones SPA (y cualquier otra aplicación basada en el agente de usuario / Javascript).
Si la autenticación del cliente es importante, se debe implementar una subvención diferente.
La concesión implícita es más segura en el sentido de que no expondría el secreto del cliente, que puede compartirse a través de sus aplicaciones internas.
Aquí hay una buena lectura sobre cuándo usar cuáles subvenciones (OAuth2) y flujos OIDC enlace