使用 SAML IDP 将 keycloak 与 Active Directory 连接发送空响应
Connecting keycloak with Active Directory with SAML IDP sends empty response
我们在使用 SAML 连接 keycloak(版本 9)和 Active Directory IDP(版本 3)时遇到问题:尽管我们已经配置了响应属性,但 Azure IDP 响应为空状态响应。
有时会起作用,但大多数时候会产生登录循环。据我所知,没有执行登录(没有登录屏幕),但使用了系统的登录信息。 (浏览器为firefox)
SAML 响应如下所示:
<samlp:Response ID="_1629646f-f163-4ba1-beaa-58c44bc14494"
Version="2.0"
IssueInstant="2021-12-20T07:23:37.407Z"
Destination="https://keycloak.mydomain/auth/realms/CUSTOMER/broker/saml/endpoint"
Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
InResponseTo="ID_d2e30a9a-7f0c-4811-a88c-b1cbebc3329b"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
>
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://fs.customer.com/adfs/services/trust</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#_1629646f-f163-4ba1-beaa-58c44bc14494">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<ds:DigestValue>....</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>h....=</ds:SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>/...</ds:X509Certificate>
</ds:X509Data>
</KeyInfo>
</ds:Signature>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder" />
</samlp:Status>
</samlp:Response>
有人可以给我提示吗?
• 您的 saml 状态响应如下从发行者(即 ADFS 服务器)收到:-
‘ <samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder" />
</samlp:Status> ‘
这表明身份提供者,即发出 SAML 身份验证声明的 Active Directory,由于 wrong/missing 用户权限或服务提供商配置,阻止了有关 user/application 的身份验证。很可能是缺少访问 SAML SSO 服务提供商的权限,这会导致此错误,因此请检查用户在身份提供商处的权限。
因此,建议您参考以下 link 再次检查 ADFS 服务器中的 keycloak 配置,并遵循以下针对 ADFS 服务器的 keycloak 配置的最佳配置实践:-
https://www.keycloak.org/2017/03/how-to-setup-ms-ad-fs-30-as-brokered
最佳实践:-
How to force login per client with keycloak (¿best practice?)
我们在使用 SAML 连接 keycloak(版本 9)和 Active Directory IDP(版本 3)时遇到问题:尽管我们已经配置了响应属性,但 Azure IDP 响应为空状态响应。
有时会起作用,但大多数时候会产生登录循环。据我所知,没有执行登录(没有登录屏幕),但使用了系统的登录信息。 (浏览器为firefox)
SAML 响应如下所示:
<samlp:Response ID="_1629646f-f163-4ba1-beaa-58c44bc14494"
Version="2.0"
IssueInstant="2021-12-20T07:23:37.407Z"
Destination="https://keycloak.mydomain/auth/realms/CUSTOMER/broker/saml/endpoint"
Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
InResponseTo="ID_d2e30a9a-7f0c-4811-a88c-b1cbebc3329b"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
>
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://fs.customer.com/adfs/services/trust</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#_1629646f-f163-4ba1-beaa-58c44bc14494">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<ds:DigestValue>....</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>h....=</ds:SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>/...</ds:X509Certificate>
</ds:X509Data>
</KeyInfo>
</ds:Signature>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder" />
</samlp:Status>
</samlp:Response>
有人可以给我提示吗?
• 您的 saml 状态响应如下从发行者(即 ADFS 服务器)收到:-
‘ <samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder" />
</samlp:Status> ‘
这表明身份提供者,即发出 SAML 身份验证声明的 Active Directory,由于 wrong/missing 用户权限或服务提供商配置,阻止了有关 user/application 的身份验证。很可能是缺少访问 SAML SSO 服务提供商的权限,这会导致此错误,因此请检查用户在身份提供商处的权限。
因此,建议您参考以下 link 再次检查 ADFS 服务器中的 keycloak 配置,并遵循以下针对 ADFS 服务器的 keycloak 配置的最佳配置实践:-
https://www.keycloak.org/2017/03/how-to-setup-ms-ad-fs-30-as-brokered
最佳实践:-
How to force login per client with keycloak (¿best practice?)