Closed ManelAtares closed 2 weeks ago
This looks like you are using some kind of extension/add-on to use Redis for the operational store? We only supply an Entity Framework based implementation of the operational store. Are you using a Redis implementation directly or some package to make Entity Framework work with Redis?
Also an additional note: You've written that you are running IdentityServer 6 on .NET 6. Those platforms go out of support in a week, so it is recommended to upgrade: https://duendesoftware.com/products/support
Thanks, my mistake. I inherited the project and assumed it was part of the suite. It's an extension for using Redis Store. Thanks for the heads-up on the end of support.
Which version of Duende IdentityServer are you using?
6.3.10
Which version of .NET are you using?
6
Describe the bug
This is not a bug; it’s a question.
We are using Duende Identity Server to authenticate a mobile app, and everything is working smoothly. However, we have a question regarding the storage of refresh tokens.
We are using Redis as a distributed system for storing these tokens, and it is configured as a cluster. Currently, all keys are saved in the same slot because we are using {} as part of the key prefix:
identityServer .AddOperationalStore(options => { options.RedisConnectionMultiplexer = redisConnexion; options.KeyPrefix = $"{{ourPrefix}"; })
When we attempt to remove the braces, we receive the following exception:
"Multi-key operations must involve a single slot; keys can use hash tags to help this, i.e. {/users/12345}/account and {/users/12345}/contacts will always be in the same slot"
According the documentation this is the expected behavior since multi-key operations must use the same slot.
However, is there a way to take advantage of sharding by distributing groups of keys across different slots? Or is the only option to scale up a single machine vertically as our traffic grows?
Additional context
We have starter edition license
Thank you!