我能够通过在客户端使用证书及其在Azure AD中的秘密进行身份验证来检索应用令牌。我的问题是,是否可以将应用程序的证书秘密自动上传到Azure AD ?我已经通过Powershell Cmdlet实现了AD应用程序创建的自动化,现在我正试图将自动化推向一个新的水平。
进一步的问题是,同意过程也可以自动化吗?我明白用户名/密码必须是手动的,但可以通过Powershell Cmdlet自动的过程的另一部分?
Mostafa是正确的,没有办法使同意过程自动化。
但是,您可以在应用程序上自动设置证书凭据。
使用'connect-msolservice'登录并使用'Get-MsolServicePrincipal'找到应用程序主体id后,可以执行以下操作在该应用程序上设置证书凭据。
PS C:windowssystem32> $cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
PS C:windowssystem32> $cer.Import("Path to Certificate (.cer) file")
PS C:windowssystem32> $binCert = $cer.GetRawCertData()
PS C:windowssystem32> $credValue = [System.Convert]::ToBase64String($binCert);
PS C:windowssystem32> New-MsolServicePrincipalCredential -AppPrincipalId
"Application Principal ID from above" -Type asymmetric -Value $credValue
-StartDate $cer.GetEffectiveDateString() -EndDate $cer.GetExpirationDateString() -Usage verify
之后,你可以通过'Get-MsolServicePrincipal'来验证是否设置成功。
否,原因是出于安全考虑;用户应该允许应用程序访问来自o365租户服务的某些权限。