組織の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 を使用するには、所有者である必要がありますか? または、所有者にアクセス許可を要求できますか?