Актуальную версию документа см. на сайте Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации по адресу https://digital.gov.ru/ru/documents/6186/.

Пример кода создания запроса <AuthnRequest>

// Создание элемента <Issuer>

// issuerUrl - это url сервис-провайдера, который генерирует сообщение <authnRequest>

String issuerUrl = "http://localhost:8080/saml-demo/resource";

IssuerBuilder issuerBuilder = new IssuerBuilder();

Issuer issuer = issuerBuilder.buildObject("urn:oasis:names:tc:SAML:2.0:assertion","Issuer","samlp");

issuer.setValue(issuerUrl);

// создание запроса <AutnRequest>

DateTime issueInstant = new DateTime();

AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder();

AuthnRequest authRequest = authRequestBuilder.buildObject("urn:oasis:names:tc:SAML:2.0:protocol",

"AuthnRequest", "samlp");

authRequest.setForceAuthn(new Boolean(false));

authRequest.setIsPassive(new Boolean(false));

authRequest.setIssueInstant(issueInstant);

authRequest.setProtocolBinding("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");

authRequest.setAssertionConsumerServiceURL(issuerUrl);

authRequest.setIssuer(issuer);

authRequest.setID(aRandomId);

authRequest.setVersion(SAMLVersion.VERSION_20);

Сообщение <AuthnRequest> может содержать и другие элементы, такие как <NameIDPolicy>, <RequestedAuthnContext>. Эти элементы создаются и добавляются в <AuthnRequest> аналогичным образом.

Сгенерированный запрос <AuthnRequest> должен быть преобразован (marshaled) с использованием "org.opensaml.xml.io.Marshaller" и должен быть закодирован в кодировке Base64 в URL с использованием org.opensaml.xml.util.Base64.