Неавторизованный каталог данных Azure rest api

Я использую каталог данных Azure моей организации. Я не являюсь создателем / администратором / владельцем каталога, но у меня есть доступ для регистрации / удаления каталогов из веб-интерфейса.

Я хочу использовать остальные API для каталога данных Azure. Возможно ли это с моим уровнем разрешения? Я выполнил все шаги из https://msdn.microsoft.com/en-us/library/mt428033.aspx и написал следующий фрагмент кода:

class Program
{
    static void Main(string[] args)
    {
        string url = "https://api.azuredatacatalog.com/catalogs/DefaultCatalog/search/search?searchTerms=My_Server&count=10&startPage=1&api-version=2016-03-30";

        HttpWebRequest request = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest;


        Console.WriteLine(AccessToken().CreateAuthorizationHeader());


        try
        {
            WebResponse response = request.GetResponse();
            Console.WriteLine(response.ContentLength);
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }

        Console.ReadKey();
    }

    static AuthenticationResult AccessToken()
    {
        string resourceUri = "https://datacatalog.azure.com";

        string clientId = "my-client-id";

        string redirectUri = "my-redirect-uri";

        string authorityUri = "https://login.windows.net/common/oauth2/authorize";
        AuthenticationContext authContext = new AuthenticationContext(authorityUri);

        return authContext.AcquireToken(resourceUri, clientId, new Uri(redirectUri), PromptBehavior.RefreshSession);

    }
}

и когда я пытаюсь запустить поиск из API, я получаю следующую ошибку:

System.Net.WebException: удаленный сервер возвратил ошибку: (401) не авторизован. в System.Net.HttpWebRequest.GetResponse() в HRBIADCAPI.Program.Main(String[] args) в c:\users\naghimir\documents\visual studio 2015\Projects\HRBIADCAPI\HRBIADCAPI\Program.cs: строка 32

Теперь я думаю, что проблема в том, что у меня нет доступа к клиентской программе, созданной для чтения / записи каталога данных (что я делал в фабрике данных Azure), но этот шаг также отсутствует в документации.

Нужно ли быть владельцем или можно запросить разрешение у владельца на использование API каталога данных Azure?

1 ответ

Основываясь на описании, вы использовали поток предоставления кода OAuth 2.0, чтобы предоставить приложению право делегировать пользователю возможность управлять каталогом данных Azure.

Чтобы убедиться, что запрос работает хорошо, нам нужно предоставить область приложения, как показано ниже: введите описание изображения здесь

А поскольку приложение только делегирует права пользователей, убедитесь, что у пользователя достаточно прав для управления ресурсом вручную.

Другие вопросы по тегам