使用 Office 365 邮件构建守护程序或服务应用程序 — 秘密上传自动化

Building Daemon or Service Apps with Office 365 mail — Secret Upload Automation

我能够通过在客户端使用证书及其在 Azure AD 中的密码进行身份验证来检索应用程序令牌。 我的问题是,是否可以将应用程序的证书密码自动上传到 Azure AD? 我已经通过 Powershell Cmdlet 实现了创建 AD 应用程序的自动化,现在我正在努力将自动化提升到一个新的水平。

进一步的问题是,同意过程也可以自动化吗?我知道 username/password 必须是手动的,但该过程的其他部分是否可以通过 Powershell Cmdlet 自动执行?

否,原因是出于安全考虑;用户应该允许应用程序访问 o365 租户服务的某些权限。 希望这有帮助。

Mostafa 是正确的,没有办法使同意过程自动化。

但是,您可以在应用程序上自动设置证书凭据。

使用 'connect-msolservice' 登录并使用 'Get-MsolServicePrincipal' 找到您的应用程序主体 ID 后,您可以执行以下操作以在该应用程序上设置证书凭据。

PS C:\windows\system32> $cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
PS C:\windows\system32> $cer.Import("Path to Certificate (.cer) file")
PS C:\windows\system32> $binCert = $cer.GetRawCertData()
PS C:\windows\system32> $credValue = [System.Convert]::ToBase64String($binCert);

PS C:\windows\system32> New-MsolServicePrincipalCredential -AppPrincipalId 
   "Application Principal ID from above" -Type asymmetric -Value $credValue 
   -StartDate $cer.GetEffectiveDateString() -EndDate $cer.GetExpirationDateString() -Usage verify

之后您可以通过'Get-MsolServicePrincipal'验证是否设置成功。