11from typing import Union , Tuple , Callable , Any , Awaitable , Optional , List
22
3+ from redis .auth .idp import IdentityProviderInterface
34from redis .credentials import StreamingCredentialProvider
45from redis .auth .token_manager import TokenManagerConfig , RetryPolicy , TokenManager , CredentialsListener
56
1617class EntraIdCredentialsProvider (StreamingCredentialProvider ):
1718 def __init__ (
1819 self ,
19- idp_config : Union [ ManagedIdentityProviderConfig , ServicePrincipalIdentityProviderConfig ] ,
20+ identity_provider : IdentityProviderInterface ,
2021 token_manager_config : TokenManagerConfig ,
2122 initial_delay_in_ms : float = 0 ,
2223 block_for_initial : bool = False ,
2324 ):
2425 """
25- :param idp_config : Identity provider specific configuration.
26+ :param identity_provider : Identity provider instance
2627 :param token_manager_config: Token manager specific configuration.
2728 :param initial_delay_in_ms: Initial delay before run background refresh (valid for async only)
2829 :param block_for_initial: Block execution until initial token will be acquired (valid for async only)
2930 """
30- if isinstance (idp_config , ManagedIdentityProviderConfig ):
31- idp = _create_provider_from_managed_identity (idp_config )
32- else :
33- idp = _create_provider_from_service_principal (idp_config )
34-
31+ self ._idp = identity_provider
3532 self ._token_mgr = TokenManager (
36- idp ,
33+ self . _idp ,
3734 token_manager_config
3835 )
3936 self ._listener = CredentialsListener ()
@@ -117,8 +114,8 @@ def create_from_managed_identity(
117114 id_value = id_value ,
118115 kwargs = kwargs
119116 )
120-
121- return EntraIdCredentialsProvider (managed_identity_config , token_manager_config )
117+ idp = _create_provider_from_managed_identity ( managed_identity_config )
118+ return EntraIdCredentialsProvider (idp , token_manager_config )
122119
123120
124121def create_from_service_principal (
@@ -160,5 +157,5 @@ def create_from_service_principal(
160157 app_kwargs = app_kwargs ,
161158 token_kwargs = token_kwargs ,
162159 )
163-
164- return EntraIdCredentialsProvider (service_principal_config , token_manager_config )
160+ idp = _create_provider_from_service_principal ( service_principal_config )
161+ return EntraIdCredentialsProvider (idp , token_manager_config )
0 commit comments