public async Task <AuthenticationResult> AcquireTokenSilentAsync(string authority, string resource, string clientId, UserIdentifier objectUserId)
        {
            AuthenticationContext authContext;
            AuthenticationResult  authResult;

            authority.AssertNotEmpty(nameof(authority));
            resource.AssertNotEmpty(nameof(resource));
            objectUserId.AssertNotNull(nameof(objectUserId));

            try
            {
                authContext = new AuthenticationContext(authority);

                authResult = await authContext.AcquireTokenSilentAsync(
                    resource,
                    clientId,
                    objectUserId).ConfigureAwait(false);

                return(authResult);
            }
            finally
            {
                authContext = null;
            }
        }