BR112016026309B1 - METHOD IMPLEMENTED BY A COMPUTING DEVICE FOR FORKED AUTHENTICATION TOKEN TECHNIQUES - Google Patents

METHOD IMPLEMENTED BY A COMPUTING DEVICE FOR FORKED AUTHENTICATION TOKEN TECHNIQUES Download PDF

Info

Publication number
BR112016026309B1
BR112016026309B1 BR112016026309-0A BR112016026309A BR112016026309B1 BR 112016026309 B1 BR112016026309 B1 BR 112016026309B1 BR 112016026309 A BR112016026309 A BR 112016026309A BR 112016026309 B1 BR112016026309 B1 BR 112016026309B1
Authority
BR
Brazil
Prior art keywords
token
authentication
privilege data
client
lightweight
Prior art date
Application number
BR112016026309-0A
Other languages
Portuguese (pt)
Inventor
Mark F. Novak
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112016026309B1 publication Critical patent/BR112016026309B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity

Abstract

TÉCNICAS DE TOKEN DE AUTENTICAÇÃO BIFURCADA Técnicas de token de autenticação bifurcada são descritas, nas quais credenciais de controle de acesso são separadas de dados de privilégio correspondentes para recursos. Durante a autenticação do cliente, uma determinação é feita considerando se um provedor de serviços é configurado para suportar técnicas de token de autenticação bifurcada. Se as técnicas são suportadas, um token de peso leve é emitido ao cliente e dados de privilégio correspondentes são armazenados separadamente a partir do token em um banco de dados de autenticação centralizada. Se um provedor de serviços não suporta técnicas de token de autenticação bifurcada, um token de autenticação combinado tradicional que inclui dados de privilégio é emitido ao cliente. O token de peso leve contém informação de identidade e uma referência aos dados de privilégio, mas não contém os dados de privilégio atuais. Portanto, o token de cookie de peso leve sozinho não é suficiente para ganhar acesso a recursos correspondentes. Além do mais, os privilégios associados com um token de peso leve podem ser revogados ou alterados sem ter que trocar ou invalidar o token de peso leve por si mesmo.FORK AUTHENTICATION TOKEN TECHNIQUES Forked authentication token techniques are described, in which access control credentials are separated from corresponding privilege data for resources. During client authentication, a determination is made by considering whether a service provider is configured to support forked authentication token techniques. If the techniques are supported, a lightweight token is issued to the client and corresponding privilege data is stored separately from the token in a centralized authentication database. If a service provider does not support forked authentication token techniques, a traditional combined authentication token that includes privilege data is issued to the customer. The lightweight token contains identity information and a reference to privilege data, but does not contain the actual privilege data. Therefore, the lightweight cookie token alone is not enough to gain access to corresponding resources. Furthermore, the privileges associated with a lightweight token can be revoked or changed without having to exchange or invalidate the lightweight token itself.

Description

ANTECEDENTESBACKGROUND

[001] Os usuários de dispositivos de computação podem usar contas locais e online para acessar vários recursos de computação. Os usuários podem buscar acesso a suas contas de diferentes dispositivos e também podem compartilhar dispositivos para acessar as respectivas contas. A autenticação de usuários para provar que os usuários "são quem eles dizem que são", diferenciar entre usuários e prover acesso seletivo a recursos de computação é um desafio persistente enfrentado pelos provedores de serviços. Tradicionalmente, as técnicas de autenticação podem contar com segredos compartilhados tais como senhas e/ou tokens digitais (por exemplo, bilhetes de concessão de bilhetes TGTs, blobs criptografados, cookies, ou outras credenciais de controle de acesso). No entanto, segredos compartilhados e tokens digitais podem ser furtados ou comprometidos. Além do mais, tokens tradicionais podem incluir tanto identidade como dados de privilégio de modo que a posse de um token digital válido (mesmo se furtado) é suficiente para ganhar acesso a recursos correspondentes apresentando o token a um provedor de serviços. Assim, embora técnicas de autenticação baseadas em segredos compartilhados possam se eficazes existem alguns inconvenientes associados com as técnicas existentes.[001] Users of computing devices can use local and online accounts to access various computing resources. Users can seek access to their accounts from different devices and can also share devices to access respective accounts. User authentication to prove that users "are who they say they are", differentiate between users, and provide selective access to computing resources is a persistent challenge faced by service providers. Traditionally, authentication techniques may rely on shared secrets such as passwords and/or digital tokens (e.g., TGTs ticket grant tickets, encrypted blobs, cookies, or other access control credentials). However, shared secrets and digital tokens can be stolen or compromised. Furthermore, traditional tokens can include both identity and privilege data so that possession of a valid digital token (even if stolen) is sufficient to gain access to corresponding resources by presenting the token to a service provider. Thus, although authentication techniques based on shared secrets can be effective, there are some drawbacks associated with existing techniques.

SUMÁRIOSUMMARY

[002] São descritas técnicas de token de autenticação bifurcada. Em uma ou mais implementações, um serviço de autenticação é configurado para separar credenciais de controle de acesso de dados de privilégio correspondentes para recursos que suportam técnicas de token de autenticação bifurcada. Para assim fazer, o serviço de autenticação pode fazer uma determinação em conexão com a autenticação de um cliente como para se um provedor de serviços fosse configurado para suportar técnicas de token de autenticação bifurcadas. Se as técnicas forem suportadas, um token leve é emitido ao cliente e dados de privilégio correspondentes são armazenados em um banco de dados de autenticação centralizado do qual os provedores de serviços podem procurar dados de privilégio. Se, por outro lado, um provedor de serviços não suporta as técnicas de token de autenticação bifurcadas, um token de autenticação tradicional combinado com o cliente que inclui dados de privilégio é emitido ao cliente.[002] Forked authentication token techniques are described. In one or more implementations, an authentication service is configured to separate access control credentials from corresponding privilege data for resources that support forked authentication token techniques. To do so, the authentication service may make a determination in connection with the authentication of a client as if a service provider were configured to support forked authentication token techniques. If the techniques are supported, a lightweight token is issued to the client and corresponding privilege data is stored in a centralized authentication database from which service providers can search privilege data. If, on the other hand, a service provider does not support forked authentication token techniques, a traditional client-side authentication token that includes privilege data is issued to the client.

[003] O token leve usado para as técnicas de token de autenticação bifurcadas pode ser configurado para conter informação de identidade e um link/referência aos dados de privilégio, mas não contém os dados de privilégio atuais. Portanto, o token de cookie de peso leve sozinho não é suficiente para ganhar acesso a recursos correspondentes. Além do mais, os privilégios associados com um token leve pode ser revogado ou alterado trocando os dados de privilégio no banco de dados de autenticação centralizado e sem ter que trocar ou invalidar o token leve por si mesmo.[003] The lightweight token used for forked authentication token techniques may be configured to contain identity information and a link/reference to privilege data, but does not contain the actual privilege data. Therefore, the lightweight cookie token alone is not enough to gain access to corresponding resources. Furthermore, the privileges associated with a lightweight token can be revoked or changed by exchanging the privilege data in the centralized authentication database and without having to exchange or invalidate the lightweight token yourself.

[004] Este sumário é provido para introduzir uma seleção de conceitos em uma forma simplificada que são ainda descritos abaixo na Descrição Detalhada. Este sumário não é destinado a identificar aspectos chave ou aspectos essenciais do assunto reivindicado, nem é destinado a ser usado para limitar o escopo do assunto reivindicado.[004] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key aspects or essential aspects of the subject matter claimed, nor is it intended to be used to limit the scope of the subject matter claimed.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[005] A figura 1 ilustra um ambiente operacional exemplar em que técnicas de token de autenticação bifurcadas podem ser empregadas.[005] Figure 1 illustrates an exemplary operating environment in which forked authentication token techniques can be employed.

[006] A figura 2 é um diagrama mostrando um cenário de interação exemplar para emitir tokens de acordo com uma ou mais implementações.[006] Figure 2 is a diagram showing an exemplary interaction scenario for issuing tokens according to one or more implementations.

[007] A figura 3 é um diagrama mostrando um cenário de interação exemplar em que tokens são empregados para controlar acesso a recursos de acordo com uma ou mais implementações.[007] Figure 3 is a diagram showing an exemplary interaction scenario in which tokens are employed to control access to resources according to one or more implementations.

[008] A figura 4 é um diagrama de fluxo que descreve detalhes de um procedimento exemplar em que um serviço de autenticação emite seletivamente autenticação tokens para acesso a recursos.[008] Figure 4 is a flow diagram describing details of an exemplary procedure in which an authentication service selectively issues authentication tokens for access to resources.

[009] A figura 5 é um diagrama de fluxo que descreve detalhes de um procedimento exemplar em que um provedor de serviços controla o acesso a recursos baseado em um token leve.[009] Figure 5 is a flow diagram describing details of an exemplary procedure in which a service provider controls access to resources based on a lightweight token.

[0010] A figura 6 é um diagrama de fluxo que descreve detalhes de um procedimento exemplar em que os privilégios associados com um token leve são modificados.[0010] Figure 6 is a flow diagram describing details of an exemplary procedure in which privileges associated with a lightweight token are modified.

[0011] A figura 7 é um digrama de bloco de um sistema mostrando detalhes de dispositivos e componentes exemplares de acordo com uma ou mais implementações.[0011] Figure 7 is a block diagram of a system showing details of exemplary devices and components in accordance with one or more implementations.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION Visão GeralOverview

[0012] Tradicionalmente, as técnicas de autenticação podem confiar em segredos compartilhados tais como senhas e/ou tokens digitais (por exemplo, bilhetes de concessão de bilhete TGTs, blobs criptografados cookies, ou outras credenciais de controle de acesso). No entanto, os segredos compartilhados e tokens digitais podem ser furtados ou comprometidos. Além disso, os tokens podem ser emitidos com períodos de validade longos durante os quais os direitos a acesso podem mudar. Além do mais, os tokens tradicionais podem incluir tanto identidade como dados de privilégio de modo que a posse de um token digital válido (mesmo se furtado) é suficiente para ganhar acesso a recursos correspondentes apresentando o token a um provedor de serviços.[0012] Traditionally, authentication techniques may rely on shared secrets such as passwords and/or digital tokens (e.g., TGTs ticket grant tickets, encrypted blobs cookies, or other access control credentials). However, shared secrets and digital tokens can be stolen or compromised. Furthermore, tokens can be issued with long validity periods during which access rights can change. Furthermore, traditional tokens can include both identity and privilege data so that possession of a valid digital token (even if stolen) is sufficient to gain access to corresponding resources by presenting the token to a service provider.

[0013] São descritas técnicas de token de autenticação bifurcadas. Em uma ou mais implementações, um serviço de autenticação é configurado para separar credenciais de controle de acesso a dados de privilégio correspondentes parar recursos e provedores de serviços que suportam as técnicas de token de autenticação bifurcadas. Para assim fazer, o serviço de autenticação pode fazer uma determinação em conexão com a autenticação de um cliente como para se um provedor de serviços associado com um recurso que o cliente está tentando acessar fosse configurado para suportar as técnicas de token de autenticação bifurcadas. Se as técnicas de token de autenticação bifurcadas são suportadas, um token leve (por exemplo, um cookie) é emitido ao cliente e os dados de privilégio correspondentes são armazenados em um banco de dados de autenticação centralizado do qual os provedores de serviços podem procurar os dados de privilégio. Se, por outro lado, um provedor de serviços não suporta as técnicas de token de autenticação bifurcadas, um token de autenticação tradicional combinado que inclui dados de privilégio é emitido ao cliente.[0013] Forked authentication token techniques are described. In one or more implementations, an authentication service is configured to separate corresponding privilege data access control credentials for resources and service providers that support forked authentication token techniques. To do so, the authentication service may make a determination in connection with authenticating a client as to whether a service provider associated with a resource that the client is attempting to access is configured to support forked authentication token techniques. If forked authentication token techniques are supported, a lightweight token (e.g., a cookie) is issued to the client and the corresponding privilege data is stored in a centralized authentication database from which service providers can look up the privilege data. If, on the other hand, a service provider does not support forked authentication token techniques, a combined traditional authentication token that includes privilege data is issued to the customer.

