I have some native desktop apps that needs to authenticate as clients with an Authorization Server implementing OAuth2 and OIDC. Since I do not have to impersonate an user on my Authorization Server I've chosen "Client Credentials" as the flow to authenticate them. This way I can authenticate this applications as clients on the Authorization Server.
I was wondering if this flow is suited for a native desktop app or, since I cannot consider this type of applications as confidential clients (I probably do not have a secure way to store the client secret), I should use a different Oauth2 flow that does not include a client_secret.
Does the distinction between public and confidential clients flow make sense regarding the Client Credentials? Or is it fine to have possibly unsecure secrets store while handling a M2M authentication flow?