【发布时间】:2020-12-29 13:59:11
【问题描述】:
我创建了一个Azure Automation API Connection 以在Logic App action 中使用。正如the docs explain,当首次创建 API 连接时,它需要授权才能与自动化对话:
PS C:\> $conn = Get-AzResource -ResourceGroupName my-rg -ResourceType Microsoft.Web/connections -Name azureautomation
PS C:\> $conn.Properties.statuses
status target error
------ ------ -----
Error token @{code=Unauthenticated; message=This connection is not authenticated.}
按照文档,我可以在逻辑应用设计器中打开连接,并以有权创建自动化作业的用户身份进行身份验证(例如,具有Automation Job Operator 角色的用户)。然后连接显示为已通过身份验证,并且该操作成功创建了作业:
PS C:\> $conn = Get-AzResource -ResourceGroupName my-rg -ResourceType Microsoft.Web/connections -Name azureautomation
PS C:\> $conn.Properties.statuses
status
------
Connected
PS C:\> $conn.Properties.authenticatedUser
name
----
username@example.com
显然,连接不仅已验证,还已授权。我不清楚逻辑应用程序设计器遵循了哪个authentication flow,特别是连接是否会自动刷新其access tokens 而无需进一步干预。这不仅仅是学术问题:我想知道的是连接会在未来某个时候默默失去授权吗?
我正在为刚接触 Azure 的客户构建此解决方案,因此我希望使解决方案尽可能简单。他们熟悉本地 AD 世界中服务帐户的概念,但 AAD 服务主体对他们来说是陌生的。依靠通过 Logic App Designer 进行的一次性手动授权是否安全,或者using a service principal 是确保连接保持授权的唯一可靠方法?
【问题讨论】:
标签: oauth-2.0 azure-active-directory azure-logic-apps