Rest 有没有一种不用用户登录就通过api在Azure数据目录中注册数据资产的方法?

Rest 有没有一种不用用户登录就通过api在Azure数据目录中注册数据资产的方法?,rest,.net-core,azure-active-directory,azure-data-catalog,Rest,.net Core,Azure Active Directory,Azure Data Catalog,我的应用程序获得一个令牌,可以像搜索一样对ADC进行api调用。但是注册新资产的请求失败,因为字段“LastRegisterBy”不能为null/空,并且必须与当前用户相对应。 但是,令牌不包含任何用户信息(AccessToken().Result.UserInfo.DisplayableId为null) 我主要关注MS提供的入门项目() 但是我用 AcquireTokenAsync(resourceUri,clientCredential)。ConfigureAwait(false) 而不是

我的应用程序获得一个令牌,可以像搜索一样对ADC进行api调用。但是注册新资产的请求失败,因为字段“LastRegisterBy”不能为null/空,并且必须与当前用户相对应。 但是,令牌不包含任何用户信息(AccessToken().Result.UserInfo.DisplayableId为null)

我主要关注MS提供的入门项目()

但是我用

AcquireTokenAsync(resourceUri,clientCredential)。ConfigureAwait(false)

而不是

AcquireTokenAsync(resourceUri、clientId、新Uri(重定向Uri)、新平台参数(PromptBehavior.Always))

这样就没有人需要输入他的凭证。目标是在ssis包中运行代码,该包将每周执行一次,以自动捕获数据中的任何更新

以下是我的代码大纲:

类程序
{
静态字符串clientifromazuRegistration=“”;
静态字符串clientSecret=“”;
静态AuthenticationResult authResult=null;
静态字符串catalogName=“catalog”;
静态void Main(字符串[]参数)
{
var authResult=AccessToken();
字符串upn=authResult.Result.UserInfo.DisplayableId;
var id=RegisterDataAsset(authResult,SampleJson(“test”,upn));
}
静态异步任务AccessToken()
{
如果(authResult==null)
{
//数据目录API的资源Uri
字符串resourceUri=”https://api.azuredatacatalog.com";
//要了解如何注册客户端应用程序并获取客户端ID,请参阅https://msdn.microsoft.com/en-us/library/azure/mt403303.aspx#clientID   
字符串clientId=clientidfromazu;
字符串clientS=clientSecret;
//创建AuthenticationContext实例以获取Azure访问令牌
var权限=”https://login.microsoftonline.com/52497ec2-0945-4f55-8021-79766363dd96";
var authContext=新的AuthenticationContext(授权);
var clientCredential=新的clientCredential(clientId,clientS);
//调用AcquireToken从Azure Active Directory令牌颁发终结点获取Azure令牌
//AcquireToken接受Azure AD在您注册客户端应用程序时创建的客户端Id。
authResult=await authContext.AcquireTokenAsync(resourceUri,clientCredential).ConfigureAwait(false);
}
返回结果;
}
静态字符串RegisterDataAsset(任务authResult,字符串json){
...
}
静态HttpWebResponse SetRequestAndGetResponse(HttpWebRequest请求,任务authResult,字符串负载=null){
...
}
静态字符串SampleJson(字符串名称、字符串upn){
...}
使用upn=authResult.Result.UserInfo.DisplayableId;我得到:

{“error”:{“code”:“InvalidPropertyValue”,“message”:“其中一个属性的输入值无效。路径:'properties.lastRegisteredBy.upn'。详细信息:值不能为null、空或完全由空格组成。”}

Wit upn=”test@user“:


{“error”:{“code”:“invalidLastrRegisteredby”,“message”:“LastRegisteredBy与当前用户不同。”}

我找到了解决方案,非常简单:


该应用程序的用户名是:clientdfromazureregistration+“@”+tenantId。

我找到了解决方案,非常简单:

该应用程序的用户名为:clientdfromazueregistration+“@”+tenantId