Hello
We are planning to get a lot of devices, identifyable by individual certificates, into an
IOT-system being designed and developed at the moment. We choosed to authenticate all
actors (users, software components and devices as well) by OIDC-tokens and (pre)decided to
use Keycloak as ID provider. User and software components are quite straightforward to
handle with Keycloak (as Keycloak users with the help of a user federation provider &
id brokerage and for applications as Keycloak clients respectively). But I am not sure of
how to represent our devices (we want to support hundreds of thousands of them later on!)
by Keycloak means.
It seems that we essentially have 2 possiblities to register a device in Keycloak
- As a user
- As a client
By representing devices as Keycloak clients we might take advantage of the ServiceAccount
(Oauth-Client Credential) flow and become able to implement it via (dynamic!) registration
and it and seems, that we will even be able to authenticate our device by their
certificates by choosing "Signed Jwt" as authenticator option.
My question is, if it would be a good idea to register a very big amount of devices as
Keycloak clients with regards to performance and manageability. In principle I would
prefer a user-representation (faciliting usage of user federation provider & id
brokerage for instance), but as far as I understood, the appropriate flow would be Direct
Access (ResourceOwnerPassword Credentials) and here we can only deal with
username/password instead of certificates.
Do you have any suggestions or hints (even the conclusion, that Keycloak is not the
suitable ID-provider-implementation for large-scale IOT-systems)?
Best regards, Eduard Matuszak
Show replies by date