证书和密钥管理准则

应用于

  • Microsoft Azure Active Directory 访问控制(也称为访问控制服务或 ACS)

总结

本主题介绍在 ACS 中使用证书和密钥的准则。 由于证书和密钥按设计过期,因此在过期前跟踪到期日期并采取适当的操作非常重要,以便使用 ACS 的应用程序在未中断的情况下继续正常运行。

重要

跟踪访问控制命名空间、信赖方应用程序、服务标识和 ACS 管理服务帐户使用的过期和续订证书、密钥和密码。

目标

  • 列出必须跟踪其到期日期的证书和密钥

  • 概述证书和密钥的续订过程

    重要

    有关错误消息和续订过程,请参阅本主题中的“特定证书、凭据或密钥”一节。

概述

由于证书一定会过期,因此好的做法是在当前证书到期之前很早就上载新证书。 会涉及的高级步骤如下所示:

  • 上载新的辅助证书。

  • 通知使用服务的合作伙伴即将发生的更改。 合作伙伴应更新其信赖方的证书配置(例如,在 ASP.NET Web 应用程序 trustedIssuers 节点下 web.config 中配置的证书指纹)

  • 在合理的宽限期内保持前一证书不变的同时,将签名切换到新证书(设为主证书)。

  • 宽限期结束后, 删除 旧证书。 

证书或密钥过期时,ACS 尝试颁发令牌失败,信赖方应用程序无法正常运行。 ACS 会忽略过期的证书和密钥,导致未配置任何证书或密钥时引发的相同异常。

以下部分提供有关管理 ACS 使用的证书和密钥、如何续订证书以及如何识别即将过期或已过期的证书和密钥的信息。

  • 若要管理访问控制命名空间和信赖方应用程序的证书和密钥,请使用 ACS 管理门户的“证书和密钥”页。 有关这些凭据类型的详细信息,请参阅 证书和密钥

  • 若要管理凭据 (证书、密钥或密码) 服务标识,请使用 ACS 管理门户 的服务标识 页。 有关服务标识的详细信息,请参阅 服务标识

  • 若要管理 ACS 管理服务帐户 (证书、密钥或密码) 的凭据,请使用 ACS 管理门户的 “管理服务 ”页。 有关 ACS 管理服务的详细信息,请参阅 ACS 管理服务

  • 若要管理 WS 联合身份验证标识提供程序(如 AD FS 2.0)的证书,请使用 ACS 管理门户中的“标识提供程序”页。 有关详细信息,请参阅WS-Federation标识提供者证书和 WS 联合标识提供者

    若要以编程方式查看和更新WS-Federation标识提供者证书和密钥,请使用 ACS 管理服务。 若要验证证书的有效日期,请查询 IdentityProviderKey 实体的 StartDateEndDate 属性的值。 有关详细信息,请下载 KeyManagement 代码示例: 代码示例:密钥管理

请求由过期的证书或密钥签名的令牌时,ACS 会引发特定于证书或密钥的 ACS 错误代码 的异常。 有关特定错误代码,请参阅以下各节。

可用的证书和密钥

以下列表显示了 ACS 中使用的可用证书和密钥,并且必须跟踪其到期日期:

重要

有关错误消息和续订过程,请参阅本主题中的“特定证书、凭据或密钥”一节。

  • 令牌签名证书

  • 令牌签名密钥

  • 令牌加密证书

  • 令牌解密证书

  • 服务标识凭据

  • ACS 管理服务帐户凭据

  • WS 联合身份验证标识提供程序签名和加密证书

本主题的剩余部分详细介绍每种证书和密钥。

令牌签名证书

ACS 会对自己颁发的所有安全令牌进行签名。 它使用 X.509 证书为应用程序的 SAML 令牌签名。

当签名证书已过期时,ACS 在你请求令牌时返回以下错误:

错误代码 Message 纠正方法

ACS50004

未配置主 X.509 签名证书。 SAML 需要一个签名证书。

如果所选信赖方使用 SAML 令牌,请确保为信赖方或访问控制命名空间配置有效的 X.509 证书。 该证书必须设为主证书并且不能过期。

