【发布时间】:2021-01-05 06:31:28
【问题描述】:
我在 Powershell 中有一个程序,它在 Azure Function 应用程序中运行,该应用程序还有一个名为“AuditO365”的托管标识。它使用托管标识连接到 Azure Key Vault 以检索用户凭据。它使用这些凭据连接到 O365 Exchange Online 以获取所需的数据。这工作正常:
$uSecret = $ENV:APPSETTING_SecretUsername
$pSecret = $ENV:APPSETTING_SecretPassword
$sasSecret = $ENV:APPSETTING_SecretSAS
$securePassword = ConvertTo-SecureString -String $pSecret -AsPlainText -Force
$UserCredential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $uSecret, $securePassword
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $session
凭据是在 Azure Active Directory 中创建的基本用户帐户,用户对数据源 (O365 Exchange Online) 可见。在 Exchange Admin Center 下的 O365 中,我可以看到用户名,并且可以将用户名分配给具有所需权限(“仅查看审核日志”)的正确自定义角色组(“查看审核读者”)。
但是,我现在想尝试使用托管标识,以使解决方案更加健壮。由于函数已经有一个托管标识(“AuditO365”),我想在上面的 Exchange Online 的自定义角色组中用这个标识替换当前用户帐户,但似乎 O365 看不到托管标识!所有 Azure 资源和 O365 都在同一个帐户/订阅下运行。
我也尝试在 Azure 中创建服务主体(具有 O365 的 API 权限),但 O365 也无法看到:
1.如何使 Azure Function 的托管标识对 O365 / Exchange Online 可见?
2.我是否可以使用此托管身份针对 Exchange Online 对应用进行身份验证、连接和检索数据,就像它目前使用普通用户帐户所做的那样?
【问题讨论】:
-
对你有用吗?如果它对您有帮助,您可以接受它作为答案吗?
-
我会试一试并回复您。感谢您的帮助。
标签: azure powershell exchange-server azure-managed-identity