gpt4 book ai didi

java - SAML - 解析服务提供商元数据并提取详细信息,例如签名证书和断言消费者端点

转载 作者:行者123 更新时间:2023-12-01 18:23:00 25 4
gpt4 key购买 nike

我的应用程序充当 SAML IdP。为此,我正在使用我的应用程序注册服务提供商。为此,我连接到 SP 联合元数据 URL 并下载 XML。

问题是 - 是否有任何现成的 java 库可以执行此任务?或者我是否需要使用标准 DOM API 手动提取详细信息?

注意:我的应用程序维护用户存储库及其身份验证和授权详细信息,例如凭据、角色、操作等。因此不能真正依赖第三方 IdP,例如 ADFS 或 OneLogin。

非常感谢任何帮助。

最佳答案

感谢 codebrane 的指点。我已经找到了使用 opensaml 库的方法。

 private void init(String metadata) throws Exception {
// parse metadata XML
EntityDescriptorImpl entityDescriptor = parseMetaData(metadata);

SPSSODescriptor spssoDescriptor = entityDescriptor.getSPSSODescriptor(SAMLConstants.SAML20P_NS);

// get signing/encryption certificates
List<KeyDescriptor> keyDescriptors = spssoDescriptor.getKeyDescriptors();
for (KeyDescriptor keyDescriptor: keyDescriptors) {
KeyInfo keyInfo = keyDescriptor.getKeyInfo();
X509Certificate samlCertificate = keyInfo.getX509Datas().get(0).getX509Certificates().get(0);
sigVerificationCertificate = KeyInfoSupport.getCertificate(samlCertificate);
}

// get SAML endpoints
assertionConsumerServices = spssoDescriptor.getAssertionConsumerServices();
singleLogoutServices = spssoDescriptor.getSingleLogoutServices();

// TODO - extract organization name etc.
}

关于java - SAML - 解析服务提供商元数据并提取详细信息,例如签名证书和断言消费者端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60273928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com