Ошибка вызова IdentityServer4 OidcClient.LoginAsync - PullRequest
0 голосов
/ 30 июня 2019

Я использую IdentityServer4 в Azure и подключаю приложение Xamarin Forms к серверу.Когда я выполняю приведенный ниже код,

_result = await _client.LoginAsync(new LoginRequest());

я получаю следующую ошибку: InvalidOperationException: ошибка при загрузке документа обнаружения: произошла ошибка набора ключей Настройка:

Я создалУправляемый идентификатор для веб-приложения (приложение IdentityServer4).

Я также создал самозаверяющий сертификат в хранилище ключей Azure, а затем создал политику доступа, назначающую полный доступ к управляемой идентификации для ключей, секретов и сертификатов в хранилище ключей.

Когда вВ режиме отладки следующий код выполняется успешно, т.е. получение сертификата из хранилища ключей Azure:

private async Task<X509Certificate2> GetCertificate()
    {
        AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
        KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
        SecretBundle secret =
            await keyVaultClient.GetSecretAsync("https://...");

        var privateKeyBytes = Convert.FromBase64String(secret.Value);

        return new X509Certificate2(privateKeyBytes, (string)null);
    }

На этом этапе я вошел в Visual Studio 2019 с использованием моей учетной записи Microsoft, которая такжеглобальная административная учетная запись в моей учетной записи Azure.

Насколько я понимаю, мое веб-приложение работает под созданной учетной записью Managed Identity и поэтому должно иметь доступ к хранилищу ключей, и я подозреваю, что оно не работает.так, как я ожидаю.Есть идеи?

...