I have provided user assigned identity with data owner access under redis users, and am using the same identity to call from my web app service.
am still getting access issue error like this -
From logs am able to see token generation is successful
{"traceId":"400018f1-0001-d200-b63f-84710c7967bb","errorCode":"500","errorDetail":"The message timed out in the backlog attempting to send because no connection became available (1000ms) - Last Connection Exception: AuthenticationFailure on virtuoso-mcsredis-buddy.redis.cache.windows.net:6380/Interactive, Flushed/ComputeResult, last: ECHO, origin: SetResult, outstanding: 0, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: ConnectedEstablishing, mgr: 3 of 4 available, last-heartbeat: never, global: 0s ago, v: 2.7.17.27058, command=EXISTS, timeout: 1000, inst: 12, qu: 0, qs: 0, aw: False, bw: CheckingForTimeout, last-in: 0, cur-in: 0, sync-ops: 0, async-ops: 2, serverEndpoint: virtuoso-mcsredis-buddy.redis.cache.windows.net:6380, conn-sec: n/a, aoc: 0, mc: 1/1/0, mgr: 4 of 4 available, clientName: wn1sdwk000YFP(SE.Redis-v2.7.17.27058), IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=2,Free=1021,Min=2,Max=1023), POOL: (Threads=14,QueuedItems=0,CompletedItems=1130,Timers=39), v: 2.7.17.27058 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts) , at MCSBilledRevenue.Infrastructure.Storage.CacheRepository.GetAsync[T](CacheType cacheType, String key, Func`1 acquire) in D:\\a\\_work\\1\\s\\src\\MCSBilledRevenue.Infrastructure\\Caching\\CacheRepository.cs:line 147\r\n at MCSBilledRevenue.Core.Services.UserService.GetMetadataAsync() in D:\\a\\_work\\1\\s\\src\\MCSBilledRevenue.Core\\Services\\UserService.cs:line 188\r\n at MCSBilledRevenue.API.Controllers.UserController.GetMetadataAsync() in /_/src/MCSBilledRevenue.API/Controllers/UserController.cs:line 165\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)"}