当前位置: 首页 > 知识库问答 >
问题:

我的Azure应用程序注册/服务主体凭据何时到期?

宗政昱
2023-03-14

为了使我们的Azure Web应用程序能够访问Azure Key Vault,我们使用证书和服务主体的应用程序注册。

在生成证书之后,我们使用下面的Azure PowerShell创建应用程序注册和服务主体,然后授予服务主体访问Azure密钥库的权限。然后Web应用程序加载此证书,并使用它与Azure Key Vault进行身份验证。一切正常。

$subscriptionId = Read-Host -Prompt 'SubscriptionId'
Select-AzureRmSubscription -SubscriptionId $subscriptionId
$resourceGroupName = Read-Host -Prompt 'Resource group name'
$vaultName = Read-Host -Prompt 'Vault name'
$certificateName = Read-Host -Prompt 'Certificate name'
$applicationName = Read-Host -Prompt 'Application name'

$certificatePath = Join-Path (Get-Location) "$certificateName.cer"
$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$certificate.Import($certificatePath)

$rawCertData = [System.Convert]::ToBase64String($certificate.GetRawCertData())
$now = [System.DateTime]::UtcNow

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://$applicationName" -IdentifierUris "https://$applicationName" -CertValue $rawCertData -StartDate $now -EndDate $now.AddYears(1)

$servicePrincipal = New-AzureRmADServicePrincipal -ApplicationId $application.ApplicationId

Set-AzureRmKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $vaultName -ServicePrincipalName "https://$applicationName" -PermissionsToSecrets get

问题就出在这一行:

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://$applicationName" -IdentifierUris "https://$applicationName" -CertValue $rawCertData -StartDate $now -EndDate $now.AddYears(1)
$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://$applicationName" -IdentifierUris "https://$applicationName" -CertValue $rawCertData -StartDate` $certificate.NotBefore -EndDate $certificate.NotAfter

共有1个答案

柯建业
2023-03-14

从文档来看,这是凭据的有效结束日期,因此我认为凭据将在该时间停止工作。

https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermadapplication?view=azurermps-5.1.1

您可以使用New-AzureRmADAppCredential在该时间之前滚动机密。

 类似资料:
  • 作者:陈希章 发表于2017年3月22日 在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是,开发人员需要访问Microsoft Graph的话,其实是事先需要注册一个应用程序的。Graph 浏览器是特例,因为这个应用程序是微软官方注册好的。而大家在POSTMAN这篇文章中已经看到我注册的自定

  • 作者:陈希章 发表于 2017年3月22日 上一篇 介绍了Microsoft Graph应用程序的一些概念,以及目前还比较普遍的Azure AD 1.0应用程序的注册方式。但正如我多次提到的那样,虽然目前功能还在不断完善,但Azure AD 2.0会逐渐成为主流,它有如下几个优势 Azure AD 2.0 应用程序,既支持访问工作或学校账号,也支持访问个人账号的资源。 注册Azure AD 2.0

  • 我已使用WebForms从VS-2019成功发布Azure应用服务。我已成功保护它,以便用户必须使用与应用服务相同域中的Azure AAD帐户登录。我已成功创建AzureSQL数据库。我已成功将AAD域中的用户添加到数据库中,并通过将我创建的Azure AAD帐户用户之一硬编码到连接字符串中,从Azure应用服务中连接到数据库。 现在,我想使用应用程序服务登录名中经过身份验证的AAD用户连接到Az

  • 步骤 手动创建应用程序并添加了一些权限(application.readwrite.all、application.readwrite.ownedby、directory.readwrite.all、policy.readwrite.trustframework.trustframeworkkeyset.read.all、trustframeworkkeyset.readwrite.all、use

  • 我正在探索将java web应用程序移动到Azure应用程序服务的可能性。应用程序on prem在启动时读取属性文件。 是否有可能将属性文件传递或放置到应用服务?如果没有,建议将此类遗留应用程序移动到Azure应用服务?

  • 我有一个服务帐户,并且我正在向其中一个真实用户授予此服务帐户上的“服务帐户用户”角色。用户已将“应用程序默认凭据”设置为其配置的一部分,以避免每次运行时出现登录屏幕。我不确定此用户运行操作只有服务帐户才能访问的某些资源的代码的最佳方式是什么。出于安全原因,我不想使用服务帐户密钥 JSON 文件。我正在尝试以下代码 我收到错误:属性错误:“凭据”对象没有属性“with_subject”