0

組織のAzure Data Catalogを使用しています。私はカタログの作成者/管理者/所有者ではありませんが、Web インターフェイスからカタログを登録/削除するアクセス権があります。

Azure Data Catalog に REST API を使用したいと考えています。私の許可レベルで可能ですか?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) 権限がありません。c:\users\naghimir\documents\visual studio 2015\Projects\HRBIADCAPI\HRBIADCAPI\Program.cs:line 32 の HRBIADCAPI.Program.Main(String[] args) の System.Net.HttpWebRequest.GetResponse() で

問題は、データ カタログを読み書きするために作成されたクライアント プログラム (Azure Data Factory で行った) へのアクセス権を与えていないことだと思いますが、その手順はドキュメントにもありません。

Azure Data Catalog API を使用するには、所有者である必要がありますか? または、所有者にアクセス許可を要求できますか?

4

1 に答える 1

1

説明に基づいて、OAuth 2.0 コード付与フローを使用してアプリに付与し、ユーザーに Azure Data Catalog の操作を委任していました。

リクエストが正常に機能するようにするには、次の図のようにアプリにスコープを付与する必要があります。 ここに画像の説明を入力

また、アプリはユーザーの許可を委任するだけなので、ユーザーがリソースを手動で操作するのに十分な許可を持っていることを確認してください。

于 2016-10-25T06:43:19.243 に答える