【发布时间】:2020-11-25 01:28:24
【问题描述】:
我需要使用 powershell 脚本在 azure function app 中连接到 AD。 (因为它在功能上我需要在没有提示的情况下这样做)我正在尝试这个:
Import-Module D:\home\site\wwwroot\HttpTrigger1\AzureAD\AzureAD.psd1 -UseWindowsPowershell
$creds = Connect-AzureAD -TenantId $tenantId -Credential $Credential
在我的函数应用中,我通过使用 Azure Active Directory 登录启用了身份验证。 有没有办法在 powershell 脚本中使用该身份验证来连接到 azuread 模块。我的意思是用户单击函数应用程序 url,使用他们的凭据登录,并且可以在脚本中为 connect-azuread 使用身份验证。由于启用了 MFA,当前脚本无法正常工作,根据我们的用例无法将其删除。
用例:我有一个 ARM 模板形式的应用程序,它将被部署为托管应用程序。
ARM 模板应该在用户的租户上部署一组资源,无论谁购买了应用程序。但我需要“客户 ID”
和具有 O365 mgt api 权限的用户/客户租户上的应用程序注册的“客户端密码”,作为输入
我的 mainTemplate.json.
此应用程序注册是一次性的,无法通过 ARM 模板实现,这就是我试图通过以下方式实现上述目标的原因
电源外壳。我正在创建一个 powershell 函数应用,通过使用 Azure Active Directory 登录启用身份验证。
这种方法背后的想法是,在购买应用程序时,在 UI(由 createUIDefinition.json 创建)处填写其他详细信息(如资源组名称和区域)时,用户点击功能应用程序链接,
登录,脚本在后台运行。该脚本应该能够在用户的租户处创建应用注册并提供
返回该应用注册的客户端 ID 和客户端密码。
【问题讨论】:
-
不确定我们是否可以在函数应用中获取 AAD 凭据。但如果您不想以交互方式登录,可以使用此脚本:
$username = "{username}" $password = "{password}" $tenantId = "{teanntId}" $secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force $Credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $secureStringPwd $creds = Connect-AzureAD -TenantId $tenantId -Credential $Credential -
谢谢艾伦,但这正是我正在使用的。由于启用了 MFA,脚本会失败。
标签: azure-active-directory azure-powershell arm-template azure-function-app multi-factor-authentication