若要续订签名证书,请执行以下操作:

  1. 转到Microsoft Azure管理门户 () https://manage.WindowsAzure.com 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)

  2. 若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)

  3. 单击“证书和密钥”

  4. 选择一个状态为“即将到期”“已过期”的证书。

    注意

    在“证书和密钥”部分中,访问控制命名空间的证书和密钥标记为“服务命名空间”。

  5. 根据需要输入或生成证书。

  6. 更新生效到期日期。

  7. 单击“保存”以完成操作。

令牌签名密钥

ACS 会对自己颁发的所有安全令牌进行签名。 ACS 对使用 ACS 颁发的 SWT 令牌的应用程序使用 256 位对称签名密钥。

当签名密钥过期时,ACS 在你请求令牌时返回以下错误:

错误代码 Message 纠正方法

ACS50003

未配置主对称签名密钥。 SWT 需要对称签名密钥。

如果所选信赖方使用 SWT 作为其令牌类型,请确保为信赖方或访问控制命名空间配置对称密钥,并且密钥设置为主密钥且未过期。

若要续订签名密钥,请执行以下操作:

  1. 转到Microsoft Azure管理门户 () https://manage.WindowsAzure.com 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)

  2. 若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)

  3. 单击“证书和密钥”

  4. 选择一个状态为“即将到期”“已过期”的密钥。

    注意

    在“证书和密钥”部分中,访问控制命名空间的证书和密钥标记为“服务命名空间”。

  5. 根据需要输入或生成密钥。

  6. 更新生效到期日期。

  7. 单击“保存”以完成操作。

令牌加密证书

当信赖方应用程序是通过 WS 信任协议使用拥有证明令牌的 Web 服务时,令牌加密是必需的。 在其他情况下,令牌加密是可选的。

当加密证书过期时,ACS 在你请求令牌时返回以下错误:

错误代码 Message 纠正方法

ACS50005

需要令牌加密,但未为信赖方配置加密证书。

为选定的信赖方禁用令牌加密,或上载要用于令牌加密的 X.509 证书。

若要续订加密证书,请执行以下操作:

  1. 转到Microsoft Azure管理门户 (https://manage.WindowsAzure.com) 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)

  2. 若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)

  3. 单击“证书和密钥”

  4. 选择一个状态为“即将到期”“已过期”的证书。

    注意

    在“证书和密钥”部分中,访问控制命名空间的证书和密钥标记为“服务命名空间”。

  5. 输入或浏览到新证书文件,然后输入该文件的密码。

  6. 单击“保存”以完成操作。

令牌解密证书

ACS 可以接受来自WS-Federation标识提供者(如 AD FS 2.0)的加密令牌。 ACS 使用 ACS 中托管的 X.509 证书进行解密。

当解密证书过期时,ACS 在你请求令牌时返回以下错误:

错误代码 Message

ACS10001

处理 SOAP 标头时出错。

ACS20001

处理 WS 联合身份验证登录响应时出错。

若要续订解密证书,请执行以下操作:

  1. 转到Microsoft Azure管理门户 (https://manage.WindowsAzure.com) 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)

  2. 若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)

  3. 单击“证书和密钥”

  4. 使用 ACS 管理门户中的“证书和密钥”部分来管理与访问控制命名空间和信赖方应用程序相关的证书或密钥。

  5. 选择一个状态为“即将到期”“已过期”的证书。

    注意

    在“证书和密钥”部分中,访问控制命名空间的证书和密钥标记为“服务命名空间”。

  6. 输入或浏览到新证书文件,然后输入该文件的密码。

  7. 单击“保存”以完成操作。

服务标识凭据

服务标识是针对访问控制命名空间全局配置的凭据。 它们允许应用程序或客户端直接使用 ACS 进行身份验证并接收令牌。 ACS 服务标识可以使用对称密钥、密码和 X.509 证书。 当凭据过期时,ACS 将引发以下异常。

凭据 错误代码 Message 纠正方法

对称密钥、密码

ACS50006

签名验证失败。 (消息中提供了更多详细信息。)

X.509 证书

ACS50016

