如何在Azure AD中实现NIST FAL3要求?SAML密钥及断言引用问询
符合NIST FAL3要求的SAML密钥示例及Azure配置方案
一、满足FAL3的加密密钥示例
- X.509客户端证书:这是最常用的合规选项,采用RSA-2048或ECC-256等NIST批准的算法,由受信任CA颁发。用户持有证书对应的私钥,SAML断言中会引用证书的唯一标识(如SHA-256指纹、证书序列号或主题DN),用户通过用私钥签名特定挑战值来证明持有。
- 预共享对称密钥(PSK):适用于高信任内部场景,采用AES-256等批准的对称加密算法。RP与用户预先约定密钥,断言中引用密钥的唯一ID,用户通过用该密钥加密挑战值来完成持有证明。
二、Azure AD中让SAML断言引用密钥的步骤
上传/配置密钥关联材料
- 若使用X.509证书:将用户的公钥证书上传到Azure AD目标应用注册的「证书和密码」页面,或配置Azure AD信任该证书的根CA,确保Azure AD能识别证书合法性。
- 若使用预共享密钥:在应用注册的「令牌配置」页面添加自定义声明,用于承载密钥的唯一ID。
配置SAML断言包含密钥引用
- 登录Azure门户,进入目标应用注册的「SAML」配置页,点击「编辑用户属性和声明」:
- 添加自定义声明(例如命名为
key-reference),将声明值设置为密钥的唯一标识(如证书的SHA-256指纹、预共享密钥ID),确保该声明被包含在SAML断言的<AttributeStatement>区块中。
- 添加自定义声明(例如命名为
- 在「SAML高级设置」中,将「断言签名」设为「总是」,「断言加密」设为「启用」,并选择RP侧用于解密断言的证书,确保断言符合NIST批准的密码学要求。
- 登录Azure门户,进入目标应用注册的「SAML」配置页,点击「编辑用户属性和声明」:
配合RP侧实现持有证明验证
- RP在收到Azure AD的SAML断言后,先提取其中的密钥引用标识,生成随机挑战值发送给用户。
- 用户使用对应的私钥(签名挑战)或预共享密钥(加密挑战)处理后返回结果,RP验证通过后再完成断言的签名和加密有效性校验。
内容的提问来源于stack exchange,提问作者onyx12
相关产品推荐
相关产品推荐

