Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Office365 使用Office 365 mail—;构建守护程序或服务应用程序;秘密上传自动化_Office365_Azure Active Directory - Fatal编程技术网

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

Office365 使用Office 365 mail—;构建守护程序或服务应用程序;秘密上传自动化,office365,azure-active-directory,Office365,Azure Active Directory,我能够通过在客户端使用证书进行身份验证并在Azure AD中获取应用令牌的秘密来检索应用令牌。 我的问题是,是否可以将应用程序的证书机密自动上载到Azure AD? 我已经通过Powershell Cmdlet实现了广告应用程序创建的自动化,现在我正试图将此信息推到下一个级别 进一步的问题是,同意过程是否也可以自动化?我知道用户名/密码必须是手动的,但该过程的其他部分能否通过Powershell Cmdlet实现自动化?否,原因是出于安全目的;用户应允许应用程序从o365租户服务访问某些权限。

我能够通过在客户端使用证书进行身份验证并在Azure AD中获取应用令牌的秘密来检索应用令牌。 我的问题是,是否可以将应用程序的证书机密自动上载到Azure AD? 我已经通过Powershell Cmdlet实现了广告应用程序创建的自动化,现在我正试图将此信息推到下一个级别


进一步的问题是,同意过程是否也可以自动化?我知道用户名/密码必须是手动的,但该过程的其他部分能否通过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”验证它是否已成功设置。

非常感谢,不幸的是,我今天没有时间验证它,请允许我在本周末再花些时间。您好,Rich,在我运行这些行之后,下载的清单中有空的keyCredentials,是否正确?-AppPrincipalId是应用程序的客户端ID,正如本文所建议的,这是那一行:`New-MSolServicePrincipalRedential-AppPrincipalId e8bfa9eb-f03e-4fce-abee-439b8d359eff-Type不对称-Value$credValue-StartDate$cer.GetEffectiveDateString()-EndDate`$cer.GetExpirationDateString()-Usage verifyHi Ree5un,我认为这里的混淆是租户特定的服务主体和全局应用程序对象之间的混淆。看一看,快速总结一下。无论如何,在清单上看不到新密钥的原因是,MSOL PowerShell实际上只更新本地特定于租户的服务主体。如果您希望以编程方式更新全局应用程序对象(这意味着您要添加的密钥可以在任何租户中使用),则必须使用Graph API。