尝试将证书添加到 Azure 应用时出错"Service principal was not found"



我在https://azure.microsoft.com/en-us/documentation/samples/active-directory-dotnet-daemon-certificate-credential/使用Azure AD向服务应用程序验证具有证书的守护程序应用程序。我已经完成了以下操作:

  • 创建我自己的Active Directory
  • 在AD中创建守护程序应用程序名称:TodoListDaemonWithCertYanlin登录URL:http://TodoListDaemonWithCertYanlin应用程序Id Url:http://TodoListDaemonWithCertYanlin
  • 创建自签名证书makecert-r-pe-n"CN=TodoListDaemonWithCertYanlin"-ss My-len 2048 TodoListDaemonWithCert.cer

当我尝试将证书添加到PowerShell中的守护程序应用程序时,我遇到了一个错误。

我使用的PowerShell命令:New MsolServicePrincipalCredential-AppPrincipalId"e5dedde0-2221-4ce4-a74d-af4e96705c01"-Type asyymmetric-值$credValue-起始日期$cer.GetEffectiveDateString()-结束日期$cer.GetExpirationDateString(()-用法验证

错误为:新建MsolServicePrincipalCredential:未找到服务主体

"Get-MsolServicePrincipal-SearchString TodoListDaemonWithCert"返回了一堆应用程序,但我的不包括在内。

我怀疑Azure可能会搜索我组织的广告,而不是我创建的广告。但我不知道如何调试这个问题。

问题已解决。

原因如下:我使用组织的凭据登录Azure,然后创建了一个测试Active Directory,并在测试Active Directory中创建了Todo List Daemon应用程序。当我在PowerShell中登录Azure时,我使用了组织的凭据。Azure PowerShell似乎只会在我的组织的AD中寻找应用程序原理,而不是在我的测试AD中——可能有一种切换AD的方法,但我还不知道。

以下是我解决问题的方法:

  • 前往https://manage.windowsazure.com并尝试在我的测试AD中使用用户登录
  • Azure提示用户未与任何订阅关联。按照"注册"链接注册免费试用订阅
  • 等待几分钟,以便为租户进行配置
  • 在PowerShell中,使用我测试azure AD中的用户登录到azure,然后再次运行PowerShell。现在它成功了

以下是我运行的PowerShell cmdlet:

connect-msolservice
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
$cer.Import("D:Fast1devTodoListDaemonWithCert.cer")
$binCert = $cer.GetRawCertData()
$credValue = [System.Convert]::ToBase64String($binCert)
New-MsolServicePrincipalCredential -AppPrincipalId  "e5dedde0-2221-4ce4-a74d-af4e96705c01" -Type asymmetric -Value $credValue -StartDate $cer.GetEffectiveDateString() -EndDate $cer.GetExpirationDateString() -Usage verify

相关内容

  • 没有找到相关文章

最新更新