2015-09-15 5 views
0

Я пытаюсь реализовать SSO с использованием SAML2, и мое приложение многопользовательское и действует как SP. В настоящее время я работаю над созданием метаданных SP, но я немного застрял на стороне криптографии и, похоже, не нашел примеров, за исключением того, что Стефан Расмуссон потушил там (я даже купил его книгу), но ни один из них он, по-видимому, охватывает создание метаданных. Мой вопрос заключается в том, что для открытых ключей, включенных в метаданные, лучший способ их генерации. Должен ли я использовать мои существующие jks, используемые для подписи остальных моих сообщений, то есть: authnrequests и т. Д., Или должны ли эти ключи быть отдельными, и должен ли ключ быть уникальным для проверки подписей и шифрования данных? Я немного потерял и не смог найти много документации, поэтому любая помощь была бы оценена. Я посмотрел на этот пост: http://blog.samlsecurity.com/2012/02/generating-metadata-with-opensaml.html, но похоже, что он генерирует ключи «на лету», которые на самом деле не будут работать в производстве. Заранее спасибо за помощь!Создание метаданных OpenSaml для SP

ответ

1

В производстве вы наверняка не будете генерировать ключи на лету. Вы должны зарегистрировать свои метаданные SP с помощью IDP, чтобы работать было нелегко (если только IDP не находится под вашим контролем).

Разрешено для SP to have two private keys, одно для подписания и одно для шифрования/дешифрования, однако это необязательно. Большинство случаев производства я столкнулся, один и тот же ключ используется для обоих. Надеюсь, это поможет.

Кажется, что у вас уже установлена ​​настройка Shibboleth SP, поэтому остальная часть этого ответа может показаться ненужной. Но для полноты, ниже приведены шаги по созданию рабочего Shibboleth SP.

  • Получите или создайте хранилище секретных ключей и сертификат. Это может быть самоподписанным или из CA
  • Создайте файл метаданных для SP и зарегистрируйте его в федерации. Запись для разделов «подписи» и «шифрования» будет содержать сертификат, полученный на предыдущем шаге.
  • Укажите URL-адреса AssertionConsumerService для различных привязок SAML, которые SP будет принимать. IDP вышлет ответ на один из этих адресов

Образец XML-SP метаданных документа хотели бы ниже:

<md:EntityDescriptor entityID="https://mysp.example.com/shibboleth-sp" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> 
    <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> 
     <md:KeyDescriptor use="signing"> 
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
       <ds:KeyName>mysp.example.com</ds:KeyName> 
       <ds:X509Data> 
      <ds:X509Certificate xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
       REPLACE_ENTITY_ID_AND_ACS_URL_AND_PUT_YOUR_CERTIFICATE_HERE 
      </ds:X509Certificate> 
       </ds:X509Data> 
      </ds:KeyInfo> 
     </md:KeyDescriptor> 
     <md:KeyDescriptor use="encryption"> 
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
       <ds:KeyName>mysp.example.com</ds:KeyName> 
       <ds:X509Data> 
      <ds:X509Certificate xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
       REPLACE_ENTITY_ID_AND_ACS_URL_AND_PUT_YOUR_CERTIFICATE_HERE 
      </ds:X509Certificate> 
       </ds:X509Data> 
      </ds:KeyInfo> 
     </md:KeyDescriptor> 
     <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML2/POST" index="1"/> 
     <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML2/Artifact" index="2"/> 
     <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML/Artifact" index="3"/> 
     <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML/POST" index="4"/> 
    </md:SPSSODescriptor> 
</md:EntityDescriptor>   
Смежные вопросы