使用 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'验证是否设置成功。
我能够通过在客户端使用证书及其在 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'验证是否设置成功。