I tried the IdentityServer4 with ClientSecret and using access token to access Web API. It worked super cool but there is one thing bother me now. For me the process flow like these:
- Client(Console application in my case) use
client idandclient secretto get theaccess tokenfrom/connect/tokenpath which in turn getting from/.well-known/openid-configurationpath. Auth servervalidate and sign the token using temporary signing key - private key(I using developer temporary signing key).Resource servergetting the public key from ./well-known/openid-configuration to validate the access token. I refer from this
The Authorization Server will sign tokens with a key. Resource Server(s) should verify that the token's integrity with a key. Together they form an asymmetric (e.g. public/private) key pair. By default IdentityServer will publish the public key for verifying tokens on the /.well-known/openid-configuration endpoint.
Resource serverreturn 401 status code or appropriate data whether the access token validated or not.
So my question is that because the signing access token and validating it using only the asymmetric key. Why do we need the client secret? And if we need it, where the client secret will be send through the authorization process?
Sorry for bad English :) Thanks.