如何向Authzforce发送EAP认证证书并配置对应策略
Authzforce 基于 EAP 证书的认证与策略配置方案
Authzforce 作为 XACML 授权引擎,本身不内置 EAP 认证相关的原生配置项,EAP 证书校验逻辑需要在前置认证层完成,再将证书属性透传至 Authzforce 做授权判断,具体操作步骤如下:
证书配置与属性透传
- 首先在前置层完成 EAP 证书校验:可选择反向代理(Nginx/Apache 配置 TLS 客户端认证)、专用 EAP 认证服务(如 FreeRADIUS 配置 EAP-TLS)作为认证入口,完成 EAP 证书的合法性、有效期、信任链校验,校验通过后提取证书核心字段,包括但不限于主体DN(subjectDN)、颁发者DN(issuerDN)、证书序列号、自定义扩展字段。
- 若需要 Authzforce 侧做二次证书校验,需将 EAP 信任根证书、中间CA证书导入 Authzforce 运行环境的 JDK 信任库,执行命令:
keytool -importcert -file /path/to/your/eap-root-ca.crt -alias eap-trust-root -keystore $JAVA_HOME/jre/lib/security/cacerts
信任库默认密码为changeit,导入完成后重启 Authzforce 服务生效。 - 前置认证层校验通过后,将提取到的 EAP 证书属性,通过 XACML 授权请求的属性段,或者 HTTP 请求头的方式传递给 Authzforce 服务。
XACML 授权策略配置
你可以基于透传的 EAP 证书属性自定义 XACML 策略,示例策略实现仅允许由指定CA签发、且主体属于授权用户组的请求通过,核心规则参考如下:
<Rule Effect="Permit" RuleId="Permit_Valid_EAP_Cert_User"> <Condition> <Apply FunctionId="urn:oasis:names:tc:xacml:3.0:function:and"> <!-- 匹配证书颁发者为信任根CA --> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <AttributeDesignator Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" AttributeId="eap-cert-issuer-dn" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"/> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"> CN=EAP-Trust-Root-CA,OU=Security,O=YourOrg,C=CN </AttributeValue> </Apply> <!-- 匹配证书主体属于授权用户组 --> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-contains"> <AttributeDesignator Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" AttributeId="eap-cert-subject-dn" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true"/> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string"> OU=EAP-Authorized-Users </AttributeValue> </Apply> </Apply> </Condition> </Rule>
策略编写完成后,通过 Authzforce 的管理接口上传生效即可。
内容的提问来源于stack exchange,提问作者Belator
相关产品推荐
相关产品推荐

