SAML - анализировать метаданные поставщика услуг и извлекать такие детали, как подпись сертификата и конечная точка потребителя подтверждения - PullRequest
0 голосов
/ 18 февраля 2020

Мое приложение действует как SAML IdP. Для этого я нахожусь в процессе регистрации поставщиков услуг с моим заявлением. Для этого я подключаюсь к URL-адресу метаданных федерации SP и загружаю XML.

. Вопрос: есть ли легкодоступная библиотека java, которая выполняет эти задачи? Или мне нужно извлекать подробности вручную, используя стандартные API DOM?

Примечание. Мое приложение поддерживает хранилище пользователей и их данные для аутентификации и авторизации, такие как учетные данные, роли, операции и т. Д. c. Следовательно, не может зависеть от сторонних IdP, таких как ADFS или OneLogin.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 27 февраля 2020

Спасибо 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.
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...