Azure active directory 如何使用服务主体访问azure digital twin API?
我的用例是每当我在Azure函数中从Cosmos DB获得触发器时,需要与Azure digital twin API进行交互,而无需任何人工交互。Azure active directory 如何使用服务主体访问azure digital twin API?,azure-active-directory,azure-functions,azure-function-app,azure-digital-twins,Azure Active Directory,Azure Functions,Azure Function App,Azure Digital Twins,我的用例是每当我在Azure函数中从Cosmos DB获得触发器时,需要与Azure digital twin API进行交互,而无需任何人工交互。 从下面的链接中,我了解到我们可以使用服务原则来实现它。 但我不知道如何使用数字双API验证服务主体。 1) 需要什么类型的身份验证以及流程将如何进行? 2) 如果是Oauth2,访问digital twin的授权类型和范围是什么 提前谢谢 1) 需要什么类型的身份验证,以及流将如何进行 正如你提到的帖子,你应该使用。 主要流程如下所示: 2) 如
从下面的链接中,我了解到我们可以使用服务原则来实现它。
但我不知道如何使用数字双API验证服务主体。
1) 需要什么类型的身份验证以及流程将如何进行?
2) 如果是Oauth2,访问digital twin的授权类型和范围是什么 提前谢谢 1) 需要什么类型的身份验证,以及流将如何进行 正如你提到的帖子,你应该使用。 主要流程如下所示: 2) 如果是Oauth2,访问的授权类型和范围是什么 数字孪生兄弟 您可以参考以下内容: 对于
范围
,它应该是您想要访问的数字孪生API。(如空间、设备、用户或传感器)。看
1) 需要什么类型的身份验证,以及流将如何进行
正如你提到的帖子,你应该使用。
主要流程如下所示:
2) 如果是Oauth2,访问的授权类型和范围是什么
数字孪生兄弟
您可以参考以下内容:
对于范围
,它应该是您想要访问的数字孪生API。(如空间、设备、用户或传感器)。请参阅。使用Digital Twins API时,有一种(几乎)未经记录的方式,而无需代表流。我将其用于自动化任务,以操作ADT的内容或为某些应用程序提供数据的只读视图。这一切都从角色分配开始。请参阅YAML中的这段代码,我在第一次创建ADT实例时使用它来配置ADT实例
- roleId: 98e44ad7-28d4-4007-853b-b9968ad132d1 # Space Administrator
objectId: abcd1234-5556-44a2-1234-402dbd999619 # Service Principal object ID
objectIdType: ServicePrincipalId
tenantId: 1234567-8901-2345-abcd-123456789 # Azure subscription tenant
ServicePrincipalId对象类型在上进行了描述,但在任何示例中都不再提及。此代码段授予服务主体的空间管理员权限。然后,您可以使用客户机密码检索允许您访问ADT的访问令牌。在Azure Active Directory中为ADT注册应用程序时,请转到证书和机密并创建新的客户端机密。
下一步是检索服务主体的objectId,这不是应用程序注册的objectId。当您转到应用程序注册的Overview选项卡时,您可以复制应用程序ID并在云控制台中执行以下命令:
az ad sp show --id {the id you copied}
这将显示有关您的服务主体的许多详细信息,包括被拒绝的服务主体。把这个也抄下来。
要检索访问令牌,您需要4件事:
var authContext = new AuthenticationContext({Authority});
var clientCredential = new ClientCredential({ClientId}, {ClientSecret});
var result = await authContext.AcquireTokenAsync({DigitalTwinsAppId}, clientCredential);
return result.AccessToken;
将它添加到您的标题中(下面的HttpClient示例),您就可以开始了
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
使用Digital Twins API时,有一种(几乎)没有文档记录的方式,而没有代表流。我将其用于自动化任务,以操作ADT的内容或为某些应用程序提供数据的只读视图。这一切都从角色分配开始。请参阅YAML中的这段代码,我在第一次创建ADT实例时使用它来配置ADT实例
- roleId: 98e44ad7-28d4-4007-853b-b9968ad132d1 # Space Administrator
objectId: abcd1234-5556-44a2-1234-402dbd999619 # Service Principal object ID
objectIdType: ServicePrincipalId
tenantId: 1234567-8901-2345-abcd-123456789 # Azure subscription tenant
ServicePrincipalId对象类型在上进行了描述,但在任何示例中都不再提及。此代码段授予服务主体的空间管理员权限。然后,您可以使用客户机密码检索允许您访问ADT的访问令牌。在Azure Active Directory中为ADT注册应用程序时,请转到证书和机密并创建新的客户端机密。
下一步是检索服务主体的objectId,这不是应用程序注册的objectId。当您转到应用程序注册的Overview选项卡时,您可以复制应用程序ID并在云控制台中执行以下命令:
az ad sp show --id {the id you copied}
这将显示有关您的服务主体的许多详细信息,包括被拒绝的服务主体。把这个也抄下来。
要检索访问令牌,您需要4件事:
var authContext = new AuthenticationContext({Authority});
var clientCredential = new ClientCredential({ClientId}, {ClientSecret});
var result = await authContext.AcquireTokenAsync({DigitalTwinsAppId}, clientCredential);
return result.AccessToken;
将它添加到您的标题中(下面的HttpClient示例),您就可以开始了
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
嗨,你有机会了解我的答案吗?你的问题被重新讨论了吗?嗨,你有机会了解我的答案吗?你的问题被重新讨论了吗?