轮换 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 应用程序服务中使用的加密密钥,请执行以下步骤:
在 Azure Stack Hub 管理员门户中转到“应用程序服务管理”体验。
转到“机密”菜单选项。
选择“加密密钥”部分中的“轮换”按钮。
选择“确定”以启动轮换过程。
加密密钥将会轮换,所有角色实例将会更新。 操作员可以使用“状态”按钮来查看该过程的状态。
轮换连接字符串
若要更新应用程序服务宿主数据库和计量数据库的数据库连接字符串凭据,请执行以下步骤:
在 Azure Stack Hub 管理员门户中转到“应用程序服务管理”体验。
转到“机密”菜单选项。
选择“连接字符串”部分中的“轮换”按钮。
提供 SQL SA 用户名和密码,然后选择“确定”以启动轮换过程。
凭据会在整个 Azure 应用程序服务角色实例中轮换。 操作员可以使用“状态”按钮来查看该过程的状态。
轮换证书
若要轮换 Azure Stack Hub 上的 Azure 应用程序服务中使用的证书,请执行以下步骤:
在 Azure Stack Hub 管理员门户中转到“应用程序服务管理”体验。
转到“机密”菜单选项。
选择“证书”部分中的“轮换”按钮
为要轮换的证书提供证书文件和关联的密码,然后选择“确定”。
这些证书会按照要求在 Azure Stack Hub 上的整个 Azure 应用程序服务角色实例中轮换。 操作员可以使用“状态”按钮来查看该过程的状态。
轮换标识应用程序证书时,还必须为 Microsoft Entra ID 或 AD FS 中的相应应用更新新的证书。
重要
如果在轮换后没有使用新证书更新标识应用程序,则会影响 Azure Functions 的用户门户体验,妨碍用户使用 KUDU 开发人员工具,并且使管理员无法使用应用程序服务管理体验来管理辅助角色层规模集。
轮换 Microsoft Entra 标识应用程序的凭据
标识应用程序由操作员在 Azure Stack Hub 上部署 Azure 应用程序服务之前创建。 如果应用程序 ID 未知,请按照以下步骤来发现它:
转到“Azure Stack Hub 管理员门户”。
转到“订阅”,选择“默认提供商订阅”。
选择“访问控制(IAM)”,然后选择“应用程序服务”应用程序。
记录应用 ID,该值是必须在 Microsoft Entra ID 中更新的标识应用程序的应用程序 ID。
若要在 Microsoft Entra ID 中轮换应用程序的证书,请按照以下步骤操作:
转到 Azure 门户,并使用用于部署 Azure Stack Hub 的管理员身份登录。
转到 Microsoft Entra ID 并浏览到应用注册。
搜索“应用程序 ID”,然后指定标识应用程序 ID。
选择应用程序,然后转到“证书和机密”。
选择“上传证书”,然后使用以下文件类型之一上传标识应用程序的新证书:.cer、.pem、.crt。
确认指纹与 Azure Stack Hub 管理员门户的应用程序服务管理体验中列出的指纹匹配。
删除旧证书。
轮换 AD FS 标识应用程序的证书
标识应用程序由操作员在 Azure Stack Hub 上部署 Azure 应用程序服务之前创建。 如果应用程序的对象 ID 未知,请按照以下步骤来发现它:
转到“Azure Stack Hub 管理员门户”。
转到“订阅”,选择“默认提供商订阅”。
选择“访问控制(IAM)”,然后选择“AzureStack-AppService-<guid>”应用程序。
记下对象 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" |
打开权限提升的 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
脚本完成后,会显示更新后的应用注册信息,包括证书的指纹值。
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 应用程序服务中使用的系统凭据,请执行以下步骤:
在 Azure Stack Hub 管理员门户中转到“应用程序服务管理”体验。
转到“机密”菜单选项。
选择“系统凭据”部分中的“旋转”按钮。
重要
如果选择的范围为“全部”或“管理服务器”,则控制器的凭据也会使用指定的新用户名和密码进行更新。
选择要 轮换的系统凭据的范围 。 操作员可以选择轮换所有角色或单个角色的系统凭据。
指定新的本地管理员用户名和新密码。 然后确认密码并选择“确定”。
凭据在 Azure Stack Hub 角色实例上的相应Azure App 服务中根据需要轮换。 操作员可以使用“状态”按钮来查看该过程的状态。