我需要更改当前的 Keycloak 配置以设置查询远程 SAML 身份提供商 (IdP) 的 Keycloak 代理。
这是metadata.xml。我不确定是否需要在 Keycloak 中配置 IdP 和 SAML 客户端,还是只需要配置 SAML 客户端。
<md:EntityDescriptor validUntil="2025-11-13T14:27:57.8433870Z" cacheDuration="P365D" entityID="k*******b.*******.**">
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://k*******b.*******.**/saml20-logout"/>
<md:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
</md:NameIDFormat>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://k*******b.*******.**/saml20-login"/>
</md:IDPSSODescriptor>
</md:EntityDescriptor>
IdP 经理还要求我提供 cert.pem,但是当我尝试配置 IdP 和/或 SAML 客户端时,我没有看到任何导出 cert.pem 的选项。
我有一个 Flask 应用程序,我希望用户使用他们在外部 IdP 上的帐户登录。我不需要Keycloak的登录页面;我需要一个类似于用户客户端的 SAML 客户端,以便我可以直接在 Flask 中管理登录流程。
我的keycloak版本是22
SAML IdP 需要您的证书来验证您的请求的签名(这是两个系统之间建立信任的方式)。只需打开您领域中众所周知的 OIDC URL,即可在其中找到证书端点。您可以使用此端点获取证书(该证书与用于在 KC 端签署 SAML req/resp 的私钥配对)。如果需要,将其转换为 PEM 格式。