2013-06-13 6 views
3

Спасибо Гаурау Мантри за ответ на мой предыдущий вопрос Azure ACS Set Up in C#.Как защищена аутентификация ACS Azure?

Однако может кто-то объясняет мне, как следующая строка: обеспечен?

if (!ClaimsPrincipal.Current.Identity.IsAuthenticated) 

Клиент в схеме ACS обычно является людей посередине, он может не Loging в Facebook, например, и это получает ретранслируется ACS (я предполагаю, что эта часть закреплена), но теперь ACS говорит клиенту вернуться к полагающейся стороне об отказе.

Как эта последняя часть защищена? Что мешает клиенту нарушить сообщение ACS «Сбой» до «Успеха»? Как Asp.Net даже знает, как проверить подпись и расшифровать сообщение?

В этом отношении какой ключ он использовал для шифрования/подписания обмена сообщениями? И как это будет работать в среде webfarm/Azure?

ответ

5

Укажите ключ, который будет использоваться для обмена сообщениями.

При настройке Azure ACS на портале управления вы указываете закрытый ключ, который будет использоваться для подписи маркеров (вкладка «Сертификаты и ключи»).

При настройке веб-приложения для использования Azure ACS, ссылка на сертификат для проверки подписи добавляется в web.config:

<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry"> 
    <authority name="https://xxxxx.accesscontrol.windows.net/"> 
     <keys> 
     <add thumbprint="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" /> 
     </keys> 
     <validIssuers> 
     <add name="https://xxxxx.accesscontrol.windows.net/" /> 
     </validIssuers> 
    </authority> 
    </issuerNameRegistry> 

UPDATE сертификат передается на веб-приложения, ACS по с подписью маркера безопасности в элементе X509Certificate (я удалил пространств имен):

<RequestSecurityTokenResponse> 
    <Lifetime> 
     <Created>2013-06-19T06:15:16.618Z</Created> 
     <Expires>2013-06-19T07:15:16.618Z</Expires> 
    </Lifetime> 
    <AppliesTo> 
     <EndpointReference> 
      <Address>http://xxx.cloudapp.net/</Address> 
     </EndpointReference> 
    </AppliesTo> 
    <RequestedSecurityToken> 
     <Assertion ID="xxx" IssueInstant="2013-06-19T06:15:16.636Z" Version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> 
      <Issuer>https://xxx.accesscontrol.windows.net/</Issuer> 
      <Signature> 
       <SignedInfo> 
        <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> 
        <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> 
        <Reference URI="xxx"> 
         <Transforms> 
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> 
          <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> 
         </Transforms> 
         <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> 
         <DigestValue>xxx</ds:DigestValue> 
        </Reference> 
       </SignedInfo> 
       <SignatureValue>xxx</SignatureValue> 
       <KeyInfo> 
        <X509Data> 
         <X509Certificate>xxx</X509Certificate> 
        </X509Data> 
       </KeyInfo> 
     </Signature> 
     <Subject> 
      <NameID>iiiii</NameID> 
      <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer" /> 
     </Subject> 
     <Conditions NotBefore="2013-06-19T06:15:16.618Z" NotOnOrAfter="2013-06-19T07:15:16.618Z"> 
      <AudienceRestriction><Audience>http://xxx.cloudapp.net/</Audience></AudienceRestriction> 
     </Conditions> 
     <AttributeStatement> 
      <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"><AttributeValue>aaa</AttributeValue></Attribute> 
     </AttributeStatement> 
     <AuthnStatement AuthnInstant="2013-06-19T06:15:15.999Z"> 
      <AuthnContext> 
       <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef> 
      </AuthnContext> 
     </AuthnStatement> 
    </Assertion> 

+0

, если вы не против, что config содержит только отпечаток сертификата, где будет фактический ключ? Это важно, потому что мне нужно планировать развертывание в облаке (Azure) или webfarm для балансировки нагрузки. Пожалуйста, помогите мне. – Alwyn

+0

@Alwyn Пожалуйста, см. Обновление –

+0

спасибо, сэр. – Alwyn

Смежные вопросы