[0014] O token leve usado para as técnicas de token de autenticação bifurcadas pode ser configurado para conter informação de identidade e um link/referência para os dados de privilégio, mas não contém os dados de privilégio atuais. Portanto, o token leve sozinho não é suficiente para ganhar acesso a recursos correspondentes. Como o token leve não contém dados de privilégio, o token leve pode ter um tamanho que é significativamente menor do que tokens combinados tradicionais. Além do mais, os privilégios associados com um token leve podem ser revogados ou alterados trocando os dados de privilégio no banco de dados de autenticação centralizado e sem ter que trocar ou invalidar o token leve por si mesmo.[0014] The lightweight token used for the forked authentication token techniques may be configured to contain identity information and a link/reference to the privilege data, but does not contain the actual privilege data. Therefore, the lightweight token alone is not enough to gain access to corresponding resources. Because the lightweight token does not contain privilege data, the lightweight token can have a size that is significantly smaller than traditional blended tokens. Furthermore, the privileges associated with a lightweight token can be revoked or changed by exchanging the privilege data in the centralized authentication database and without having to exchange or invalidate the lightweight token itself.

[0015] Na discussão que segue, uma seção intitulada "Ambiente Operacional" é provida e descreve um ambiente em que uma ou mais modalidades pode ser empregada. Após isto, uma seção intitulada "Exemplos de Token de Autenticação Bifurcado " descreve técnicas e detalhes de acordo com uma ou mais implementações. Por último, uma seção intitulada "Sistema Exemplar" descreve sistemas e dispositivos de computação exemplares que podem ser utilizados em uma ou mais implementações.[0015] In the discussion that follows, a section entitled "Operational Environment" is provided and describes an environment in which one or more modalities may be employed. After this, a section titled "Forked Authentication Token Examples" describes techniques and details according to one or more implementations. Lastly, a section entitled "Exemplary System" describes exemplary computing systems and devices that can be used in one or more implementations.

Ambiente OperacionalOperating Environment

[0016] A figura 1 geralmente ilustra um ambiente operacional de acordo com uma ou mais modalidades, geralmente em 100. O ambiente 100 inclui um dispositivo de computação 102 que é acoplado comunicativamente sobre uma rede 104 a um provedor de serviços 106. O dispositivo de computação pode ser configurado de vários modos para acessar e interagir com vários recursos 107 (por exemplo, conteúdo e serviços) que se tornam disponíveis pelo provedor de serviços sobre a rede 104. Os recursos 107 podem incluir qualquer combinação apropriada de conteúdo e/ou serviços tipicamente tornados disponíveis sobre uma rede por um ou mais provedores de serviços. Por exemplo, o conteúdo pode incluir várias combinações de texto, vídeo, anúncios, áudio, fluxos de multimídia, animações, imagens, páginas da web, e semelhantes. Alguns exemplos de serviços incluem, mas não estão limitados a, um serviço de computação online (por exemplo, computação em "nuvem"), um serviço de autenticação, aplicativos baseados na web, um armazenamento de arquivo e serviço de colaboração, um serviço de pesquisa, serviços de mensagem tais como mensagem de email e/ou instantânea, e um serviço de rede social.[0016] Figure 1 generally illustrates an operating environment in accordance with one or more embodiments, generally in 100. The environment 100 includes a computing device 102 that is communicatively coupled over a network 104 to a service provider 106. The computing device computing may be configured in various ways to access and interact with various resources 107 (e.g., content and services) that are made available by the service provider over the network 104. The resources 107 may include any appropriate combination of content and/or services typically made available over a network by one or more service providers. For example, content may include various combinations of text, video, advertisements, audio, multimedia streams, animations, images, web pages, and the like. Some examples of services include, but are not limited to, an online computing service (e.g., "cloud" computing), an authentication service, web-based applications, a file storage and collaboration service, a search, messaging services such as email and/or instant messaging, and a social networking service.

[0017] O dispositivo de computação também é representado como incluindo um sistema operacional 108 e um ou mais aplicativos 110 que podem residir nos meios legíveis por computador e que são executáveis por um sistema de processamento do dispositivo de computação. O sistema de processamento pode ser configurado de vários modos para recuperar e executar instruções de programa de computador de aplicativos 110 para prover uma ampla faixa de funcionalidade ao dispositivo de computação 102, incluindo mas não limitada a acesso a recursos locais disponíveis a partir do sistema operacional 108, jogos, produtividade de escritório, email, gerenciamento de mídia, impressão, rede, navegação na web para acessar os recursos 107, e assim por diante. Uma variedade de arquivos de dados e de programas relacionados aos aplicativos pode ser incluída, exemplos dos quais incluem arquivos de jogos, documentos de escritório, arquivos de multimídia, emails, arquivos de dados, páginas da web, perfil de usuário e/ou dados de preferência, e assim por diante.[0017] The computing device is also represented as including an operating system 108 and one or more applications 110 that may reside on the computer-readable media and that are executable by a processing system of the computing device. The processing system may be configured in various ways to retrieve and execute application computer program instructions 110 to provide a wide range of functionality to the computing device 102, including but not limited to accessing local resources available from the operating system. 108, gaming, office productivity, email, media management, printing, networking, web browsing to access resources 107, and so on. A variety of application-related data and program files may be included, examples of which include game files, office documents, multimedia files, emails, data files, web pages, user profile and/or data preference, and so on.

[0018] O dispositivo de computação 102 pode ser incorporado como qualquer sistema e/ou dispositivo de computação apropriado tais como, a título de exemplo e não de limitação, um sistema de jogos, um computador desktop, um computador portátil, um tablet ou computador de imagem fixa, um computador de mão tal como um assistente digital pessoal (PDA), um telefone celular, um decodificador de sinais, e semelhante. Por exemplo, o dispositivo de computação 102 pode ser implementado como um dispositivo de cliente de televisão, um computador e/ou um sistema de jogos que é conectado a um dispositivo de vídeo para exibir conteúdo de mídia. Alternativamente, o dispositivo de computação pode ser qualquer tipo de computador portátil, telefone móvel, dispositivo portátil ou dispositivo de imagem fixa, e/ou pode incluir um monitor integrado. Qualquer um dos dispositivos de computação pode ser implementado com vários componentes, tal como um ou mais processadores e dispositivos de memória, bem como com qualquer combinação de componentes diferentes. Um exemplo de um sistema de computação que pode representar vários sistemas e/ou dispositivos incluindo o dispositivo de computação 102 é mostrado e descrito abaixo na figura 7.[0018] The computing device 102 may be incorporated as any appropriate computing system and/or device such as, by way of example and not limitation, a gaming system, a desktop computer, a laptop computer, a tablet or desktop computer. imager, a handheld computer such as a personal digital assistant (PDA), a cellular telephone, a set-top box, and the like. For example, the computing device 102 may be implemented as a television client device, a computer, and/or a gaming system that is connected to a video device to display media content. Alternatively, the computing device may be any type of portable computer, mobile telephone, handheld device, or still image device, and/or may include an integrated display. Any of the computing devices can be implemented with multiple components, such as one or more processors and memory devices, as well as with any combination of different components. An example of a computing system that can represent multiple systems and/or devices including computing device 102 is shown and described below in Figure 7.

[0019] Os meios legíveis por computador podem incluir, a título de exemplo e não de limitação, todas as formas de memória volátil e não volátil e/ou meios de armazenamento que são tipicamente associados com um dispositivo de computação. Tais meios podem incluir ROM, RAM, memória flash, disco rígido, meios removíveis e semelhantes. Os meios legíveis por computador podem incluir tanto "meios de armazenamento legíveis por computador" como "meios de comunicação", exemplos dos quais podem ser encontrados na discussão do sistema de computação exemplar da figura 7.[0019] Computer-readable media may include, by way of example and not limitation, all forms of volatile and non-volatile memory and/or storage media that are typically associated with a computing device. Such media may include ROM, RAM, flash memory, hard disk, removable media, and the like. Computer-readable media may include both "computer-readable storage media" and "communication media", examples of which can be found in the discussion of the exemplary computing system of Figure 7.

[0020] As técnicas de token de autenticação bifurcadas descritas no presente documento podem ser usadas para controlar o acesso do cliente a qualquer uma ou tanto às contas locais como às contas baseadas na web. O dispositivo de computação pode, por exemplo, ser empregado por um usuário para tentar um log-in a uma conta de usuário afirmando-se as credenciais 112 que podem ser verificadas através de um serviço de autenticação 114 como parte da sequência de autenticações. Consequentemente, o serviço de autenticação 114 representa a funcionalidade operável para resolver um ID de usuário para controlar o cesso aos recursos 107. O serviço de autenticação 114 pode ser provido por um provedor de serviços 106 dos quais os recursos 107 são procurados, como um serviço como um serviço autônomo (como ilustrado), ou de outra forma. O serviço de autenticação 114 pode implementar uma sequência de autenticações usando vários protocolos para determinar que um usuário procurando acesso a recursos é o que eles reivindicam, estar e/ou estarem autorizado(s) a acessar os recursos. Protocolos de autenticação exemplares que podem ser utilizados incluem, mas não estão limitados a Kerberos, Active Directory Federation Services (ADFS), e Host Identity Protocol (HIP), para citar alguns.[0020] The forked authentication token techniques described herein can be used to control customer access to either or both local accounts and web-based accounts. The computing device may, for example, be employed by a user to attempt to log in to a user account by asserting credentials 112 that may be verified through an authentication service 114 as part of the authentication sequence. Accordingly, authentication service 114 represents functionality operable to resolve a user ID to control access to resources 107. Authentication service 114 may be provided by a service provider 106 from which resources 107 are sought, as a service as a standalone service (as illustrated), or otherwise. The authentication service 114 may implement a sequence of authentications using various protocols to determine that a user seeking access to resources is what they claim to be and/or are authorized to access the resources. Exemplary authentication protocols that can be used include, but are not limited to Kerberos, Active Directory Federation Services (ADFS), and Host Identity Protocol (HIP), to name a few.

[0021] O serviço de autenticação 114 pode verificar as credenciais 112 afirmadas contra credenciais (por exemplo, ID de usuário, senha, chave, segredo compartilhado, etc.) que são mantidas em associação com contas como parte de dados da conta do usuário quando a autenticação é bem-sucedida (por exemplo, o cliente "é quem eles dizem que são"), o serviço de autenticação pode emitir token(s) (por exemplo, blobs criptografados TGTs, cookies, e/ou outras credenciais de controle de acesso apropriadas) para possibilitar acesso a recursos correspondentes. Em uma implementação, o serviço de autenticação 114 pode ser configurado para suportar técnicas de token combinadas tradicionais bem como as técnicas de token de autenticação bifurcadas em que os dados de privilégio são separados de um token correspondente, por exemplo, um token leve. Uma autenticação única pode corresponder a um ou mais recursos 107, de modo que a autenticação para uma conta única por um "controle por escrito único" pode prover acesso a recursos individuais, recursos de múltiplos provedores de serviços 106, e/ou a um pacote de recursos disponíveis de um provedor de serviços 106. Assim, na verificação bem-sucedida das credenciais 112, o dispositivo de computação pode ser conectado a uma conta de usuário e, portanto, pode ser dado acesso a recursos 107 autorizado para a conta. Se o serviço de autenticação é incapaz de verificar as credenciais, o acesso aos recursos 107 é negado, um lembrete para repetir pode ser emitido, e assim por diante.[0021] Authentication service 114 may verify asserted credentials 112 against credentials (e.g., user ID, password, key, shared secret, etc.) that are maintained in association with accounts as part of user account data when authentication is successful (e.g., the client "is who they say they are"), the authentication service may issue token(s) (e.g., TGTs encrypted blobs, cookies, and/or other security control credentials). appropriate access) to enable access to corresponding resources. In one implementation, the authentication service 114 may be configured to support traditional blended token techniques as well as forked authentication token techniques in which the privilege data is separated from a corresponding token, e.g., a lightweight token. A single authentication may correspond to one or more resources 107, such that authentication for a single account by a "single written control" may provide access to individual resources, resources from multiple service providers 106, and/or to a package of available resources from a service provider 106. Thus, on successful verification of credentials 112, the computing device can be connected to a user account and therefore authorized access to resources 107 can be given to the account. If the authentication service is unable to verify credentials, access to resources 107 is denied, a reminder to retry may be issued, and so on.

