Modelo de aplicativo

Os aplicativos podem conectar os próprios usuários ou delegar a entrada para um provedor de identidade. Este artigo discute as etapas necessárias para registrar um aplicativo na plataforma de identidade da Microsoft.

Registrar um aplicativo

Para que um provedor de identidade saiba que um usuário tem acesso a um aplicativo específico, o usuário e o aplicativo devem ser registrados no provedor de identidade. Ao registrar o aplicativo no Azure Active Directory (AAD), você está fornecendo uma configuração de identidade para o aplicativo que permite a integração com a plataforma de identidade da Microsoft. O registro do aplicativo também permite que você:

  • Personalize a identidade visual do aplicativo na caixa de diálogo de entrada. Essa identidade visual é importante porque fazer logon é a primeira experiência que um usuário terá com o aplicativo.
  • Decida se deseja permitir que os usuários se conectem somente se eles pertencerem à sua organização. Essa arquitetura é conhecida como um aplicativo de locatário único. Como alternativa, você pode permitir que os usuários se conectem usando qualquer conta corporativa ou de estudante, que é conhecida como um aplicativo multilocatário. Você também pode permitir contas pessoais da Microsoft ou uma conta social do LinkedIn, do Google e assim por diante.
  • Solicite permissões de escopo. Por exemplo, você pode solicitar o escopo “user.read”, que concede permissão para ler o perfil do usuário conectado.
  • Defina escopos que definem o acesso à API Web. Normalmente, quando um aplicativo deseja acessar a API, ele precisa solicitar permissões para os escopos que você definir.
  • Compartilhe um segredo com a plataforma de identidade da Microsoft que comprova a identidade do aplicativo. Usar um segredo é relevante no caso de o aplicativo ser um aplicativo cliente confidencial. Um aplicativo cliente confidencial é um aplicativo que pode armazenar credenciais com segurança. Um servidor de back-end confiável é necessário para armazenar as credenciais.

Depois que o aplicativo é registrado, ele recebe um identificador exclusivo que compartilha com a plataforma de identidade da Microsoft quando solicita tokens. Se o aplicativo for um aplicativo cliente confidencial, ele também compartilhará o segredo ou a chave pública dependendo se os certificados ou segredos foram usados.

A plataforma de identidade da Microsoft representa aplicativos usando um modelo que atende a duas funções principais:

  • Identificar o aplicativo pelos protocolos de autenticação aos quais ele dá suporte.
  • Fornecer todos os identificadores, URLs, segredos e informações relacionadas que são necessários para a autenticação.

A plataforma de identidade da Microsoft:

  • Armazena todos os dados necessários para dar suporte à autenticação no runtime.
  • Armazena todos os dados para decidir quais recursos um aplicativo pode precisar acessar e sob quais circunstâncias uma determinada solicitação deve ser atendida.
  • Fornece infraestrutura para implementação do provisionamento de aplicativos dentro do locatário do desenvolvedor do aplicativo e em qualquer outro locatário do AAD.
  • Processa o consentimento do usuário durante o tempo de solicitação do token e facilita o provisionamento dinâmico de aplicativos entre locatários.

Consentimento é o processo para que um proprietário do recurso conceda autorização a um aplicativo cliente, para acessar recursos protegidos em permissões específicas, em nome do proprietário do recurso. A plataforma de identidade da Microsoft permite que:

  • Os usuários e administradores concedam ou neguem de forma dinâmica o consentimento ao aplicativo para o acesso de recursos em seu nome.
  • Os administradores decidam, em última análise, o que os aplicativos têm permissão para fazer, quais usuários podem usar aplicativos específicos e como os recursos do diretório são acessados.

Aplicativos multilocatário

Na plataforma de identidade da Microsoft, um objeto de aplicativo descreve um aplicativo. No momento da implantação, a plataforma de identidade da Microsoft usa um objeto de aplicativo como um blueprint para criar uma entidade de serviço, que representa uma instância concreta de um aplicativo em um diretório ou um locatário. A entidade de serviço define o que o aplicativo pode realmente fazer em um diretório de destino específico, quem pode usá-lo, a quais recursos ele tem acesso e assim por diante. A plataforma de identidade da Microsoft cria uma entidade de serviço com base em um objeto de aplicativo por meio do consentimento.

O diagrama a seguir mostra um fluxo de provisionamento simplificado da plataforma de identidade da Microsoft orientado por consentimento. Ele mostra dois locatários: A e B.

  • O locatário A possui o aplicativo.
  • O locatário B está instanciando o aplicativo por meio de uma entidade de serviço.

Diagrama que mostra um fluxo de provisionamento simplificado controlado por consentimento.

Neste fluxo de provisionamento:

  1. Um usuário do locatário B tenta entrar com o aplicativo. O ponto de extremidade da autorização solicita um token para o aplicativo.
  2. As credenciais do usuário são adquiridas e verificadas quanto à autenticação.
  3. O usuário deve fornecer consentimento ao aplicativo para obter acesso ao locatário B.
  4. A plataforma de identidade da Microsoft usa o objeto de aplicativo no locatário A como um blueprint para criar uma entidade de serviço no locatário B.
  5. O usuário recebe o token solicitado.

Você pode repetir esse processo para mais locatários. O locatário A mantém o blueprint para o aplicativo (objeto de aplicativo). Os usuários e os administradores de todos os outros locatários nos quais o aplicativo recebe consentimento mantêm o controle sobre o que o aplicativo pode fazer por meio do objeto de entidade de serviço correspondente em cada locatário. Para obter mais informações, veja Objetos de entidade de serviço e aplicativo na plataforma de identidade da Microsoft.

Próximas etapas

Para obter mais informações sobre autenticação e autorização na plataforma de identidade da Microsoft, veja os seguintes artigos:

Para obter mais informações sobre o modelo de aplicativo, veja os seguintes artigos: