我的Azure Automation Runbook使用存储的凭据来获取新组的列表,需要一种不使用存储的凭据的替代方法

时间:2019-01-09 23:16:12

标签: powershell azure-automation

我需要在与新组关联的SPOnline网站(例如,MS Teams,Planner等)上禁用外部共享。当Office 365用户设置新的团队,计划者或组时,将在后台设置SPOnline网站以存储关联组的文件。默认情况下,此“后台” SPOnline网站允许外部共享内容。

我创建了一个Azure自动化运行手册,该手册使用存储的凭据创建了到Exchange Online的会话。然后,我会获得过去一天创建的组的列表。

    $groups = Get-UnifiedGroup -Filter "WhenCreated -gt '$dt'"

然后使用组列表进行遍历,使用AppId和AppSecret连接到SPOnline并禁用共享。

    Connect-PnPOnline -AppId $appId -AppSecret $appSecret -Url $tenantUrl
    $site = Get-PnPTenantSite -Url $group.SharePointSiteUrl
    Write-Output "Sharing Capability: " $site.SharingCapability

    if($site.SharingCapability -ne "Disabled")
    {
        #Set-PnPTenantSite -Url $site.Url -Sharing Disabled
        Write-Output "Disabling external sharing"
    }
    else
    {
        Write-Output "External sharing already disabled"
    }

我的问题是我们的生产环境使用PCS系统来管理帐户密码。这将需要更多脚本来访问PCS,签出密码,更新存储的凭据,然后完成我想做的工作。

我能够直接从Azure AD获取组列表,但是返回的对象没有WhileCreated和SharePointSiteURL属性。没有这两条信息,我将无法将脚本限制在过去的一天,也无法更改SharePoint中的设置。

我的目标是探索任何备选方法,使我无需使用Azure自动化中存储的凭据即可获取新组的列表和关联的SPOnline网站URL。有什么想法吗?

谢谢您的时间。

1 个答案:

答案 0 :(得分:1)

通常只有四个选项:

  1. 硬编码凭据
  2. 使用变量+证书(您可以将它们设置为安全字符串,因此将其加密)
  3. 使用运行方式帐户(允许使用证书)
  4. 使用凭据+证书(与变量几乎相同)