Azure active directory 是否可以为守护程序应用程序配置Azure Digital Twins API访问权限?

Azure active directory 是否可以为守护程序应用程序配置Azure Digital Twins API访问权限?,azure-active-directory,microsoft-identity-platform,azure-digital-twins,Azure Active Directory,Microsoft Identity Platform,Azure Digital Twins,为了自动化Azure Digital Twins实例的维护,我们需要服务到服务API访问,以便我们可以使用Azure中间层选项作为守护程序应用程序运行(例如逻辑应用程序或函数) 但是,在Azure Active Directory中注册应用程序时,Azure Digital Twins“预览”API(资源id:0b07f429-9f4b-4714-9392-cc5e8e80c8b0)不支持应用程序权限(仅授权权限)。但是,相关的Microsoft Graph API(资源id:00000003-

为了自动化Azure Digital Twins实例的维护,我们需要服务到服务API访问,以便我们可以使用Azure中间层选项作为守护程序应用程序运行(例如逻辑应用程序或函数)

但是,在Azure Active Directory中注册应用程序时,Azure Digital Twins“预览”API(资源id:0b07f429-9f4b-4714-9392-cc5e8e80c8b0)不支持应用程序权限(仅授权权限)。但是,相关的Microsoft Graph API(资源id:00000003-0000-0000-c000-000000000000)支持这两种权限类型


当前是否有任何方法可以在不需要登录AAD帐户(即使用“客户端凭据”授权类型)的情况下对Azure Digital Twins API的访问进行身份验证?

要使用客户端凭据流,您需要应用程序权限。如果API中仅定义了
委托权限
,则您可以使用已登录的用户帐户(例如授权代码流)访问API

在您的情况下,选项是

  • 用户使用授权代码流或其他登录流向中间层应用程序进行身份验证

  • 身份验证期间,将获取代表令牌的OAuth 2.0

  • 然后,所获取的令牌用于使用代表流对更下游的API进行身份验证或调用API

  • 有关更多详细信息,请查看此文档-

  • 首先,您需要将在Azure AD中注册的控制台应用程序的新角色(RABC)添加到Azure digital twins实例中

  • 为控制台应用程序创建客户端机密

     private static DigitalTwinsClient GetDigitalTwinsClient(string tenantId, string clientId, string clientSecret, string adtEndpoint)
     {
         Environment.SetEnvironmentVariable("AZURE_CLIENT_SECRET", clientSecret);
         Environment.SetEnvironmentVariable("AZURE_CLIENT_ID", clientId);
         Environment.SetEnvironmentVariable("AZURE_TENANT_ID", tenantId);
    
         var tokenCredential = new DefaultAzureCredential();
    
         var client = new DigitalTwinsClient(
             new Uri(adtEndpoint),
             tokenCredential, new DigitalTwinsClientOptions
             { Transport = new HttpClientTransport(httpClient) });
    
         return client;
     }
    

  • 感谢您的回复,但这提供了一个已知的解决方法,而不是对我的问题的回答。守护程序应用程序在触发器上无人值守地运行,并且与人类用户没有交互。因此,用户无法在执行时进行身份验证。@ChrisLowndes如果是,则无法调用api。api的设计只是为了公开一个委托权限,您必须使用用户进行身份验证。事实上,我有一个演示程序在我们的办公室运行,不需要人工登录。我不久前创建了它,它围绕着一个服务主体。如果你还需要这个,请告诉我。