[0022] Tendo descrito um ambiente operacional exemplar, considerar agora detalhes exemplares com respeito a autenticação baseada em desafio de entrada de acordo com uma ou mais modalidades.[0022] Having described an exemplary operating environment, we now consider exemplary details regarding input challenge-based authentication in accordance with one or more embodiments.

Exemplos de Token de Autenticação BifurcadoForked Authentication Token Examples

[0023] Na seção seguinte, detalhes de implementação e técnicas exemplares para técnicas de token de autenticação bifurcadas são discutidos. A discussão inclui alguns do(s) procedimento(s) exemplar(es) que pode(m) ser implementado(s) em conexão com qualquer hardware, software, firmware apropriados, ou combinação dos mesmos. Em pelo menos algumas modalidades, os procedimentos podem ser implementados por meio de um dispositivo de computação configurado apropriadamente que inclui ou de outro modo faz uso de um serviço de autenticação 114. Os aspectos do procedimento também podem ser implementados por um dispositivo de computação 102 e/ou pela funcionalidade que é distribuída entre um provedor de serviços 106 e um dispositivo de computação 102.[0023] In the following section, implementation details and exemplary techniques for forked authentication token techniques are discussed. The discussion includes some of the exemplary procedure(s) that can be implemented in connection with any appropriate hardware, software, firmware, or combination thereof. In at least some embodiments, the procedures may be implemented through an appropriately configured computing device that includes or otherwise makes use of an authentication service 114. Aspects of the procedure may also be implemented by a computing device 102 and /or by functionality that is distributed between a service provider 106 and a computing device 102.

Cenários de Interação ExemplaresExemplary Interaction Scenarios

[0024] A figura 2 representa geralmente em 200 um cenário de interação exemplar em que tokens de autenticação são emitidos a um cliente. Em particular, o cenário de interação exemplar representa operações que podem ser realizadas por um ou mais componentes do ambiente operacional exemplar 100 da figura 1 que são rotulados usando as letras "A" a "E". Por exemplo, em "A" um cliente/usuário 201 pode operar um dispositivo de computação 102 para formar uma solicitação de acesso 202 para obter recursos 107 de um provedor de serviços 106. Por exemplo, um navegador pode ser navegado para um site da web particular e/ou serviço da web tornado acessível pelo provedor de serviços 106 sobre uma rede 104. Em resposta à solicitação de acesso 202, o provedor de serviços 106 em "B" pode emitir um desafio 204 para autenticação de usuário, que inicia uma sequência de autenticações. Em algumas implementações, o provedor de serviços 106 pode incorporar um serviço de autenticação 114 para realizar autenticação de clientes/usuário 201 em seu próprio nome. Além disso, ou, alternativamente, o provedor de serviços 106 pode configurar o desafio 204 para causar o redirecionamento do dispositivo de computação para um serviço de autenticação 114 externo e/ou de terceiro operável para realizar autenticações em nome de um ou mais provedores de serviços 106 para acesso a recursos correspondentes.[0024] Figure 2 represents generally 200 an exemplary interaction scenario in which authentication tokens are issued to a client. In particular, the exemplary interaction scenario represents operations that may be performed by one or more components of the exemplary operating environment 100 of Figure 1 that are labeled using the letters "A" through "E". For example, at "A" a client/user 201 may operate a computing device 102 to form an access request 202 to obtain resources 107 from a service provider 106. For example, a browser may be navigated to a website particular and/or web service made accessible by the service provider 106 over a network 104. In response to the access request 202, the service provider 106 at "B" may issue a challenge 204 for user authentication, which initiates a sequence of authentications. In some implementations, the service provider 106 may incorporate an authentication service 114 to perform client/user authentication 201 on its own behalf. Additionally, or alternatively, service provider 106 may configure challenge 204 to cause redirection of the computing device to an external and/or third-party authentication service 114 operable to perform authentications on behalf of one or more service providers. 106 for access to corresponding resources.

[0025] Como parte da sequência de autenticações, o cliente/usuário 201 pode ser representado com uma página de log-in ou outra interface apropriada associada com o serviço de autenticação 114 que provê uma solicitação para introduzir as credenciais 112 para autenticação. Em "C", o dispositivo de computação 102 pode comunicar as credenciais 112 supridas pelo cliente/usuário em resposta à solicitação para o serviço de autenticação 114 para verificação. As credenciais 112 podem ser, por exemplo, um ID de usuário e combinação de senha. Outros tipos de esquemas de autenticação e tipos correspondentes de credenciais também são contemplados, tais como o uso de desafios baseados em imagem, um padrão de entrada estabelecido, uma combinação de gesto de toque, autenticação biométrica, um código, e assim por diante. Como notado, o serviço de autenticação 114 pode verificar as credenciais 112 afirmadas verificando as mesmas contra credenciais conhecidas que são mantidas em associação com contas como parte de dados de conta de usuário. Além disso, o serviço de autenticação 114 pode ser configurado para suportar técnicas de token combinadas tradicionais bem como as técnicas de tokens de autenticação bifurcados em que dados de privilégio são separados de um token correspondentes (por exemplo, um token leve).[0025] As part of the authentication sequence, the client/user 201 may be represented with a login page or other appropriate interface associated with the authentication service 114 that provides a request to enter credentials 112 for authentication. In "C", the computing device 102 may communicate the credentials 112 provided by the client/user in response to the request to the authentication service 114 for verification. Credentials 112 may be, for example, a user ID and password combination. Other types of authentication schemes and corresponding types of credentials are also contemplated, such as the use of image-based challenges, an established input pattern, a combination of touch gesture, biometric authentication, a code, and so on. As noted, the authentication service 114 may verify the asserted credentials 112 by checking them against known credentials that are maintained in association with accounts as part of user account data. Additionally, authentication service 114 may be configured to support traditional combined token techniques as well as forked authentication token techniques in which privilege data is separated from a corresponding token (e.g., a lightweight token).

