Partilhar via


DeviceCodeCredential Classe

  • java.lang.Object
    • com.azure.identity.DeviceCodeCredential

Implementações

public class DeviceCodeCredential
implements TokenCredential

A autenticação de código do dispositivo é um tipo de fluxo de autenticação oferecido pelo Azure Active Directory (Azure AD) que permite que os usuários entrem em aplicativos em dispositivos que não têm um navegador da Web ou um teclado. Esse método de autenticação é particularmente útil para dispositivos como TVs inteligentes, consoles de jogos e dispositivos IoT (Internet das Coisas) que podem não ter a capacidade de inserir um nome de usuário e senha. Com a autenticação de código do dispositivo, o usuário recebe um código de dispositivo no dispositivo que precisa ser autenticado. Em seguida, o usuário navega até um navegador da Web em um dispositivo separado e insere o código na página de entrada da Microsoft. Depois que o usuário insere o código, Azure AD o verifica e solicita que o usuário entre com suas credenciais, como um nome de usuário e senha ou um método de MFA (autenticação multifator). A autenticação de código do dispositivo pode ser iniciada usando vários protocolos com suporte Azure AD, como OAuth 2.0 e OpenID Connect, e pode ser usada com uma ampla variedade de aplicativos integrados Azure AD. O DeviceCodeCredential autentica interativamente um usuário e adquire um token em dispositivos com interface do usuário limitada. Ele funciona solicitando que o usuário acesse uma URL de logon em um computador habilitado para navegador quando o aplicativo tenta se autenticar. Em seguida, o usuário insere o código de dispositivo mencionado nas instruções junto com suas credenciais de logon. Após a autenticação bem-sucedida, o aplicativo que solicitou a autenticação é autenticado com êxito no dispositivo em que está sendo executado. Para obter mais informações, consulte a documentação de autenticação de código do dispositivo.

Configuração necessária:

Para autenticar um usuário por meio do fluxo de código de dispositivo, execute as seguintes etapas:

  1. Vá para Azure Active Directory em portal do Azure e localize o registro do aplicativo.
  2. Navegue até a seção Autenticação.
  3. Em URIs redirecionados sugeridos, marcar o URI que termina com /common/oauth2/nativeclient.
  4. Em Tipo de Cliente Padrão, selecione Sim para Tratar o aplicativo como um cliente público.

Essas etapas permitirão que o aplicativo seja autenticado, mas ainda não terá permissão para fazer logon no Active Directory nem acessar recursos em seu nome. Para resolver esse problema, navegue até Permissões de API e habilite o Microsoft Graph e os recursos que você deseja acessar, como o gerenciamento de serviços do Azure, Key Vault e assim por diante. Você também precisa ser o administrador do seu locatário para dar consentimento ao seu aplicativo ao fazer logon pela primeira vez. Se você não conseguir configurar a opção de fluxo de código do dispositivo em seu Active Directory, talvez seu aplicativo precise ser multilocatário. Para tornar seu aplicativo multilocatário, navegue até o painel Autenticação e selecione Contas em qualquer diretório organizacional. Em seguida, selecione sim para Tratar aplicativo como Cliente Público.

Exemplo: Construir DeviceCodeCredential

O exemplo de código a seguir demonstra a criação de um DeviceCodeCredential, usando o DeviceCodeCredentialBuilder para configurá-lo. Por padrão, a credencial imprime o desafio de código do dispositivo na linha de comando, para substituir os comportamentos que um challengeConsumer pode ser especificado opcionalmente no DeviceCodeCredentialBuilder. Depois que essa credencial é criada, ela pode ser passada para o construtor de muitos dos construtores de cliente do SDK do Azure para Java como o parâmetro 'credential'.

TokenCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
     .build();

Resumo do método

Modificador e tipo Método e descrição
reactor.core.publisher.Mono<AuthenticationRecord> authenticate()

Autentica um usuário por meio do fluxo de código do dispositivo.

reactor.core.publisher.Mono<AuthenticationRecord> authenticate(TokenRequestContext request)

Autentica um usuário por meio do fluxo de código do dispositivo.

reactor.core.publisher.Mono<AccessToken> getToken(TokenRequestContext request)
AccessToken getTokenSync(TokenRequestContext request)

Métodos herdados de java.lang.Object

Detalhes do método

authenticate

public Mono authenticate()

Autentica um usuário por meio do fluxo de código do dispositivo.

A credencial adquire uma URL de verificação e um código do Azure Active Directory. O usuário deve navegar até a URL, inserir o código e autenticar com o Azure Active Directory. Se o usuário for autenticado com êxito, a credencial receberá um token de acesso.

Returns:

O AuthenticationRecord que pode ser usado para autenticar silenciosamente a conta na execução futura se o cache persistente foi configurado por meio de tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) quando a credencial foi instanciada.

authenticate

public Mono authenticate(TokenRequestContext request)

Autentica um usuário por meio do fluxo de código do dispositivo.

A credencial adquire uma URL de verificação e um código do Azure Active Directory. O usuário deve navegar até a URL, inserir o código e autenticar com o Azure Active Directory. Se o usuário for autenticado com êxito, a credencial receberá um token de acesso.

Parameters:

request - Os detalhes da solicitação de autenticação.

Returns:

O AuthenticationRecord que pode ser usado para autenticar silenciosamente a conta na execução futura se o cache persistente foi configurado por meio de tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) quando a credencial foi instanciada.

getToken

public Mono getToken(TokenRequestContext request)

Parameters:

request

getTokenSync

public AccessToken getTokenSync(TokenRequestContext request)

Parameters:

request

Aplica-se a