Exportar (0) Imprimir
Expandir Tudo

Formatos de token suportados no ACS

Publicado: abril de 2011

Atualizado: fevereiro de 2014

Aplica-se a: Azure

Quando seus aplicativos e serviços Web processam a autenticação com o Acess Control do Active Directory do Microsoft Azure (também conhecido como Access Control Service ou ACS), o cliente precisa obter um token de segurança emitido pelo ACS para fazer logon no seu aplicativo ou serviço. O ACS pode emitir tokens de segurança nos seguintes formatos:

noteObservação
O ACS pode emitir tokens de segurança em qualquer um dos formatos a seguir. O formato de token que o ACS usa para determinado aplicativo ou serviço Web é definido pela configuração do aplicativo de terceira parte confiável. Para obter informações sobre a configuração de aplicativos de terceira parte confiável, consulte Aplicativos de cliente dependente.

O SAML (Security Assertion Markup Language, Linguagem de Marcação de Declaração de Segurança) é o mais antigo e mais comum formato de tokens em uso atualmente para logon único (SSO) e identidades baseadas em declarações. O SAML especifica um formato XML, para tokens e também para protocolos, para executar SSO em um aplicativo ou serviço Web usando tokens SAML. Para obter mais informações sobre os tokens SAML, consulte Especificações SAML (http://go.microsoft.com/fwlink/?LinkID=213719).

noteObservação
Os tokens SAML 1.1 e SAML 2.0 contam com amplo suporte de uma série de plataformas de desenvolvimento, incluindo o Windows Identity Foundation (http://go.microsoft.com/fwlink/?LinkID=213729).

Veja a seguir um exemplo de token SAML.


<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" AssertionID="uuid-fa8f21f6-1f80-4a23-8744-8fe63ad3b56f" IssueInstant="2011-03-10T02:04:26Z" Issuer="uri:WindowsLiveID" MajorVersion="1" MinorVersion="1">
<saml:Conditions NotBefore="2011-03-10T02:04:26Z" NotOnOrAfter="2011-03-10T10:04:26Z">
<saml:AudienceRestrictionCondition>
<saml:Audience>accesscontrol.windows.net</saml:Audience>
</saml:AudienceRestrictionCondition>
</saml:Conditions>
<saml:AuthenticationStatement AuthenticationInstant="2011-03-10T02:04:26Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
<saml:Subject>
<saml:NameIdentifier Format="http://schemas.xmlsoap.org/claims/UPN">XXXXXXXXX@Live.com</saml:NameIdentifier></saml:Subject>
</saml:AuthenticationStatement>
<saml:AttributeStatement>
<saml:Subject>
<saml:NameIdentifier Format="http://schemas.xmlsoap.org/claims/UPN">XXXXXXXXX@Live.com</saml:NameIdentifier>
</saml:Subject>
<saml:Attribute AttributeName="Managed" AttributeNamespace="http://schemas.xmlsoap.org/claims">
<saml:AttributeValue>FALSE</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="Child" AttributeNamespace="http://schemas.xmlsoap.org/claims">
<saml:AttributeValue>FALSE</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="TOUAccepted" AttributeNamespace="http://schemas.xmlsoap.org/claims">
<saml:AttributeValue>TRUE</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="CID" AttributeNamespace="http://schemas.xmlsoap.org/claims">
<saml:AttributeValue>d55dea3aae96e63e</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="EmailAddress" AttributeNamespace="http://schemas.xmlsoap.org/claims">
<saml:AttributeValue>example@contoso.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="PUID" AttributeNamespace="http://schemas.xmlsoap.org/claims">
<saml:AttributeValue>00000000000000123</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
<Reference URI="#uuid-fa8f21f6-1f80-4a23-8744-8fe63ad3b56e">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
<DigestValue>zMqHsRnM6/UG72tqenBM3NWHoFk=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>UlUruV...=</SignatureValue>
<KeyInfo>
<X509Data>
<X509SKI>H1D81qy0njcaeJ3fI6gkn6N/jpA=</X509SKI>
</X509Data>
<KeyName>Windows Live ID</KeyName>
</KeyInfo>
</saml:Assertion>

Os tokens SWT (Simple Web Token, Token da Web Simples) atendem à especificação SimpleWebToken. Os tokens SWT são expressos como pares de chave-valor codificados em formulário assinados com uma chave criptográfica. A especificação torna obrigatória a presença de determinados pares de chave-valor, mas deixa espaço para pares de chave-valor específicos aos aplicativos. As chaves que sempre estão presentes em um token SWT emitido pelo ACS constam na tabela a seguir.

 

Chave Descrição

Issuer

Uma representação do namespace de serviço do ACS que emitiu o token. O padrão para esse valor é https://<namespacedeservico>.accesscontrol.windows.net/.

Audience

O valor do applies_to usado para solicitar o token. Esse valor é um URI do tipo HTTP ou HTTPS.

ExpiresOn

A data em que o token expira.

HMACSHA256

A assinatura HMACSHA256 de todos os outros pares de chave-valor. Este par de chave-valor é sempre o último par de chave-valor do token. A representação codificada em formulário dos outros pares de chave-valor (incluindo declarações específicas de aplicativos) é assinada.

Além desses pares de chave-valor, o ACS adiciona uma ou mais declarações a um token antes da emissão. Essas declarações são controladas pela configuração da regra presente no ACS no momento da solicitação do token. Todas essas declarações têm um tipo e um ou mais valores. Esses tipos e valores são cadeias de caracteres. Quando uma declaração contém mais de um valor, os valores são separados pelo caractere da vírgula (“,”). As declarações são codificadas como pares de chave-valor, exatamente como os pares de chave-valor descritos na tabela anterior.

Veja a seguir um exemplo de token do ACS que contém declarações representadas como pares de chave-valor.

Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255913549Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&role=Admin%2cUser&role=Admin%2cUser&&HMACSHA256=sT7Hr9z%2b3t1oDFLpq5GOToVsu6Dyxpq7hHsSAznmwnI%3d

Com exceção do par de chave-valor do HMACSHA256, esses pares podem estar em qualquer ordem. O token do ACS a seguir é equivalente ao token do ACS anterior, exceto pelas assinaturas, que são diferentes.

role=Admin%2cUser&customerName=Contoso%20Corporation&Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255912922&HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d

A tabela a seguir mostra o conteúdo do token com os valores dos URLs decodificados.

 

Origem Chave Valor codificado no URL Valor decodificado no URL

Declarações definidas pelo usuário

role

Admin%2cUser

Admin,User

customerName

Contoso%20Corporation

Contoso Corporation

Declarações definidas pelo sistema

Issuer

https%3a%2f%2fmyservice.accesscontrol.windows.net%2f

https://myservice.accesscontrol.windows.net/

Audience

http%3a%2f%2flocalhost%2fmyservice

http://localhost/myservice

ExpiresOn

1255912922

1255912922

HMACSHA256

yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d

yuVO/wc58/tYP36/DM1mS/Hr0hswpsGTWwgfvAbpL64=

Quando um token SAML 2.0, SAML 1.1 ou SWT é emitido, o ACS usa diversos protocolos padrão para retornar o token para um aplicativo ou serviço Web. O ACS tem suporte das seguintes combinações de formato/protocolo de token:

  • O ACS pode emitir e retornar tokens SAML 2.0 por meio dos protocolos WS-Trust e Web Services Federation (dependendo do protocolo usado na solicitação do token).

  • O ACS pode emitir e retornar tokens SAML 1.1 por meio do Web Services Federation e dos protocolos WS-Trust relacionados (dependendo do protocolo usado na solicitação do token).

  • O ACS pode emitir e retornar tokens SWT por meio dos protocolos Web Services Federation, WS-Trust e OAuth WRAP ou OAuth 2.0 (dependendo do protocolo usado na solicitação do token).

Consulte também

Contribuições da comunidade

Mostrar:
© 2014 Microsoft