具有使用者“证书使用者名称>”且指纹“<证书指纹>”<的 X509Certificate 与任何已配置的证书不匹配。

确保已将请求的证书上载到 ACS。

若要验证和更新对称密钥或密码的到期日期,或上传新证书即服务标识凭据,请按照 操作方法:使用 X.509 证书、密码或对称密钥添加服务标识的说明进行操作。 在“编辑服务标识”页中提供了服务标识凭据列表。

  1. 转到 ACS 管理门户中 的服务标识 页。

  2. 选择服务标识。

  3. 选择一个状态为“已过期”“即将到期”的凭据、对称密钥、密码或 X.509 证书。

  4. 对于对称密钥,请输入或生成新密钥,然后输入生效日期和到期日期。 单击“ 保存”。

  5. 对于密码,请输入新密码,然后输入生效日期和到期日期。 单击“ 保存”。

  6. 对于 X.509 证书,请输入或浏览到新的证书文件,然后单击“保存”

管理服务凭据

ACS 管理服务是 ACS 的关键组件,可用于以编程方式在访问控制命名空间中管理和配置设置。 ACS 管理服务帐户可以使用对称密钥、密码和 X.509 证书。 如果这些凭据已过期,ACS 将引发以下异常。

凭据 错误代码 Message 纠正方法

对称密钥或密码

ACS50006

签名验证失败。 (消息中可能包含了更多详细信息。)

X.509 证书

ACS50016

具有使用者“证书使用者名称>”且指纹“<证书指纹>”<的 X509Certificate 与任何已配置的证书不匹配。

确保已将请求的证书上载到 ACS。

ACS 管理服务帐户凭据的列表显示在 ACS 管理门户的 “编辑管理服务帐户” 页上。

  1. 转到 ACS 管理门户中的 “管理服务 ”页。

  2. 选择管理服务帐户。

  3. 选择凭据、对称密钥、密码或 X.509 证书,其状态为 “已过期 ”或 “即将过期”。

  4. 对于对称密钥,请输入或生成新密钥,并输入 有效过期 日期。 单击“ 保存”。

  5. 对于密码,请输入新密码,然后输入生效日期和到期日期。 单击“ 保存”。

  6. 对于 X.509 证书,请输入或浏览到新证书,然后单击“保存”

WS 联合身份验证标识提供程序证书

WS 联合身份验证标识提供程序的联合元数据文档包含用于识别 X.509 证书(用于为标识提供程序的令牌签名)的指纹。

若要确定WS-Federation标识提供者证书是否在其生效日期范围内,请使用 ACS 管理服务或 ACS 管理门户。

若要使用 ACS 管理门户,请执行以下操作:

  1. 登录到 Azure 管理门户 https://manage.WindowsAzure.com

  2. 选择访问控制命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择一个访问控制命名空间,然后单击“管理”。)

  3. 在 ACS 管理门户中,单击“标识提供程序”,然后选择 WS 联合身份验证标识提供程序。

  4. “令牌签名证书”部分中,查看 WS 联合身份验证标识提供程序证书的有效日期和“状态”

  5. 如果证书状态为“已过期”“即将到期”,请验证 WS 联合身份验证标识提供程序(AD FS 或自定义标识提供程序)是否已添加辅助签名证书。

    如果使用 URL 标识WS-Federation标识提供者的联合元数据,请在 保存后从WS-Federation元数据 URL 中选择“重新导入数据 ”,然后单击“ 保存”。 如果你已上载 WS 联合身份验证元数据作为本地文件,请重新上载新的 WS 联合身份验证元数据文件,然后单击“保存”

如果 ACS 从标识提供程序收到使用过期或未知证书进行签名的令牌,则 ACS 会引发以下异常。

错误代码 Message

ACS10001

处理 SOAP 标头时出错。

ACS20001

处理 WS 联合身份验证登录响应时出错。

ACS50006

签名验证失败。 (消息中可能包含了更多详细信息。)

另请参阅

任务

代码示例:密钥管理

概念

ACS 错误代码
ACS 准则索引
ACS 管理服务
证书和密钥
如何:使用 X.509 证书、密码或对称密钥添加服务标识
信赖方应用程序
服务标识