[0026] Assim, na autenticação de credenciais 112 bem-sucedida pelo serviço de autenticação 114, o serviço de autenticação 114 em "D" pode emitir pelo menos um token de autenticação 206 e comunicar o(s) token(s) de autenticação 206 de volta ao dispositivo de computação 102 para uso para acessar os recursos correspondentes. Os tokens de autenticação 206 podem ser configurados como vários tipos de tokens tais como bilhetes de concessão de bilhete TGTs, blobs criptografados, cookies, ou outro controle de acesso a credenciais apropriadas usadas em conexão com vários protocolos de autenticação. Como discutido em detalhe acima e abaixo, o serviço de autenticação 114 pode operar ainda para fazer determinação sobre um recurso pelo recurso e/ou provedor pelo provedor pelas bases de provedor se emitir (por exemplo, tokens leves (por exemplo, quando técnicas de tokens de autenticação bifurcados são suportadas) ou tokens combinados do tipo tradicional (por exemplo, para provedores e recursos que não suportam token de autenticação bifurcado). A fim de identificar e distinguir entre provedores/recursos que suportam tokens de autenticação bifurcados e os que não, o serviço de autenticação 114 pode referenciar dados apropriados tais como tabela, banco de dados, arquivo, lista, ou outra estrutura de dados tendo propriedades, campos, e/ou metadados indicativos de se ou não provedores/recursos particulares suportam autenticação bifurcada. O serviço de autenticação 114 podem então prover seletivamente tokens de autenticação em formatos diferentes baseados em determinações de suporte.[0026] Thus, upon successful authentication of credentials 112 by the authentication service 114, the authentication service 114 at "D" may issue at least one authentication token 206 and communicate the authentication token(s) 206 back to computing device 102 for use in accessing corresponding resources. The authentication tokens 206 may be configured as various types of tokens such as TGTs ticket grant tickets, encrypted blobs, cookies, or other access control appropriate credentials used in connection with various authentication protocols. As discussed in detail above and below, the authentication service 114 may further operate to make determination about a resource by the resource and/or provider by the provider bases if it is issued (e.g., lightweight tokens (e.g., when token techniques authentication tokens are supported) or combined tokens of the traditional type (e.g. for providers and resources that do not support forked authentication token). In order to identify and distinguish between providers/resources that support forked authentication tokens and those that do not, The authentication service 114 may reference appropriate data such as a table, database, file, list, or other data structure having properties, fields, and/or metadata indicative of whether or not particular providers/resources support forked authentication. authentication tokens 114 may then selectively provide authentication tokens in different formats based on support determinations.

[0027] Consequentemente, os tokens de autenticação 206 emitidos pelo serviço de autenticação 114 podem ou não podem ser configurados para conter dados de privilégio correspondentes 208. Os dados de privilégio 208 são configurados para indicar privilégios de acesso que são concedidos a clientes/usuários através de contas correspondentes. Em outras palavras, os dados de privilégio 208 proveem indicações de recursos e/ou provedores de serviços com os quais um cliente/usuário é permitido interagir. Os dados de privilégio 208 também podem incluir uma indicação de um período de tempo de validade designado durante o qual o token é válido, que pode estar na ordem de horas, dias, ou semanas. Os dados de privilégio 208 podem ainda englobar vários outros metadados tais como preferências, números de membros do grupo, indicações de contexto, indicações de local, seleções de linguagem, reivindicações de identidade, níveis de serviço, capacidades de dispositivos, e assim por diante.[0027] Accordingly, authentication tokens 206 issued by authentication service 114 may or may not be configured to contain corresponding privilege data 208. Privilege data 208 is configured to indicate access privileges that are granted to clients/users through of corresponding accounts. In other words, privilege data 208 provides indications of resources and/or service providers with which a client/user is permitted to interact. The privilege data 208 may also include an indication of a designated validity period of time during which the token is valid, which may be on the order of hours, days, or weeks. Privilege data 208 may further encompass various other metadata such as preferences, group membership numbers, context cues, location cues, language selections, identity claims, service levels, device capabilities, and so on.

[0028] Nos tokens tradicionais, os dados de privilégio 208 podem ser combinados com informação de identidade em um token concedido. Por exemplo, os dados de privilégio 208 podem ser criptografados dentro de um token baseado em Kerberos como um certificado de atributo de privilégio (PAC) e/ou em outros modos pra protocolos de autenticação diferentes. Um provedor de serviços pode, portanto, utilizar um token que contém dados de privilégio 208 diretamente para identificar um usuário e extrair privilégios de acesso correspondentes para controlar o recurso 107. Esta abordagem não envolve ter que procurar privilégios de uma fonte que não o token apresentado. Um inconveniente para esta abordagem, no entanto, é que durante o período de tempo de validade um token, mesmo se compreendido ou furtado, é suficiente para ganhar acesso a recursos correspondentes apresentando o token a um provedor de serviços. Uma vez que o token combinado é essencialmente auto-contido, pode ser difícil revogar ou trocar os privilégios associados. Além disso, embutindo os dados de privilégio 208 dentro do token aumenta o tamanho do token e em alguns casos pode resultar em largura de banda excedentes ou limites de tamanho colocados nos cabeçalhos, tamanho do token, e/ou tráfego de rede.[0028] In traditional tokens, privilege data 208 may be combined with identity information into a granted token. For example, privilege data 208 may be encrypted within a Kerberos-based token such as a privilege attribute certificate (PAC) and/or in other modes for different authentication protocols. A service provider can therefore utilize a token containing privilege data 208 directly to identify a user and extract corresponding access privileges to control resource 107. This approach does not involve having to look up privileges from a source other than the presented token. . A drawback to this approach, however, is that during the validity time period a token, even if understood or stolen, is sufficient to gain access to corresponding resources by presenting the token to a service provider. Since the combined token is essentially self-contained, it may be difficult to revoke or exchange associated privileges. Additionally, embedding privilege data 208 within the token increases the size of the token and in some cases may result in bandwidth overruns or size limits placed on headers, token size, and/or network traffic.

[0029] Assim, de acordo com as técnicas de tokens de autenticação bifurcados, o serviço de autenticação 114 pode ser configurado para separar os dados de privilégio 208 de tokens emitidos e armazenar os dados de privilégio em uma local de armazenamento acessível à rede, tal como em um banco de dados de autenticação centralizado 210 como representado na figura 2. O banco de dados de autenticação centralizado 210 pode ser representativo de um repositório centralizado e/ou replicado para dados de conta de cliente/usuário incluindo dados de privilégio 208. O banco de dados de autenticação centralizado 210 pode ser configurado como um componente integrado do serviço de autenticação 114 ou alternativamente pode ser provido como um serviço autônomo implementado por servidor(es) e/ou provedor(es) iguais ou diferentes (e.g., um serviço externo).[0029] Thus, in accordance with forked authentication token techniques, authentication service 114 may be configured to separate privilege data 208 from issued tokens and store the privilege data in a network-accessible storage location, such as in a centralized authentication database 210 as depicted in Figure 2. The centralized authentication database 210 may be representative of a centralized and/or replicated repository for customer/user account data including privilege data 208. Centralized authentication database 210 may be configured as an integrated component of the authentication service 114 or alternatively may be provided as a stand-alone service implemented by the same or different server(s) and/or provider(s) (e.g., an external service ).

[0030] Por exemplo, em "E" os dados de privilégio 208 associados com um token emitido é representado como sendo comunicado para armazenamento no banco de dados de autenticação centralizado 210. Neste exemplo, o token de autenticação 206 emitido em "D" pode ser configurado como um token leve que não contém os dados de privilégio 208. Preferivelmente, o token leve pode ser configurado para conter um link, URL, endereço, ou outra referência ao local de armazenamento acessível à rede do qual os provedores de serviços podem obter dados de privilégio correspondentes 208. Em uma abordagem, o token leve pode ser configurado como um cookie relativamente pequeno que inclui a referência ao armazenamento acessível à rede. A referência é utilizável por um provedor de serviços para procurar dados de privilégio associados com o cliente a partir do banco de dados de autenticação centralizado 210 (ou outro local de armazenamento). O token leve, contudo, não contém dados de privilégio suficientes para habilitar o provedor de serviços a determinar recursos que o cliente está autorizado a usar sem uma procura a partir do banco de dados de autenticação centralizado. Assim, de um modo geral, os tokens de autenticação combinada contêm e os tokens leves não contêm informação suficiente para possibilitar uma determinação pelos provedores de serviços com referência aos privilégios de acesso dos clientes sem confiança na informação externa.[0030] For example, in "E" the privilege data 208 associated with an issued token is represented as being communicated for storage in the centralized authentication database 210. In this example, the authentication token 206 issued in "D" may be configured as a lightweight token that does not contain privilege data 208. Preferably, the lightweight token may be configured to contain a link, URL, address, or other reference to the network-accessible storage location from which service providers can obtain corresponding privilege data 208. In one approach, the lightweight token may be configured as a relatively small cookie that includes a reference to network-accessible storage. The reference is usable by a service provider to look up privilege data associated with the client from the centralized authentication database 210 (or other storage location). The lightweight token, however, does not contain sufficient privilege data to enable the service provider to determine resources that the client is authorized to use without a lookup from the centralized authentication database. Thus, generally speaking, combined authentication tokens do not contain sufficient information to enable a determination by service providers with reference to clients' access privileges without reliance on external information.

[0031] Os privilégios associados com um token leve emitido podem ser revogados ou trocados modificando os dados de privilégio 208 mantidos nos banco de dados de autenticação centralizado 210. Esta modificação de privilégios pode ocorrer sem alterar o token leve ou afetar a validade do token leve. Em outras palavras, os privilégios podem ser trocados enquanto um token permanece válido e o token é subsequentemente utilizável para acessar recursos de acordo com o privilégio modificado. Pouco ou nenhum retardo existe entre modificar privilégios ou forçar os privilégios de acesso quando um token é apresentado. Além do mais, as trocas de privilégio tomam efeito sem ter que re-autenticar ou emitir um novo token de autenticação para o usuário/cliente.[0031] Privileges associated with an issued soft token may be revoked or exchanged by modifying privilege data 208 maintained in centralized authentication databases 210. This modification of privileges may occur without altering the soft token or affecting the validity of the soft token . In other words, privileges can be exchanged while a token remains valid and the token is subsequently usable to access resources according to the modified privilege. Little or no delay exists between modifying privileges or enforcing access privileges when a token is presented. Furthermore, privilege switches take effect without having to re-authenticate or issue a new authentication token to the user/client.

[0032] A figura 3 representa geralmente em 300 um cenário de interação exemplar em que tokens são empregados para controlar o acesso a recursos de acordo com uma ou mais implementações. Em particular, o cenário de interação exemplar representa operações que podem ser realizadas por um ou mais componentes do ambiente operacional exemplar 100 da figura 1 que são rotulados usando as letras "F" a "I". Após obter um token de autenticação 206 no modo apenas descrito na figura 2, um cliente/usuário 201 pode navegar para acessar vários recursos disponíveis de provedores de serviços 106. Por exemplo, o dispositivo de computação 102 pode ser operado para formar uma solicitação de acesso. Em "F" o token de autenticação 206 pode ser comunicado como parte da solicitação de acesso e/ou em resposta a uma solicitação a partir do provedor para suprir o token de autenticação 206. Para o fim deste exemplo, presume-se que o token de autenticação 206 é um token leve como descrito no presente documento que não inclui os dados de privilégio 208.[0032] Figure 3 generally represents at 300 an exemplary interaction scenario in which tokens are employed to control access to resources according to one or more implementations. In particular, the exemplary interaction scenario represents operations that may be performed by one or more components of the exemplary operating environment 100 of Figure 1 that are labeled using the letters "F" through "I". After obtaining an authentication token 206 in the manner just described in Figure 2, a client/user 201 may navigate to access various resources available from service providers 106. For example, the computing device 102 may be operated to form an access request . In "F" the authentication token 206 may be communicated as part of the access request and/or in response to a request from the provider to supply the authentication token 206. For the purpose of this example, it is assumed that the token Authentication token 206 is a lightweight token as described herein that does not include privilege data 208.

[0033] Consequentemente, o provedor de serviços 106 neste exemplo pode ser "um provedor ciente do token de autenticação bifurcado" que é configurado para reconhecer e manipular os tokens leves, além de ou em lugar de tokens combinados tradicionais. A título de exemplo, o provedor de serviços 106 pode detectar que o token é um token leve baseado em dados de identificação incluídos com o token tais como um campo de cabeçalho, um código, um formato de token, uma referência ou link para os dados de privilégio dentro do token, ausência de dados de privilégio dentro do token, e assim por diante. Responsivo para detectar um token leve, o provedor de serviços 106 é configurado para realizar operações para buscar os dados de privilégio 208 totais correspondentes ao token.[0033] Accordingly, the service provider 106 in this example may be "a forked authentication token-aware provider" that is configured to recognize and handle lightweight tokens in addition to or in place of traditional blended tokens. By way of example, service provider 106 may detect that the token is a lightweight token based on identifying data included with the token such as a header field, a code, a token format, a reference or link to the data of privilege within the token, absence of privilege data within the token, and so on. Responsive to detecting a lightweight token, the service provider 106 is configured to perform operations to fetch the total privilege data 208 corresponding to the token.

[0034] Em particular, o provedor de serviços 106 pode analisar o token para extrair um link ou outra referência ao banco de dados de autenticação centralizado 210 (ou outros locais de armazenamento designados). Em "G", o provedor de serviços utiliza o link/referência extraído para formar uma consulta 302 e então comunicar a consulta 302 ao banco de dados de autenticação centralizado 210 para procurar os dados de privilégio correspondentes 208. Em resposta à consulta 302, o provedor de serviços em "H" obtém os dados de privilégio 208, que podem ser usados para controlar o acesso aos recursos 107 como especificado pelos dados de privilégio 208. Na verificação de que um cliente/usuário é deixado acessar os recursos solicitados de acordo com os dados de privilégio 208, o provedor de serviços 106 em "I" possibilita o acesso ao recurso 107 e o dispositivo de computação 102 é capaz de interagir com os recursos 107. Os detalhes adicionais com referência a estes e outros aspectos de técnicas de tokens de autenticação bifurcados são discutidos em relação aos procedimentos exemplares que seguem.[0034] In particular, the service provider 106 may parse the token to extract a link or other reference to the centralized authentication database 210 (or other designated storage locations). In "G", the service provider uses the extracted link/reference to form a query 302 and then communicates the query 302 to the centralized authentication database 210 to look up the corresponding privilege data 208. In response to the query 302, the service provider in "H" obtains privilege data 208, which can be used to control access to resources 107 as specified by privilege data 208. In verifying that a client/user is allowed access to the requested resources in accordance with the privilege data 208, the service provider 106 in "I" enables access to the resource 107, and the computing device 102 is capable of interacting with the resources 107. Additional details with reference to these and other aspects of token techniques Forked authentication methods are discussed in relation to the exemplary procedures they follow.

Procedimentos ExemplaresExemplary Procedures

[0035] A figura 4 representa um procedimento exemplar 400 em que um serviço de autenticação emite seletivamente tokens de autenticação para acesso a recursos. As credenciais são obtidas de um cliente para autenticação para acessar recursos de um provedor de serviços (bloco 402). Por exemplo, um dispositivo de computação 102 pode ser operado para suprir as credenciais 112 (por exemplo, ID de usuário e senha ou outras credenciais de autenticação) associadas com um usuário/cliente em conexão com uma tentativa de acessar recursos de um provedor de serviços 106. O serviço de autenticação 114 é configurado para usar as credenciais supridas para autenticar o cliente para acessar recursos a partir do provedor de serviços. Para assim fazer, uma comparação é feita entre as credenciais que são obtidas e as credenciais correspondentes mantidas em associação com o cliente (bloco 404). Baseada na comparação, uma determinação é feita com respeito a se o cliente é autenticado para ganhar acesso a recursos (bloco 406). Se o cliente não é autenticado, o acesso aos recursos é negado (bloco 408). Por outro lado, quando a autenticação é bem-sucedida, uma determinação é feita com respeito a se o provedor de serviços dos quais os recursos são buscados é um provedor ciente do token de autenticação bifurcado (bloco 410). No caso em que o provedor de serviços não está ciente, a token de autenticação combinada é emitido ao cliente (bloco 412). O token de autenticação combinada é configurado para incluir os dados de privilégio 208. Por exemplo, os dados de privilégio podem ser criptografados dentro dos tokens de autenticação combinada 206 emitidos para provedores de serviços 106 e recursos 107 que não são configurados para suportar as técnicas de token bifurcado. A título de exemplo os dados de privilégio 208 podem ser embutidos dentro de um token usando um PAC criptografado, blobs de dados, ou outro mecanismo apropriado para incluir os dados de privilégio com o token. Como notado anteriormente, os dados de privilégio são configurados para prover indicações de recursos de um ou mais provedores de serviços que um cliente está autorizado a usar na autenticação bem-sucedida, bem como uma informação de identificação de cliente e outros metadados. Devido ao token combinado incluir tanto informação de identificação de cliente como os the dados de privilégio, o token de autenticação combinada possibilita uma determinação direta pelo provedor de serviços de recursos que o cliente está autorizado a usar.[0035] Figure 4 represents an exemplary procedure 400 in which an authentication service selectively issues authentication tokens for access to resources. Credentials are obtained from a client for authentication to access resources from a service provider (block 402). For example, a computing device 102 may be operated to supply credentials 112 (e.g., user ID and password or other authentication credentials) associated with a user/client in connection with an attempt to access resources of a service provider. 106. The authentication service 114 is configured to use the supplied credentials to authenticate the client to access resources from the service provider. To do so, a comparison is made between the credentials that are obtained and the corresponding credentials maintained in association with the client (block 404). Based on the comparison, a determination is made regarding whether the client is authenticated to gain access to resources (block 406). If the client is not authenticated, access to resources is denied (block 408). Conversely, when authentication is successful, a determination is made regarding whether the service provider from which resources are fetched is a provider aware of the forked authentication token (block 410). In the case where the service provider is not aware, the combined authentication token is issued to the client (block 412). The combined authentication token is configured to include the privilege data 208. For example, the privilege data may be encrypted within the combined authentication tokens 206 issued to service providers 106 and resources 107 that are not configured to support the combined authentication techniques. forked token. By way of example, the privilege data 208 may be embedded within a token using an encrypted PAC, data blobs, or other appropriate mechanism for including the privilege data with the token. As noted previously, privilege data is configured to provide indications of resources from one or more service providers that a client is authorized to use in successful authentication, as well as client identifying information and other metadata. Because the combined token includes both client identification information and privilege data, the combined authentication token enables a direct determination by the service provider of resources that the client is authorized to use.

[0036] Quando o provedor de serviços está ciente, contudo, as técnicas de tokens de autenticação bifurcados são empregadas (bloco 414). No presente, um token leve é emitido ao cliente (bloco 416) e dados de privilégio correspondentes são comunicados a um banco de dados de autenticação centralizado (bloco 418) para armazenamento separadamente do token leve. O token leve não contém dados de privilégio suficientes para habilitar o provedor de serviços a determinar recursos que o cliente está autorizado a usar sem uma procura a partir do banco de dados de autenticação centralizado. Em vez disso, o token leve é configurado para incluir uma referência utilizável pelo provedor de serviços para procurar dados de privilégio associados com o cliente a partir do banco de dados de autenticação centralizado. Os dados de privilégio podem variar dependendo de um ou mais direitos de acesso do cliente, do tipo de recurso que é acessado, e/ou informação contextual adicional no token leve que é passado pelo recurso ao banco de dados de autenticação centralizado. Por exemplo, a referência pode ser um endereço, link, ou URL para um local de armazenamento dos dados de privilégio no banco de dados de autenticação centralizado. Os privilégios de acesso associados com o token leve são controlados baseados nos dados de privilégio armazenados no banco de dados de autenticação centralizado. Consequentemente, a posse do token de cookie de peso leve sozinho não é suficiente para ganhar acesso a recursos. Além disso, uma troca nos privilégios de acesso associados com um token leve pode ser realizada modificando os dados de privilégio correspondentes armazenados no banco de dados de autenticação centralizado sem ter que revogar ou trocar o token leve por si mesmo. Mais detalhes com respeito às técnicas para modificar os privilégios associados com um token leve são discutidos abaixo em relação ao procedimento exemplar da figura 6.[0036] When the service provider is aware, however, forked authentication token techniques are employed (block 414). At present, a lightweight token is issued to the client (block 416) and corresponding privilege data is communicated to a centralized authentication database (block 418) for storage separately from the lightweight token. The lightweight token does not contain sufficient privilege data to enable the service provider to determine resources that the client is authorized to use without a lookup from the centralized authentication database. Instead, the lightweight token is configured to include a reference usable by the service provider to look up privilege data associated with the client from the centralized authentication database. Privilege data may vary depending on one or more client access rights, the type of resource that is accessed, and/or additional contextual information in the lightweight token that is passed by the resource to the centralized authentication database. For example, the reference may be an address, link, or URL to a storage location for privilege data in the centralized authentication database. Access privileges associated with the lightweight token are controlled based on the privilege data stored in the centralized authentication database. Consequently, possession of the lightweight cookie token alone is not sufficient to gain access to resources. Furthermore, a switch in the access privileges associated with a lightweight token can be accomplished by modifying the corresponding privilege data stored in the centralized authentication database without having to revoke or exchange the lightweight token itself. More details regarding techniques for modifying the privileges associated with a lightweight token are discussed below in relation to the exemplary procedure in Figure 6.

[0037] Devido ao token leve não incluir dados de privilégio totais, a quantidade de informação incluída no token leve é substancialmente menor do que a informação que é incluída no token de autenticação combinada (por exemplo, dados de privilégio completos). Como tal, o token leve tem um tamanho que pode ser consideravelmente menor do que um tamanho de um token de autenticação combinada correspondente. Consequentemente, o token leve pode ser mais fácil de manipular e transportar bem como mais provável de satisfazer quaisquer restrições de tamanho de largura de banda ou de token. Além disso, o tamanho relativamente pequeno do token leve pode possibilitar a comunicação do cookie de peso leve em um formato descomprimido em alguns cenários, que não é geralmente possível com tokens combinados maiores que transportam dados de privilégio completos.[0037] Because the lightweight token does not include full privilege data, the amount of information included in the lightweight token is substantially less than the information that is included in the combined authentication token (e.g., full privilege data). As such, the lightweight token has a size that can be considerably smaller than the size of a corresponding combined authentication token. Consequently, the lightweight token may be easier to manipulate and transport as well as more likely to satisfy any bandwidth or token size constraints. Additionally, the relatively small size of the lightweight token may make it possible to communicate the lightweight cookie in an uncompressed format in some scenarios, which is not generally possible with larger combined tokens that carry full privilege data.

[0038] A figura 5 representa um procedimento exemplar 500 em que um provedor de serviços controla o acesso a recursos baseado em um token leve. Um token leve é obtido que é suprido por um cliente para acesso a recursos de um provedor de serviços (bloco 502). Um cliente/usuário pode obter o token leve de acordo com o procedimento 400 acima da figura 4 e com o cenário de interação exemplar da figura 2. Por exemplo, um token leve pode ser emitido a um cliente por um serviço de autenticação 114 configurado pra determinar se os provedores de serviços 106 suportam as técnicas de tokens de autenticação bifurcados. Baseado nessas determinações, o serviço de autenticação 114 opera para: (1) emitir tokens leves que não incluem os dados de privilégio 208 para acesso a recursos 107 de provedores de serviços 106 que suportam as técnicas de tokens de autenticação bifurcados, e (2) emitir tokens de autenticação combinada que incluem os dados de privilégio 208 para acesso a recursos 107 de provedores de serviços 106 que não suportam as técnicas de tokens de autenticação bifurcados.[0038] Figure 5 represents an exemplary procedure 500 in which a service provider controls access to resources based on a lightweight token. A lightweight token is obtained that is provided by a client for access to resources from a service provider (block 502). A client/user may obtain the lightweight token in accordance with the above procedure 400 of Figure 4 and the exemplary interaction scenario of Figure 2. For example, a lightweight token may be issued to a client by an authentication service 114 configured to determine whether service providers 106 support forked authentication token techniques. Based on these determinations, authentication service 114 operates to: (1) issue lightweight tokens that do not include privilege data 208 for access to resources 107 of service providers 106 that support forked authentication token techniques, and (2) issuing combined authentication tokens that include privilege data 208 for accessing resources 107 from service providers 106 that do not support forked authentication token techniques.

[0039] Durante um período de tempo de validade estabelecido para um token leve, o token leve pode ser apresentado pelo cliente/usuário em conexão com uma tentativa de acessar recursos a partir do provedor de serviços. O provedor de acesso a recursos apresentados como um token leve e analisar o token para extrair uma referência a um local em que os dados de privilégio correspondentes estão disponíveis. Por exemplo, o provedor de serviços pode reconhecer o token como um token leve baseado em vários dados de identificação incluídos com o token como descrito anteriormente.[0039] During an established validity time period for a lightweight token, the lightweight token may be presented by the client/user in connection with an attempt to access resources from the service provider. The resource access provider presents as a lightweight token and parses the token to extract a reference to a location where the corresponding privilege data is available. For example, the service provider may recognize the token as a lightweight token based on various identification data included with the token as described previously.

[0040] Uma vez que o provedor de serviços reconhece o token como um token leve, o provedor de serviços é configurado para realizar operações para obter dados de privilégio correspondentes 208 que, de acordo com as técnicas de tokens de autenticação bifurcados descritos no presente documento são mantidos separados de um token leve por si mesmo. Em vez de incluir os dados de privilégio com um token, o token leve é ligado aos dados de privilégio associados com o cliente através de uma referência a um local de armazenamento para os dados de privilégio, tal como em um banco de dados de autenticação centralizado como descrito no presente documento. O provedor de serviços usa esta referência para procurar dados de privilégio para o cliente a partir do local especificado pelo token leve (bloco 504). Por exemplo, o token de cookie de peso leve sozinho é insuficiente para habilitar o provedor de serviços a determinar os recursos que o cliente está autorizado a usar sem a procura dos dados de privilégio a partir do local especificado pelo token de cookie de peso leve. Consequentemente, o acesso a recursos é seletivamente controlado pelo provedor de serviços baseado nos dados de privilégio que o provedor de serviços procura.[0040] Once the service provider recognizes the token as a lightweight token, the service provider is configured to perform operations to obtain corresponding privilege data 208 which, in accordance with the forked authentication token techniques described herein are kept separate from a lightweight token itself. Instead of enclosing the privilege data with a token, the lightweight token is linked to the privilege data associated with the client through a reference to a storage location for the privilege data, such as in a centralized authentication database. as described in this document. The service provider uses this reference to look up privilege data for the client from the location specified by the lightweight token (block 504). For example, the lightweight cookie token alone is insufficient to enable the service provider to determine the resources that the client is authorized to use without looking up the privilege data from the location specified by the lightweight cookie token. Consequently, access to resources is selectively controlled by the service provider based on the privilege data that the service provider looks for.

[0041] Em particular, o provedor de serviços verifica e o cliente tem privilégios para acessar recursos (bloco 506) de acordo com os dados de privilégio mantidos no local indicado no token leve. Por exemplo, o provedor de serviços pode interagir com o banco de dados de autenticação centralizado para procurar membros do grupo, autorizações de recurso, níveis de serviço, e/ou outros privilégios de clientes com respeito a recursos que são refletidos pelos dados de privilégio 208. Quando o cliente tem privilégios para recursos particulares, o acesso a esses recursos individuais é impossibilitado (bloco 508). Por outro lado, quando o cliente não te, privilégios para alguns recursos, o acesso a esses recursos é negado (bloco 510).[0041] In particular, the service provider verifies and the client has privileges to access resources (block 506) according to the privilege data maintained at the location indicated in the lightweight token. For example, the service provider may interact with the centralized authentication database to look up group memberships, resource authorizations, service levels, and/or other customer privileges with respect to resources that are reflected by the privilege data 208 When the client has privileges for particular resources, access to those individual resources is precluded (block 508). On the other hand, when the client does not have privileges for some resources, access to those resources is denied (block 510).

[0042] Notar que as técnicas de tokens de autenticação bifurcados também podem ser empregadas para referências entre domínios diferentes ou segmentos de um domínio. Dentro de um limite de confiança para um conjunto de domínios que usam o mesmo banco de dados de autenticação (por exemplo, uma floresta de domínios) um token leve pode ser emitido ou transferido para o domínio de referência (contanto que o recurso suporte a abordagem bifurcada) para possibilitar o acesso a dados de privilégio. Além disso, as técnicas de tokens de autenticação bifurcados podem ser aplicadas a recursos e domínios através de limites de confiança que podem ter bancos de dados de autenticação e dados de privilégio separados, tal como no caso de florestas de domínios de Diretório Ativo. Em tais situações de referência a limites cruzados, um token leve não pode trabalhar entre florestas de domínio se os dados de privilégio trocam o limite de confiança. A fim de manipular estas situações, um token de autenticação combinada contendo os dados de privilégio totais pode ser emitido através de tal limite de confiança. Dentro de domínios separados, contudo, os tokens leves e técnicas bifurcadas podem ser usados para recursos dentro dos limites de confiança bem como para referências que levam até o domínio de raiz de uma floresta, e após o limite de confiança de floresta ser cruzado, para baixo para os recursos no domínio de referência na forma descrita no presente documento.[0042] Note that forked authentication token techniques can also be used for references between different domains or segments of a domain. Within a trust boundary for a set of domains that use the same authentication database (for example, a domain forest) a lightweight token can be issued or transferred to the referring domain (as long as the resource supports the approach forked) to enable access to privileged data. Additionally, forked authentication token techniques can be applied to resources and domains across trust boundaries that can have separate authentication databases and privilege data, such as in the case of Active Directory domain forests. In such cross-boundary reference situations, a lightweight token cannot work across domain forests if the privilege data switches the trust boundary. In order to handle these situations, a combined authentication token containing the full privilege data can be issued across such a trust boundary. Within separate domains, however, lightweight tokens and forking techniques can be used for resources within trust boundaries as well as for references leading up to the root domain of a forest, and after the forest trust boundary is crossed, to down to the resources in the reference domain in the manner described in this document.

[0043] A figura 6 representa um procedimento exemplar 600 em que privilégios associados com um token leve são modificados. Uma troca está em privilégios associados com um token leve emitido para um cliente que é identificado (bloco 602). Trocas em privilégios podem ser iniciadas de vários modos. Por exemplo, um usuário ou administrador pode alterar os membros de uma conta correspondente de vários grupos que têm privilégios diferentes. Além disso, um usuário pode se inscrever para níveis de serviços diferentes e/ou autorizações de serviços existentes podem expirar. Estas e outras ações podem causar uma troca correspondente em privilégios para um cliente/usuário. Um serviço de autenticação 114 e/ou provedores de serviços pode ser configurado para detectar e/ou obter notificações de trocas em privilégios.[0043] Figure 6 represents an exemplary procedure 600 in which privileges associated with a lightweight token are modified. An exchange is in privileges associated with a lightweight token issued to a client that is identified (block 602). Exchanges in privileges can be initiated in several ways. For example, a user or administrator can change the membership of a corresponding account from multiple groups that have different privileges. Additionally, a user may subscribe to different service levels and/or existing service authorizations may expire. These and other actions may cause a corresponding change in privileges for a client/user. An authentication service 114 and/or service providers may be configured to detect and/or obtain notifications of changes in privileges.

[0044] Em resposta à identificação de trocas, os privilégios são modificados através de interação com um banco de dados de autenticação centralizado para trocas os dados de privilégio correspondentes mantidos no mesmo sem invalidar o token leve (bloco 604). Então, responsivo a uma solicitação subsequente para acessar os recursos usando o token leve, o acesso é provido eletivamente de acordo com os privilégios modificados (bloco 606). Por exemplo, de acordo com as técnicas discutidas no presente documento, os privilégios podem ser modificados através dos dados de privilégio 208 que são mantidos separados de tokens leves sem alterar os dados ou a validade de tokens leves que já estão emitidos para uma conta. Consequentemente, os clientes/usuários podem continuar a usar os tokens leves e contanto que sejam direitos de acesso válidos e associados irão trocar substancialmente em "tempo real" na medida em que as trocas são feitas para dados de privilégio correspondentes 208 que são separados de tokens leves. Além do mais, os direitos podem ser revogados rapidamente e facilmente trocando os dados de privilégio. Por exemplo, os privilégios associados com um token podem ser apagados a partir do banco de dados de autenticação centralizado 210, deste modo tornando o token inútil mesmo se token ainda for válido (por exemplo, o período de tempo de validade não expirou). Assim, os tokens compreendidos podem ser revogados simplesmente atualizando os dados de privilégio no banco de dados de autenticação centralizado 210.[0044] In response to identifying exchanges, privileges are modified through interaction with a centralized authentication database to exchange the corresponding privilege data held therein without invalidating the lightweight token (block 604). Then, responsive to a subsequent request to access the resources using the lightweight token, access is electively provided in accordance with the modified privileges (block 606). For example, in accordance with the techniques discussed herein, privileges can be modified through privilege data 208 that is kept separate from lightweight tokens without changing the data or validity of lightweight tokens that are already issued to an account. Consequently, clients/users can continue to use the lightweight tokens and as long as they are valid and associated access rights will exchange substantially in "real time" to the extent that exchanges are made to corresponding privilege data 208 that are separate from tokens light. Furthermore, rights can be revoked quickly and easily by changing privilege data. For example, privileges associated with a token may be deleted from the centralized authentication database 210, thereby rendering the token useless even if the token is still valid (e.g., the validity time period has not expired). Thus, the understood tokens can be revoked simply by updating the privilege data in the centralized authentication database 210.

[0045] Tendo considerado os detalhes exemplares e as técnicas relativas a técnicas de entrada de tokens de autenticação bifurcados, considerar uma discussão de um sistema exemplar de acordo com uma ou mais implementações.[0045] Having considered the exemplary details and techniques relating to forked authentication token input techniques, consider a discussion of an exemplary system in accordance with one or more implementations.

Sistema ExemplarExemplary System

[0046] A figura 7 ilustra um sistema exemplar 700 que inclui um dispositivo de computação exemplar 702 que é representativo de um ou mais sistemas e/ou dispositivos de computação que podem implementar as várias técnicas descritas no presente documento. O dispositivo de computação 702 pode ser, por exemplo, um servidor de um provedor de serviços, um dispositivo associado com um cliente (por exemplo, um dispositivo do cliente), um sistema em chip e/ou qualquer outro dispositivo de computação ou sistema de computação apropriado.[0046] Figure 7 illustrates an exemplary system 700 that includes an exemplary computing device 702 that is representative of one or more computing systems and/or devices that can implement the various techniques described herein. The computing device 702 may be, for example, a server of a service provider, a device associated with a customer (e.g., a customer device), a system on chip, and/or any other computing device or system. appropriate computing.

[0047] O dispositivo de computação exemplar 702 como ilustrado inclui um sistema de processamento 704, um ou mais meios legíveis por computador 706, e uma ou mais interfaces de I/O 708 que são acopladas comunicativamente uma à outra. Embora não mostrado, o dispositivo de computação 702 pode incluir ainda um barramento de sistema ou outros dados e sistema de transferência de comando que acopla os vários componentes um ao outro. Um barramento de sistema pode incluir qualquer um ou uma combinação de estruturas de barramento diferente, tal como um barramento de memória ou controlador de memória, um barramento periférico, um barramento em série universal, e/ou um barramento de processador ou local que utiliza qualquer uma de uma variedade de arquiteturas. Uma variedade de outros exemplos também é contemplada, tal como linhas de controle e de dados.[0047] The exemplary computing device 702 as illustrated includes a processing system 704, one or more computer-readable media 706, and one or more I/O interfaces 708 that are communicatively coupled to each other. Although not shown, computing device 702 may further include a system bus or other data and command transfer system that couples the various components together. A system bus may include any one or a combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that uses any one of a variety of architectures. A variety of other examples are also covered, such as control and data lines.

[0048] O sistema de processamento 704 é representativo de funcionalidade para realizar uma ou mais operações usando hardware. Consequentemente, o sistema de processamento 704 é ilustrado como incluindo elementos de hardware 710 que podem ser configurados como processadores, blocos funcionais, e assim por diante. Isto pode incluir implementação em hardware como um circuito integrado específico de aplicativo ou outro dispositivo lógico formado usando um ou mais semicondutores. Os elementos de hardware 710 não são limitados pelos materiais dos quais eles são formados ou pelos mecanismos de processamento empregados nos mesmos. Por exemplo, os processadores podem ser compreendidos de semicondutor(es) e/ou transistor(s) (por exemplo, circuito integrados eletrônicos (ICs)). Em tal contexto, as instruções executáveis por processador podem ser instruções executáveis eletronicamente.[0048] Processing system 704 is representative of functionality for performing one or more operations using hardware. Accordingly, processing system 704 is illustrated as including hardware elements 710 that can be configured as processors, function blocks, and so on. This may include implementation in hardware such as an application-specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 710 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistor(s) (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically executable instructions.

[0049] Os meios legíveis por computador 706 são ilustrados como incluindo memória/armazenamento 712. A memória/armazenamento 712 representa a capacidade de memória/armazenamento associada com um ou mais meios legíveis por computador. A memória/armazenamento 712 pode incluir meios de memória volátil (tal como memória de acesso aleatório (RAM)) e/ou meios não voláteis (tais como memória somente de leitura (ROM), memória Flash, discos óticos, discos magnéticos, e assim por diante). A memória/armazenamento 712 pode incluir meios fixos (por exemplo, RAM, ROM, um disco rígido fixo e assim por diante) bem como meios removíveis (por exemplo, memória Flash, um disco rígido removível, um disco ótico, e assim por diante). Os meios legíveis por computador 706 podem ser configurados em uma variedade de outros modos como ainda descrito abaixo.[0049] Computer-readable media 706 is illustrated as including memory/storage 712. Memory/storage 712 represents the memory/storage capacity associated with one or more computer-readable media. Memory/storage 712 may include volatile memory media (such as random access memory (RAM)) and/or non-volatile media (such as read-only memory (ROM), Flash memory, optical disks, magnetic disks, and so on. onwards). Memory/storage 712 may include fixed media (e.g., RAM, ROM, a fixed hard disk, and so on) as well as removable media (e.g., Flash memory, a removable hard disk, an optical disk, and so on). ). The computer-readable media 706 may be configured in a variety of other ways as further described below.

[0050] A(s) interface(s) de entrada/saída 708 são representativas de funcionalidade para deixar um usuário inserir comandos e informação para o dispositivo de computação 702, e também permitir que a informação seja apresentada ao usuário e/ou outros componentes ou dispositivos usando vários dispositivos de entrada/saída. Exemplos de dispositivos de entrada incluem um teclado, um dispositivo de controle de cursor (por exemplo, um mouse), um microfone para operações de voz, um escâner, funcionalidade de toque (por exemplo, sensores capacitivos ou outros sensores que são configurados para detectar toque físico), uma câmera (por exemplo, que pode empregar comprimentos de onda visíveis ou não visíveis para inserir comandos que podem empregar comprimentos de onda visíveis ou não visíveis tais como frequências de infravermelho para detectar movimento que não envolve toque ou gestos), e assim por diante. Exemplos de dispositivos de saída incluem um dispositivo de exibição (por exemplo, um monitor ou projetor), alto-falantes, uma impressora, um cartão de rede, dispositivo de resposta táctil, e assim por diante. Assim, o dispositivo de computação 702 pode ser configurado em uma variedade de modos como ainda descrito abaixo para suportar interação de usuário.[0050] The input/output interface(s) 708 are representative of functionality for letting a user input commands and information to the computing device 702, and also allowing information to be presented to the user and/or other components or devices using multiple input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone for voice operations, a scanner, touch functionality (e.g., capacitive sensors or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths to input commands that may employ visible or non-visible wavelengths such as infrared frequencies to detect movement that does not involve touch or gestures), and so on. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, haptic feedback device, and so on. Thus, computing device 702 may be configured in a variety of modes as further described below to support user interaction.

[0051] Várias técnicas podem ser descritas no presente documento no contexto geral de software, elementos de hardware, ou módulos de programa. Geralmente, tais módulos incluem rotinas, programas, objetos, elementos, componentes, estruturas de dados, e assim por diante que realizam tarefas ou implementam tipos de dados abstratos particulares. Os termos "módulo," "funcionalidade," e "componente" como usados no presente documento geralmente representam software, firmware, hardware, ou uma combinação dos mesmos. Os aspectos das técnicas descritas no presente documento são independentes de plataforma significando que as técnicas podem ser implementadas em uma variedade de plataformas de computação comerciais tendo uma variedade de processadores.[0051] Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so on that perform tasks or implement particular abstract data types. The terms "module," "feature," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. Aspects of the techniques described in this document are platform independent meaning that the techniques can be implemented on a variety of commercial computing platforms having a variety of processors.

[0052] Uma implementação dos módulos e técnicas descritos pode ser armazenada em ou transmitida através de algumas formas de meios legíveis por computador. Os meios legíveis por computador podem incluir uma variedade de meios que podem ser acessados pelo dispositivo de computação 702. A título de exemplo, e não de limitação, os meios legíveis por computador podem incluir "meios de armazenamento legíveis por computador" e "meios de comunicação".[0052] An implementation of the described modules and techniques may be stored in or transmitted through some form of computer-readable media. Computer-readable media may include a variety of media that can be accessed by computing device 702. By way of example, and not limitation, computer-readable media may include "computer-readable storage media" and "computer-readable storage media." communication".

[0053] "Meios de armazenamento legíveis por computador" refere- se a meios e/ou dispositivos que possibilitam o armazenamento de informação em contraste com mera transmissão de sinal, ondas de transporte ou sinais per se. Assim, os meios de armazenamento legíveis por computador não incluem meios de transporte de sinais, sinais transitórios, ou sinais per se. Os meios de armazenamento legíveis por computador incluem hardware tais como meios voláteis e não voláteis, removíveis e não removíveis e/ou dispositivos de armazenamento implementados em um método ou tecnologia apropriado para armazenamento de informação tal como instruções legíveis por computador, estruturas de dados, módulos de programa, elementos/circuitos lógicos ou outros dados. Exemplos de meios de armazenamento legíveis por computador podem incluir, mas não estão limitados a, RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento ótico, discos rígidos, cassetes magnéticos, fita magnética, armazenamento de disco magnético ou outros dispositivos de armazenamento magnéticos, ou outro dispositivo magnético, meios tangíveis, ou artigo de fabricação apropriado para armazenar a informação desejada e que pode ser acessado por um computador.[0053] "Computer-readable storage media" refers to means and/or devices that enable the storage of information in contrast to mere signal transmission, transport waves or signals per se. Thus, computer-readable storage media does not include signal-carrying media, transient signals, or signals per se. Computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology appropriate for storing information such as computer-readable instructions, data structures, modules program, logic elements/circuits or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD) or other optical storage, hard drives, cassettes magnetic devices, magnetic tape, magnetic disk storage or other magnetic storage devices, or other magnetic device, tangible means, or article of manufacture suitable for storing the desired information and which can be accessed by a computer.

[0054] "Meios de Comunicação" pode se referir a meios de suporte de sinais que são configurados para transmitir instruções ao hardware do dispositivo de computação 702, tal como através de uma rede. Os meios de comunicação tipicamente podem incorporar instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados em um sinal de dados modulado, tais como ondas de transporte, sinais de dados, ou outro mecanismo de transporte. Os meios de comunicação também incluem quaisquer meios de liberação de informação. O termo "sinal de dados modulado " significa um sinal que tem uma ou mais de suas características fixada ou trocada de tal modo como para codificar informação no sinal. A título de exemplo, e não de limitação, os meios de comunicação incluem meios com fio tal como rede com fio ou conexão com fio direta, e meios sem fio tais como meios acústicos, RF, infravermelho e outros meios sem fio.[0054] "Communication media" may refer to signal-bearing means that are configured to transmit instructions to the hardware of the computing device 702, such as over a network. The communication media typically may incorporate computer-readable instructions, data structures, program modules, or other data into a modulated data signal, such as transport waves, data signals, or other transport mechanism. Media also includes any means of releasing information. The term "modulated data signal" means a signal that has one or more of its characteristics fixed or changed in such a way as to encode information in the signal. By way of example, and not limitation, means of communication include wired means such as wired network or direct wired connection, and wireless means such as acoustic, RF, infrared and other wireless means.

[0055] Como descrito anteriormente, os elementos de hardware 710 e meios legíveis por computador 706 são representativos de instruções, módulos, lógica de dispositivo programável e/ou lógica de dispositivo fixa implementada em uma forma de hardware que podem ser empregados em algumas modalidades para implementar pelo menos alguns aspectos das técnicas descritas no presente documento. Os elementos de hardware podem incluir componentes de um circuito integrado de um circuito integrado ou sistema em chip. Um circuito integrado específico de aplicativo (ASIC), uma matriz de portal programável no campo (FPGA), um dispositivo lógico programável complexo (CPLD), e outras implementações em silício ou outros dispositivos de hardware. Neste contexto, um elemento de hardware pode operar como um dispositivo de processamento que realiza tarefas de programa definidas por instruções, módulos, e/ou lógica incorporada pelo elemento de hardware bem como um dispositivo de hardware utilizado para armazenar instruções para execução, por exemplo, os meios de armazenamento legíveis por computador descritos anteriormente.[0055] As previously described, hardware elements 710 and computer-readable media 706 are representative of instructions, modules, programmable device logic and/or fixed device logic implemented in a form of hardware that may be employed in some embodiments to implement at least some aspects of the techniques described in this document. Hardware elements may include components of an integrated circuit of an integrated circuit or system on chip. An application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware devices. In this context, a hardware element may operate as a processing device that performs program tasks defined by instructions, modules, and/or logic embedded by the hardware element as well as a hardware device used to store instructions for execution, e.g. the computer-readable storage media described above.

[0056] Combinações do descrito acima também podem ser empregadas para implementar várias técnicas e módulos descritos no presente documento. Consequentemente, software, hardware, ou módulos de programa incluindo o operacional 108, aplicativos 110, serviço de autenticação 114, e outros módulos de programa podem ser implementados como uma ou mais instruções e/ou lógica incorporadas em alguma forma de meios de armazenamento legíveis por computador e/ou por um ou mais elementos de hardware 710. O dispositivo de computação 702 pode ser configurado para implementar instruções e/ou funções particulares correspondendo aos módulos de software e/ou de hardware. Consequentemente, a implementação de módulos como um módulo que é executável pelo dispositivo de computação 702 como software pode ser obtida pelo menos parcialmente em hardware, por exemplo, através do uso de meios de armazenamento legíveis por computador e/ou elementos de hardware 710 do sistema de processamento. As instruções e/ou funções podem ser executáveis/operáveis por um ou mais artigos de fabricação (por exemplo, um ou mais dispositivos de computação 702 e/ou sistemas de processamento 704) para implementar técnicas, módulos e exemplos descritos no presente documento.[0056] Combinations of the above can also be employed to implement various techniques and modules described in this document. Accordingly, software, hardware, or program modules including operating 108, applications 110, authentication service 114, and other program modules may be implemented as one or more instructions and/or logic embedded in some form of human-readable storage media. computer and/or by one or more hardware elements 710. The computing device 702 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of modules as a module that is executable by the computing device 702 as software can be achieved at least partially in hardware, for example, through the use of computer-readable storage media and/or hardware elements 710 of the system. of processing. The instructions and/or functions may be executable/operable by one or more articles of manufacture (e.g., one or more computing devices 702 and/or processing systems 704) to implement techniques, modules, and examples described herein.

[0057] Como ainda ilustrado na figura 7, o sistema exemplar 700 possibilita ambientes ubíquos para uma experiência de usuário perfeita ao executar aplicativos em um computador pessoal (PC), um dispositivo de televisão, e/ou um dispositivo móvel. Os serviços e aplicativos funcionam substancialmente similares em todos os três ambientes para uma experiência de usuário comum ao fazer a transição de um dispositivo para o próximo enquanto utilizando um aplicativo, jogando um videogame, assistindo a um vídeo e assim por diante.[0057] As further illustrated in Figure 7, exemplary system 700 enables ubiquitous environments for a seamless user experience when running applications on a personal computer (PC), a television device, and/or a mobile device. The services and applications function substantially similar across all three environments for a common user experience when transitioning from one device to the next while using an application, playing a video game, watching a video, and so on.

[0058] No sistema exemplar 700, múltiplos dispositivos são interconectados através de um dispositivo de computação central. O dispositivo de computação central pode ser local para os múltiplos dispositivos ou podem estar localizados remotamente a partir dos múltiplos dispositivos. Em uma modalidade, o dispositivo de computação central pode ser uma nuvem de um ou mais computadores de servidor que são conectados aos múltiplos dispositivos através de uma rede, a Internet, ou outro link de comunicação de dados.[0058] In exemplary system 700, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices or may be located remotely from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers that are connected to the multiple devices via a network, the Internet, or other data communications link.

[0059] Em uma modalidade, esta arquitetura de interconexão habilita a funcionalidade a ser liberada através de múltiplos dispositivos para prover uma experiência comum e perfeita a um usuário dos múltiplos dispositivos. Cada um dos múltiplos dispositivos pode ter requisitos físicos e capacidades diferentes, e o dispositivo de computação central usa uma plataforma para possibilitar a liberação de uma experiência para o dispositivo que tanto é adaptada ao dispositivo como ainda comum a todos os dispositivos. Em uma modalidade, uma classe de dispositivos alvos é criada e as experiências são adaptadas à classe genérica de dispositivos. Uma classe de dispositivos pode ser definida por aspectos físicos, tipos de uso, ou outras características comuns dos dispositivos.[0059] In one embodiment, this interconnect architecture enables functionality to be released across multiple devices to provide a common and seamless experience to a user of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the release of an experience to the device that is both tailored to the device and yet common to all devices. In one embodiment, a class of target devices is created and experiences are tailored to the generic class of devices. A class of devices can be defined by physical aspects, types of use, or other common characteristics of the devices.

[0060] Em várias implementações, o dispositivo de computação 702 pode presumir uma variedade de configurações, tais como usos para computador 714, celular 716, e televisão 718. Cada uma destas configurações inclui dispositivos que podem ter construções e capacidades geralmente diferentes, e assim o dispositivo de computação 702 pode ser configurado de acordo com uma ou mais das classes de dispositivos diferentes. Por exemplo, o dispositivo de computação 702 pode ser implementado como a classe de computador 714 de um dispositivo que inclui um computador pessoal, computador desktop, um computador de múltiplas telas, computador laptop, netbook, e assim por diante.[0060] In various implementations, computing device 702 may have a variety of configurations, such as uses for computer 714, cell phone 716, and television 718. Each of these configurations includes devices that may have generally different constructions and capabilities, and thus The computing device 702 may be configured according to one or more of the different device classes. For example, computing device 702 may be implemented as computer class 714 of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on.

[0061] O dispositivo de computação 702 também pode ser implementado como a classe de celular 716 de dispositivo que inclui dispositivos móveis, tais como um telefone móvel, aparelho de música portátil, dispositivo de jogo portátil, um computador tablet, um computador de múltiplas telas, e assim por diante. O dispositivo de computação 702 também pode ser implementado como a classe de televisão 718 de dispositivo que inclui dispositivos tendo ou conectado geralmente a telas maiores em ambientes de visualização casuais. Estes dispositivos incluem televisões, decodificadores de sinais, consoles de jogos e assim por diante.[0061] The computing device 702 may also be implemented as the cell phone class 716 of device which includes mobile devices such as a mobile phone, portable music player, portable gaming device, a tablet computer, a multi-screen computer , and so on. Computing device 702 may also be implemented as television class 718 of device which includes devices having or generally connected to larger screens in casual viewing environments. These devices include televisions, set-top boxes, game consoles, and so on.

[0062] As técnicas descritas no presente documento podem ser suportadas por estas várias configurações do dispositivo de computação 702 e é ilustrado através da inclusão do serviço de autenticação 114 no dispositivo de computação 702. A funcionalidade representada pelo serviço de autenticação 114 e outros módulos/aplicativos também podem ser implementados todos ou em parte através do uso de um sistema distribuído, tal como sobre uma "nuvem" 720 através de uma plataforma 722 como descrito abaixo.[0062] The techniques described herein can be supported by these various configurations of computing device 702 and is illustrated through the inclusion of authentication service 114 in computing device 702. The functionality represented by authentication service 114 and other modules/ Applications may also be implemented in whole or in part through the use of a distributed system, such as on a "cloud" 720 via a platform 722 as described below.

[0063] A nuvem 720 inclui e/ou é representativa de uma plataforma 722 para recursos 724. A plataforma 722 abstrai a funcionalidade adjacente de hardware (por exemplo, servidores) e recursos de software da nuvem 720. Os recursos 724 podem incluir aplicativos e/ou dados que podem ser utilizados enquanto o processamento em computador é executado nos servidores que estão remotos a partir do dispositivo de computação 702. Os recursos 724 também podem incluir serviços providos através da Internet e/ou através da rede do assinante, tal como uma rede de celular ou de Wi-Fi.[0063] Cloud 720 includes and/or is representative of a platform 722 for resources 724. Platform 722 abstracts adjacent hardware functionality (e.g., servers) and software resources of cloud 720. Resources 724 may include applications and /or data that can be used while computer processing is performed on servers that are remote from the computing device 702. Resources 724 may also include services provided over the Internet and/or over the subscriber's network, such as a cellular or Wi-Fi network.

[0064] A plataforma 722 pode abstrair recursos e funções para conectar o dispositivo de computação 702 com outros dispositivos de computação. A plataforma 722 também pode servir para abstrair o escalonamento de recursos para prover um nível correspondente de escala para a demanda encontrada para os recursos 724 que são implementados através da plataforma 722. Consequentemente, em uma modalidade de dispositivo interconectado, a implementação de funcionalidade descrita no presente documento pode ser distribuída por todo o sistema 700. Por exemplo, a funcionalidade pode ser implementada em parte sobre o dispositivo de computação 702 bem como através da plataforma 722 que abstrai a funcionalidade da nuvem 720.[0064] Platform 722 may abstract resources and functions to connect computing device 702 with other computing devices. Platform 722 may also serve to abstract resource scaling to provide a corresponding level of scaling to the demand encountered for resources 724 that are implemented through platform 722. Accordingly, in an interconnected device embodiment, the implementation of functionality described in This document can be distributed throughout the system 700. For example, the functionality can be implemented in part on the computing device 702 as well as through the platform 722 that abstracts the functionality from the cloud 720.

CONCLUSÃOCONCLUSION

[0065] Embora o assunto tenha sido descrito na linguagem específica para aspectos estruturais e/ou atos metodológicos, deve ser entendido que o assunto definido nas reivindicações anexas não é necessariamente limitado aos aspectos ou atos específicos descritos acima. Preferivelmente, os aspectos e atos específicos descritos acima são divulgados como formas exemplares de implementar as reivindicações.[0065] Although the subject matter has been described in specific language for structural aspects and/or methodological acts, it should be understood that the subject matter defined in the attached claims is not necessarily limited to the specific aspects or acts described above. Preferably, the specific aspects and acts described above are disclosed as exemplary ways of implementing the claims.

Claims (11)

1. Método implementado por um dispositivo de computação (102) caracterizado pelo fato de que compreende: autenticar um cliente (201) para acessar recursos de um provedor de serviços (106); em conexão com autenticação do cliente (201), determinar se o provedor de serviços (106) é configurado para suportar tokens de autenticação bifurcada isentos de dados de privilégio; e com base na determinação: emitir um token de autenticação combinada (206) para o cliente (201) que inclui dados de privilégio associados com o cliente (201) quando o provedor de serviços (106) não é configurado para suportar tokens de autenticação bifurcada que são isentos de dados de privilégio, o token de autenticação combinada (206) contendo informação suficiente para proporcionar indicações para provedores de serviços (106) sobre privilégios de acesso de clientes sem depender de informação externa; ou emitir um token leve (206) para o cliente (201) e comunicar os dados de privilégio (208) associados com o cliente (201) para armazenamento em um banco de dados de autenticação centralizado (201) separado do provedor de serviços (106) quando o provedor de serviços (106) é configurado para suportar tokens isentos de dados de privilégio; em que o token leve (206) é configurado para conter informação de identidade e uma referência utilizável pelo provedor de serviços (106) para consultar dados de privilégio (208) associados ao cliente (201) a partir do banco de dados de autenticação centralizado (210); em que, ao detectar um token leve (206) em uma solicitação para acessar recursos, a referência é obtida a partir do token leve (206), e os dados de privilégio associados à referência são verificados para permitir o acesso do usuário aos recursos.1. Method implemented by a computing device (102) characterized by the fact that it comprises: authenticating a client (201) to access resources from a service provider (106); in connection with client authentication (201), determining whether the service provider (106) is configured to support privilege data-free forked authentication tokens; and based on the determination: issuing a combined authentication token (206) to the client (201) that includes privilege data associated with the client (201) when the service provider (106) is not configured to support forked authentication tokens which are free from privilege data, the combined authentication token (206) containing sufficient information to provide indications to service providers (106) about client access privileges without relying on external information; or issue a lightweight token (206) to the client (201) and communicate the privilege data (208) associated with the client (201) for storage in a centralized authentication database (201) separate from the service provider (106 ) when the service provider (106) is configured to support privilege data-exempt tokens; wherein the lightweight token (206) is configured to contain identity information and a reference usable by the service provider (106) to query privilege data (208) associated with the client (201) from the centralized authentication database ( 210); wherein, upon detecting a lightweight token (206) in a request to access resources, the reference is obtained from the lightweight token (206), and the privilege data associated with the reference is checked to allow the user access to the resources. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que autenticar o cliente (201) compreende obter credenciais (112) a partir do cliente (201) para autenticação e comparação das credenciais (112) com credenciais correspondentes mantidas em associação com o cliente.2. Method according to claim 1, characterized by the fact that authenticating the client (201) comprises obtaining credentials (112) from the client (201) for authentication and comparing the credentials (112) with corresponding credentials maintained in association with the client. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os dados de privilégio (208) proporcionam indicações de recursos de um ou mais provedores de serviços (106) que o cliente (201) está autorizado a usar mediante autenticação bem-sucedida.3. Method according to claim 1, characterized by the fact that the privilege data (208) provides indications of resources of one or more service providers (106) that the client (201) is authorized to use upon proper authentication -successful. 4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende criptografar os dados de privilégio (208) dentro do token de autenticação combinada (206) quando o provedor de serviços (106) não é configurado para suportar tokens que não incluem dados de privilégio.4. Method according to claim 1, characterized by the fact that it further comprises encrypting the privilege data (208) within the combined authentication token (206) when the service provider (106) is not configured to support tokens that do not include privilege data. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referência dos dados de privilégio (208) compreende uma conexão ao banco de dados de autenticação centralizado (210).5. Method according to claim 1, characterized by the fact that the privilege data reference (208) comprises a connection to the centralized authentication database (210). 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o token de autenticação combinada (206) emitido quando o provedor de serviços (106) não é configurado para suportar tokens que não incluem dados de privilégio inclui tanto informação de identificação de cliente como os dados de privilégio (208) que permitem uma determinação direta pelo provedor de serviços (106) de recursos que o cliente (201) está autorizado a usar.6. Method according to claim 1, characterized by the fact that the combined authentication token (206) issued when the service provider (106) is not configured to support tokens that do not include privilege data includes both identification information as privilege data (208) that allows a direct determination by the service provider (106) of resources that the customer (201) is authorized to use. 7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o token leve emitido (206) quando o provedor de serviços (106) é configurado para suportar tokens que não incluem dados de privilégio não contém dados de privilégio (208) suficientes para permitir que o provedor de serviços (106) determine recursos que o cliente (201) está autorizado a usar sem a pesquisa a partir do banco de dados de autenticação centralizado (210).7. Method according to claim 1, characterized by the fact that the lightweight token issued (206) when the service provider (106) is configured to support tokens that do not include privilege data does not contain privilege data (208) sufficient to allow the service provider (106) to determine resources that the client (201) is authorized to use without searching from the centralized authentication database (210). 8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que informação incluída no token leve (206) é menor do que informação incluída no token de autenticação combinada (206) de modo que o token leve (206) tenha um tamanho que é menor do que um tamanho do token de autenticação combinada (206).8. Method according to claim 1, characterized by the fact that information included in the lightweight token (206) is smaller than information included in the combined authentication token (206) so that the lightweight token (206) has a size which is smaller than a combined authentication token size (206). 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o tamanho do token leve (206) permite comunicação do token leve (206) em um formato não comprimido.9. Method according to claim 8, characterized by the fact that the size of the soft token (206) allows communication of the soft token (206) in an uncompressed format. 10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os privilégios de acesso associados com o token leve (206) são controlados com base em dados de privilégio (208) armazenados no banco de dados de autenticação centralizado (210) de modo que a posse somente do token leve não é suficiente para ganhar acesso a recursos.10. Method according to claim 1, characterized by the fact that the access privileges associated with the lightweight token (206) are controlled based on privilege data (208) stored in the centralized authentication database (210) so possession of the lightweight token alone is not enough to gain access to resources. 11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende trocar privilégios de acesso (208) associados com o token leve (206) ao modificar dados de privilégio (208) armazenados no banco de dados de autenticação centralizado (210) sem revogar o token leve (206) por si mesmo.11. Method according to claim 1, characterized by the fact that it further comprises exchanging access privileges (208) associated with the lightweight token (206) by modifying privilege data (208) stored in the centralized authentication database ( 210) without revoking the lightweight token (206) itself.
BR112016026309-0A 2014-05-21 2015-05-18 METHOD IMPLEMENTED BY A COMPUTING DEVICE FOR FORKED AUTHENTICATION TOKEN TECHNIQUES BR112016026309B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/284,221 2014-05-21

Publications (1)

Publication Number Publication Date
BR112016026309B1 true BR112016026309B1 (en) 2023-08-01

Family

ID=

Similar Documents

Publication Publication Date Title
US10565402B2 (en) System and method for serving online synchronized content from a sandbox domain via a temporary address
JP6402198B2 (en) Virtual machine image authentication using digital certificates
JP5992524B2 (en) Granting resource access
EP3146693B1 (en) Bifurcated authentication token techniques
US8505084B2 (en) Data access programming model for occasionally connected applications
KR102047389B1 (en) Shared item account selection
US10212143B2 (en) Authorizing an untrusted client device for access on a content management system
US9424439B2 (en) Secure data synchronization
US9519784B2 (en) Managing basic input/output system (BIOS) access
US10511670B2 (en) Techniques for providing authentication information to external and embedded web browsers
US9723003B1 (en) Network beacon based credential store
US10127317B2 (en) Private cloud API
US11265165B2 (en) Initial provisioning through shared proofs of knowledge and crowdsourced identification
US20150237151A1 (en) Enabling Push Notifications from Websites
KR20140064846A (en) Group opt-in links
US10205717B1 (en) Virtual machine logon federation
US10129299B1 (en) Network beacon management of security policies
US10803190B2 (en) Authentication based on client access limitation
US20080172750A1 (en) Self validation of user authentication requests
US11956233B2 (en) Pervasive resource identification
US20120023139A1 (en) Intelligent attached storage
BR112017004416B1 (en) COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR CONTROLLING ACCESS TO A SECURITY RESOURCE
US10063592B1 (en) Network authentication beacon
US11232220B2 (en) Encryption management for storage devices
US9479492B1 (en) Authored injections of context that are resolved at authentication time