Начало работы с SAML2.0 - PullRequest
       3

Начало работы с SAML2.0

0 голосов
/ 21 августа 2010

Я пытаюсь осуществить свою первую интеграцию с помощью единого входа с использованием SAML 2.0.Я использовал:

http://www.codeproject.com/KB/aspnet/DotNetSamlPost.aspx?msg=3562384

в качестве примера для себя.

В настоящее время я просто пытаюсь успешно опубликовать их URL.Сайт, к которому мы подключаемся, довольно большой и использует решение от ping-identity для управления их sso, которое часто дает мне меньше, чем полезные ошибки.Я работал с несколькими, но этот вывод меня озадачил:

UnknownBindingException: Запрос содержит недостаточно информации для определения привязки протокола (вы вводили URL-адрес конечной точки протокола непосредственно в адресную строку браузера)?

Кто-нибудь знает, что может вызвать это, мой saml, который я публикую, выглядит так:

<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="_3b052151-fb4f-4e10-89bd-d65ef5141e9d" Version="2.0" IssueInstant="2010-08-20T20:36:02.8093696Z" Destination="https://******/sp/ACS.saml2" xmlns="urn:oasis:names:tc:SAML:2.0:protocol">
  <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">www.******.org</Issuer>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="#_3b052151-fb4f-4e10-89bd-d65ef5141e9d">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
          <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>****</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>*******</SignatureValue>
  </Signature>
  <Status>
    <StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
  </Status>
  <Assertion Version="2.0" ID="_d0f34b54-cf0b-49c7-9a50-f60842b7e0d2" IssueInstant="2010-08-20T20:36:02.8103697Z" xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
    <Issuer>www.*******.org</Issuer>
    <Subject>
      <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">adamb</NameID>
      <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
        <SubjectConfirmationData NotOnOrAfter="2010-08-20T20:41:02.8103697Z" Recipient="https://*****.com:9031/sp/ACS.saml2" />
      </SubjectConfirmation>
    </Subject>
    <Conditions NotBefore="2010-08-20T20:36:02.8103697Z" NotOnOrAfter="2010-08-20T20:41:02.8103697Z">
      <AudienceRestriction>
        <Audience>*****</Audience>
      </AudienceRestriction>
    </Conditions>
    <AuthnStatement AuthnInstant="2010-08-20T20:36:02.8103697Z">
      <AuthnContext>
     <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</AuthnContextClassRef>
      </AuthnContext>
    </AuthnStatement>
  </Assertion>
</Response>

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

Спасибо.

Ответы [ 2 ]

3 голосов
/ 01 сентября 2010

Пока я читаю ваш вопрос, ваше приложение будет ServiceProvider (SP) в федерации SAML2, где Ping - IdentityProvider (IdP). И вы пометили вопрос c #, поэтому я предполагаю, что ваш SP реализован в .Net

Какой фреймворк SAML2 вы используете или используете свой собственный? Если вы работаете со своей собственной средой SAML2, я бы порекомендовал использовать OIOSAML.net, который является открытым исходным кодом по лицензии Mozilla (бесплатной для любых целей). Вы можете проверить источник здесь: http://view.svn.softwareborsen.dk/cgi-bin/index.cgi/Softwareborsen/oiosaml.net/branches/ (вся документация на английском языке).

Оно активно поддерживается правительством Дании и было проверено на взаимодействие с Ping, ADFSv2, SimpleSamlPhp и многими другими IdP SAML2. В настоящее время он используется сотнями датских веб-сайтов в федерации с Ping в качестве IdP.

Что касается получаемого вами исключения, какую привязку вы собираетесь использовать: HTTP Redirect или что-то еще? Предполагая, что это перенаправление HTTP, я рекомендую прочитать соответствующий раздел, начиная с p15, в спецификации привязки SAML2: http://docs.oasis -open.org / security / saml / v2.0 / saml-bindings-2.0-os.pdf

0 голосов
/ 23 августа 2010

Звучит так, будто вы либо А) Отправляете Утверждение методом GET вместо POST, либо Б) Вы неправильно отформатировали HTML-форму, содержащую Утверждение, отправляемое вашему партнеру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...