Isn't this just allowing anyone to access your API regardless of
whether they have the secret key or not?
Sì, la concessione implicita non ha la capacità di autenticare il client, cosa che le altre sovvenzioni possono fare - introducendo ulteriormente i vettori di attacco che l'autorizzazione concede, che richiede un segreto client, non hanno esperienza.
Il caso d'uso per la concessione implicita è l'autenticazione degli utenti finali e l'accesso da parte del cliente a una risorsa (probabilmente di proprietà dell'utente finale) e dovrebbe essere utilizzato dalle App SPA (e qualsiasi altra app basata su Javascript / agente utente).
Se l'autenticazione del client è importante, è necessario implementare una diversa sovvenzione.
La concessione implicita è più sicura nel senso che non espone il segreto del client, che può essere condiviso tra le tue applicazioni interne.
Ecco una buona lettura su quando utilizzare che (OAuth2) concede e OIDC scorre link