轮换 Azure Stack Hub 上的应用服务的机密和证书

本文中的说明仅适用于 Azure Stack Hub 上的 Azure 应用服务。 Azure Stack Hub 的集中式机密轮换过程不包括 Azure Stack Hub 上的 Azure 应用服务机密轮换。 操作员可以监视系统中机密的有效性、上次更新日期,以及机密过期之前的剩余时间。

重要

操作员不会在 Azure Stack Hub 仪表板上收到机密过期警报,因为 Azure Stack Hub 上的 Azure 应用服务未与 Azure Stack Hub 警报服务集成。 操作员必须在 Azure Stack Hub 管理员门户中使用 Azure Stack Hub 上的 Azure 应用服务管理体验定期监视其机密。

本文档包含轮换以下机密的过程:

  • Azure Stack Hub 上的 Azure 应用服务中使用的加密密钥。
  • Azure Stack Hub 上的 Azure 应用服务用来与宿主数据库和计量数据库交互的数据库连接凭据。
  • Azure Stack Hub 上的 Azure 应用服务用于保护终结点的证书,以及 Microsoft Entra ID 或 Active Directory 联合身份验证服务 (AD FS) 中标识应用程序证书的轮换。
  • Azure Stack Hub 上的 Azure 应用服务基础结构角色的系统凭据。

轮换加密密钥

若要轮换 Azure Stack Hub 上的 Azure 应用服务中使用的加密密钥,请执行以下步骤:

  1. 在 Azure Stack Hub 管理员门户中转到“应用服务管理”体验。

  2. 转到“机密”菜单选项。

  3. 选择“加密密钥”部分中的“轮换”按钮。

  4. 选择“确定”以启动轮换过程。

  5. 加密密钥将会轮换,所有角色实例将会更新。 操作员可以使用“状态”按钮来查看该过程的状态。

轮换连接字符串

若要更新应用服务宿主数据库和计量数据库的数据库连接字符串凭据,请执行以下步骤:

  1. 在 Azure Stack Hub 管理员门户中转到“应用服务管理”体验。

  2. 转到“机密”菜单选项。

  3. 选择“连接字符串”部分中的“轮换”按钮。

  4. 提供 SQL SA 用户名密码,然后选择“确定”以启动轮换过程。

  5. 凭据会在整个 Azure 应用服务角色实例中轮换。 操作员可以使用“状态”按钮来查看该过程的状态。

轮换证书

若要轮换 Azure Stack Hub 上的 Azure 应用服务中使用的证书,请执行以下步骤:

  1. 在 Azure Stack Hub 管理员门户中转到“应用服务管理”体验。

  2. 转到“机密”菜单选项。

  3. 选择“证书”部分中的“轮换”按钮

  4. 为要轮换的证书提供证书文件和关联的密码,然后选择“确定”。

  5. 这些证书会按照要求在 Azure Stack Hub 上的整个 Azure 应用服务角色实例中轮换。 操作员可以使用“状态”按钮来查看该过程的状态。

轮换标识应用程序证书时,还必须为 Microsoft Entra ID 或 AD FS 中的相应应用更新新的证书。

重要

如果在轮换后没有使用新证书更新标识应用程序,则会影响 Azure Functions 的用户门户体验,妨碍用户使用 KUDU 开发人员工具,并且使管理员无法使用应用服务管理体验来管理辅助角色层规模集。

轮换 Microsoft Entra 标识应用程序的凭据

标识应用程序由操作员在 Azure Stack Hub 上部署 Azure 应用服务之前创建。 如果应用程序 ID 未知,请按照以下步骤来发现它:

  1. 转到“Azure Stack Hub 管理员门户”。

  2. 转到“订阅”,选择“默认提供商订阅”。

  3. 选择“访问控制(IAM)”,然后选择“应用服务”应用程序。

  4. 记录应用 ID,该值是必须在 Microsoft Entra ID 中更新的标识应用程序的应用程序 ID

