[[_access_types]] = Client Access Types When you create a Client in admin console you may be wondering what the "Access Types" are. confidential:: Confidential access type is for clients that need to perform a browser login and that you want to require a client secret when they turn an access code into an access token, (see http://tools.ietf.org/html/rfc6749#section-4.1.3[Access Token Request] in the OAuth 2.0 spec for more details). The advantages of this is that it is a little extra security. Since Keycloak requires you to register valid redirect-uris, I'm not exactly sure what this little extra security is though. :) The disadvantages of this access type is that confidential access type is pointless for pure Javascript clients as anybody could easily figure out your client's secret! public:: Public access type is for clients that need to perform a browser login and that you feel that the added extra security of confidential access type is not needed. FYI, Pure javascript clients are by nature public. bearer-only:: Bearer-only access type means that the application only allows bearer token requests. If this is turned on, this application cannot participate in browser logins. direct access only:: You would also see a "Direct Access Only" switch when creating the Client. This switch is for clients that only use the <<_direct_access_grants,Direct Access Grant>> protocol to obtain access tokens.