若要在 Microsoft Entra ID 中轮换应用程序的证书,请按照以下步骤操作:

  1. 转到 Azure 门户,并使用用于部署 Azure Stack Hub 的全局管理员身份登录。

  2. 转到 Microsoft Entra ID 并浏览到应用注册

  3. 搜索“应用程序 ID”,然后指定标识应用程序 ID。

  4. 选择应用程序,然后转到“证书和机密”。

  5. 选择“上传证书”,然后使用以下文件类型之一上传标识应用程序的新证书:.cer、.pem、.crt。

  6. 确认指纹与 Azure Stack Hub 管理员门户的应用服务管理体验中列出的指纹匹配。

  7. 删除旧证书。

轮换 AD FS 标识应用程序的证书

标识应用程序由操作员在 Azure Stack Hub 上部署 Azure 应用服务之前创建。 如果应用程序的对象 ID 未知,请按照以下步骤来发现它:

  1. 转到“Azure Stack Hub 管理员门户”。

  2. 转到“订阅”,选择“默认提供商订阅”。

  3. 选择“访问控制(IAM)”,然后选择“AzureStack-AppService-<guid>”应用程序

  4. 记下对象 ID,此值是必须在 AD FS 中更新的服务主体的 ID。

若要轮换 AD FS 中的应用程序的证书,需要访问特权终结点 (PEP)。 然后,使用 PowerShell 更新证书凭据,将以下占位符替换为你自己的值:

占位符 说明 示例
<PepVM> Azure Stack Hub 实例上特权终结点 VM 的名称。 "AzS-ERCS01"
<CertificateFileLocation> X509 证书在磁盘上的位置。 "d:\certs\sso.cer"
<ApplicationObjectId> 分配给标识应用程序的标识符。 "S-1-5-21-401916501-2345862468-1451220656-1451"
  1. 打开权限提升的 Windows PowerShell 会话,运行以下脚本:

    # Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint
    $Creds = Get-Credential
    
    # Create a new Certificate object from the identity application certificate exported as .cer file
    $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("<CertificateFileLocation>")
    
    # Create a new PSSession to the PrivelegedEndpoint VM
    $Session = New-PSSession -ComputerName "<PepVm>" -ConfigurationName PrivilegedEndpoint -Credential $Creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # Use the privileged endpoint to update the certificate thumbprint, used by the service principal associated with the App Service identity application
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {Set-GraphApplication -ApplicationIdentifier "<ApplicationObjectId>" -ClientCertificates $using:Cert}
    $Session | Remove-PSSession
    
    # Output the updated service principal details
    $SpObject
    
    
  2. 脚本完成后,会显示更新后的应用注册信息,包括证书的指纹值。

    ApplicationIdentifier : S-1-5-21-401916501-2345862468-1451220656-1451
    ClientId              : 
    Thumbprint            : FDAA679BF9EDDD0CBB581F978457A37BFD73CA3B
    ApplicationName       : Azurestack-AppService-d93601c2-1ec0-4cac-8d1c-8ccde63ef308
    ClientSecret          : 
    PSComputerName        : AzS-ERCS01
    RunspaceId            : cb471c79-a0d3-40ec-90ba-89087d104510
    

轮换系统凭据

若要轮换 Azure Stack Hub 上的 Azure 应用服务中使用的系统凭据,请执行以下步骤:

  1. 在 Azure Stack Hub 管理员门户中转到“应用服务管理”体验。

  2. 转到“机密”菜单选项。

  3. 选择“系统凭据”部分的“轮换”按钮。

  4. 选择要轮换的系统凭据的“范围”。 操作员可以选择轮换所有角色或单个角色的系统凭据。

  5. 指定新的本地管理员用户名和新密码。 然后确认密码并选择“确定”。

  6. 这些凭据会按照要求在 Azure Stack Hub 上对应的整个 Azure 应用服务角色实例中轮换。 操作员可以使用“状态”按钮来查看该过程的状态。