Quais são as novidades para autenticação?
A Microsoft adiciona e modifica periodicamente os recursos e a funcionalidade da plataforma de identidade da Microsoft, a fim de aprimorar a segurança, a usabilidade e a conformidade dela com padrões.
A menos que indicado de outra forma, as alterações descritas aqui se aplicam somente aos aplicativos registrados após a data efetiva declarada da alteração.
Verifique este artigo regularmente para saber mais sobre:
- Problemas conhecidos e correções
- Alterações do protocolo
- Funcionalidades preteridas
Dica
Para ser notificado sobre as atualizações desta página, adicione esta URL ao seu leitor de feed RSS:https://learn.microsoft.com/api/search/rss?search=%22Azure+Active+Directory+breaking+changes+reference%22&locale=en-us
Agosto de 2024
As credenciais de identidade federada agora usam correspondência que diferencia maiúsculas de minúsculas
Data de vigência: setembro de 2024
Protocolo afetado: federação de identidade de carga de trabalho
Altere
Anteriormente, ao corresponder a FIC (Federated Identity Credential) issuer
, , e audience
os valores com os valores correspondentes issuer
, subject
, e audience
contidos no token enviado à ID do Microsoft Entra por um IdP externo, a correspondência sem distinção entre maiúsculas e minúsculas subject
era usada. Para fornecer um controle mais refinado aos clientes, estamos mudando para a imposição da correspondência que diferencia maiúsculas de minúsculas.
Exemplo inválido:
- Assunto do token:
repo:contoso/contoso-org:ref:refs/heads/main
- Assunto FIC:
repo:Contoso/Contoso-Org:ref:refs/heads/main
Esses dois valores de assunto não diferenciam maiúsculas de minúsculas, portanto, a validação falha. O mesmo mecanismo é aplicado à issuer
validação audience
.
Essa alteração será aplicada inicialmente a aplicativos ou identidades gerenciadas criadas após August 14th, 2024
o . Aplicativos inativos ou identidades gerenciadas, determinadas pela ausência de solicitações de Federação de Identidade de Carga de Trabalho feitas por esse aplicativo ou identidade gerenciada entre o período August 1st, 2024
até August 31st, 2024
, são obrigados a usar a correspondência que diferencia maiúsculas de minúsculas a partir de September 27th, 2024
. Para aplicativos ativos, a correspondência que não diferencia maiúsculas de minúsculas vem em uma data posterior para ser comunicada.
Para destacar melhor as falhas devido à indiferenciação de maiúsculas e minúsculas, estamos reformulando a mensagem de erro do AADSTS700213
. Agora vai afirmar;
`AADSTS700213: No matching federated identity record found for presented assertion subject '{subject}'. Please note that matching is done using a case-sensitive comparison. Check your federated identity credential Subject, Audience, and Issuer against the presented assertion.`
O espaço reservado '{subject}'
fornece o valor da declaração de assunto contida no token que está sendo enviado do IdP externo para a ID do Microsoft Entra. Esse modelo de erro também é usado para falhas que não diferenciam maiúsculas de minúsculas e audience
validaçãoissuer
. Se você encontrar esse erro, deverá localizar a Credencial de Identidade Federada issuer
que corresponde ao , subject
, ou audience
listada no erro e confirmar se os valores correspondentes são equivalentes de uma perspectiva que diferencia maiúsculas de minúsculas. Se houver uma incompatibilidade, você precisará substituir o valor atual issuer
, , ou audience
no FIC pelo issuer
valor , subject
, ou audience
que estava contido na subject
mensagem de erro.
Observação
Para clientes do Serviço de Aplicativo do Azure que usam o GitHub Actions e se deparam com esse erro, uma opção para resolver isso é acessar o arquivo de fluxo de trabalho no /.github/workflows
repositório do GitHub e atualizar a propriedade environment name
de "Production"
para "production"
. Essas diretrizes são aplicáveis somente para cenários do Serviço de Aplicativo do Azure. Se você encontrar esse erro em um cenário diferente, consulte as diretrizes acima.
Junho de 2024
Os aplicativos devem ser registrados em um diretório
Data de entrada em vigor: junho de 2024
Pontos de extremidade afetados: v2.0 e v1.0
Protocolo afetado: todos os fluxos
Altere
Anteriormente, ao registrar um aplicativo usando a experiência de registros de aplicativo do Microsoft Entra, se o usuário estivesse conectado com sua MSA (conta pessoal da Microsoft), ele poderia optar por associar apenas o aplicativo à sua conta pessoal. Isso significa que o aplicativo não estaria associado ou contido em nenhum diretório (também conhecido como 'locatário' ou 'organização'). No entanto, a partir de junho de 2024, todos os aplicativos devem ser registrados em um diretório. Pode ser um diretório existente ou um novo que o usuário da conta pessoal da Microsoft cria para hospedar seus aplicativos do Microsoft Entra e outros recursos da Microsoft. Os usuários podem criar facilmente um novo diretório para usar para essa finalidade ingressando no Microsoft 365 Developer Program ou inscrevendo-se no Azure.
Registrar um aplicativo em um diretório, em vez de apenas associá-lo a uma conta pessoal, tem vários benefícios. Estão incluídos:
- Os aplicativos registrados em um diretório têm mais recursos disponíveis, como a capacidade de adicionar mais de um proprietário ao aplicativo e a capacidade de verificar o aplicativo pelo editor.
- O aplicativo está localizado no mesmo local que outros recursos da Microsoft que o desenvolvedor usa, como recursos do Azure.
- O aplicativo recebe benefícios de resiliência aprimorados.
Isso não afetará nenhum aplicativo existente, incluindo aplicativos existentes associados apenas a uma conta pessoal. Somente a capacidade de registrar novos aplicativos será afetada.
Outubro de 2023
Prompt de UX do RemoteConnect atualizado
Data de início de vigência: outubro de 2023
Pontos de extremidade afetados: v2.0 e v1.0
Protocolo afetado: RemoteConnect
RemoteConnect é um fluxo entre dispositivos usado para cenários relacionados ao Microsoft Authentication Broker e ao Microsoft Intune envolvendo Tokens de Atualização Primários. Para ajudar a evitar ataques de phishing, o fluxo do RemoteConnect está recebendo linguagem de experiência do usuário atualizada para informar que o dispositivo remoto (o dispositivo que iniciou o fluxo) poderá acessar todos os aplicativos usados por sua organização após a conclusão bem-sucedida do fluxo.
O prompt exibido terá esta aparência:
Junho de 2023
Omissão de declarações de email com um proprietário de domínio não verificado
Data de efetivação: junho de 2023
Pontos de extremidade afetados: v2.0 e v1.0
Alteração
Para aplicativos multilocatários, os emails que não são verificados pelo proprietário do domínio são omitidos por padrão quando a declaração opcional email
é solicitada em um conteúdo de token.
Um email será considerado proprietário do domínio verificado se:
- O domínio pertence ao locatário em que reside a conta de usuário e o administrador do locatário fez a verificação do domínio.
- O email é de uma Conta Microsoft (MSA).
- O email é de uma conta do Google.
- O email foi usado para autenticação usando o fluxo de senha única (OTP).
Observe também que as contas do Facebook e SAML/WS-Fed não têm domínios verificados.
Maio de 2023
A função administrador do Power BI será renomeada para Administrador do Fabric.
Data de efetivação: junho de 2023
Pontos de extremidade afetados:
- Listar roleDefinitions – Microsoft Graph v1.0
- Listar directoryRoles – Microsoft Graph v1.0
Altere
A função de Administrador do Power BI é renomeada para Administrador de Malha.
Em 23 de maio de 2023, a Microsoft revelou o Microsoft Fabric, que fornece uma experiência de integração de dados da plataforma Data Factory, engenharia de dados da plataforma Synapse, data warehouse, ciência de dados e experiências de análise em tempo real e BI (business intelligence) com o Power BI, tudo hospedado em uma solução SaaS centrada em lake. A administração de capacidade e locatário para essas experiências é centralizada no portal de administração do Fabric (conhecido anteriormente como portal de administração do Power BI).
A partir de junho de 2023, a função de Administrador do Power BI é renomeada para Administrador do Fabric para se alinhar com a mudança de escopo e responsabilidade dessa função. Todos os aplicativos, incluindo o Microsoft Entra ID, as APIs do Microsoft Graph, o Microsoft 365 e o GDAP começarão a refletir o novo nome da função ao longo de várias semanas.
Como lembrete, o código do aplicativo e os scripts não devem tomar decisões com base no nome da função ou no nome de exibição.
Dezembro de 2021
Os usuários do AD FS verão mais prompts de logon para garantir que o usuário correto esteja conectado.
Data de início de vigência: dezembro 2021
Pontos de extremidade afetados: autenticação integrada do Windows
Protocolo impactado: autenticação integrada do Windows
Alteração
Hoje, quando um usuário é enviado ao AD FS para autenticação, ele será conectado silenciosamente a qualquer conta que já tenha uma sessão válida com o AD FS. Essa entrada silenciosa ocorre mesmo que o usuário tenha a intenção de entrar em outra conta de usuário. Para reduzir a frequência dessa entrada incorreta, a partir de dezembro, o Microsoft Entra ID enviará o parâmetro prompt=login
para o AD FS se o Gerenciador de Contas da Web (WAM) no Windows fornecer ao Microsoft Entra ID um login_hint
durante o logon, o que indica que a entrada de um usuário específico é desejada.
Quando os requisitos acima são atendidos (o WAM é usado para direcionar o usuário ao Microsoft Entra ID para entrar, um login_hint
é incluído e a instância do AD FS para o domínio do usuário oferece suporte a prompt=login
), o usuário não é silenciosamente conectado e, em vez disso, é solicitado a fornecer um nome de usuário para continuar a entrar no AD FS. Se quiserem entrar na sessão do AD FS existente, eles poderão selecionar a opção "Continuar como usuário atual", exibida abaixo do prompt de logon. Caso contrário, eles podem continuar com o nome de usuário com o qual pretendem entrar.
Essa alteração será distribuída em dezembro de 2021 ao longo de várias semanas. Isso não altera o comportamento de entrada para:
- Aplicativos que usam IWA diretamente
- Aplicativos que usam OAuth
- Domínios que não são federados para uma instância do AD FS
Outubro de 2021
O erro 50105 foi corrigido para não retornar interaction_required
durante a autenticação interativa
Data de início de vigência: outubro de 2021
Pontos de extremidade afetados: v2.0 e v1.0
Protocolo afetado: todos os fluxos de usuário para aplicativos que exigem atribuição de usuário
Alteração
O erro 50105 (a designação atual) é emitido quando um usuário não atribuído tenta entrar em um aplicativo que um administrador marcou com exigência de atribuição de usuário. Esse é um padrão de controle de acesso comum; os usuários geralmente devem procurar um administrador para solicitar a atribuição a fim de desbloquear o acesso. O erro tinha um bug que poderia causar loops infinitos em aplicativos bem codificados que manipulavam corretamente a resposta de erro interaction_required
. interaction_required
instrui um aplicativo a executar a autenticação interativa, mas mesmo depois disso, o Microsoft Entra ID ainda retorna uma resposta de erro interaction_required
.
O cenário de erro foi atualizado, de modo que durante a autenticação não interativa (em que prompt=none
é usado para ocultar o a experiência do usuário), o aplicativo será instruído a executar a autenticação interativa usando uma resposta de erro interaction_required
. Na autenticação interativa subsequente, o Microsoft Entra ID manterá o usuário e mostrará uma mensagem de erro diretamente, impedindo que um loop ocorra.
Como lembrete, o código do aplicativo não deve tomar decisões com base em cadeias de caracteres de código de erro, como AADSTS50105
. Em vez disso, siga nossas diretrizes de tratamento de erros e use as respostas de autenticação padronizadas, como interaction_required
e login_required
encontradas no campo padrão error
da resposta. Os outros campos de resposta destinam-se apenas ao consumo por seres humanos que solucionam problemas.
Você pode examinar o texto atual do erro 50105 e muito mais no serviço de pesquisa de erro: https://login.microsoftonline.com/error?code=50105.
O URI do AppId em aplicativos de locatário único exigirá o uso de esquema padrão ou domínios verificados
Data de início de vigência: outubro de 2021
Pontos de extremidade afetados: v2.0 e v1.0
Protocolo afetado: todos os fluxos
Altere
Para aplicativos de locatário único, adicionar ou atualizar o URI do AppId confirma se o domínio do URI de esquema do HTTPS está na lista de domínios verificados no locatário do cliente ou que o valor usa o esquema padrão (api://{appId}
) fornecido pelo Microsoft Entra ID. Isso pode impedir que os aplicativos adicionem um URI do AppId se o domínio não estiver na lista de domínios verificados ou se o valor não usar o esquema padrão.
Para obter mais informações sobre domínios verificados, consulte a documentação de domínios personalizados.
A alteração não afeta os aplicativos existentes que usam domínios não verificados em seu URI do AppID. Ele valida somente novos aplicativos, ou quando um aplicativo existente atualiza URIs de identificador, ou adiciona um novo à coleção identifierUri. As novas restrições se aplicam somente a URIs adicionados à coleção identifierUris de um aplicativo após o dia 15 de outubro de 2021. Os URIs do AppId que já estiverem na coleção identifierUris de um aplicativo quando a restrição entrar em vigor, no dia 15 de outubro de 2021, continuarão a funcionar mesmo que você adicione novos URIs a essa coleção.
Se uma solicitação falhar na verificação de validação, a API do aplicativo para criar/atualizar retornará um 400 badrequest
para o cliente indicando HostNameNotOnVerifiedDomain.
Há suporte para os seguintes formatos de URI de ID de aplicativo baseados em esquema HTTP e API. Substitua os valores nos espaços reservados conforme descrito na lista após a tabela.
ID do aplicativo com suporte Formatos de URI |
URIs de ID do aplicativo de exemplo |
---|---|
api://<appId> | api://00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<appId> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<string> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api |
api://<string>/<appId> | api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444 |
https://<tenantInitialDomain>.onmicrosoft.com/<string> | https://contoso.onmicrosoft.com/productsapi |
https://<verifiedCustomDomain>/<string> | https://contoso.com/productsapi |
https://<string>.<verifiedCustomDomain> | https://product.contoso.com |
https://<string>.<verifiedCustomDomain>/<string> | https://product.contoso.com/productsapi |
- <appId> - A propriedade do identificador de aplicativo (appId) do objeto de aplicativo.
- <string> - O valor da cadeia de caracteres do host ou do segmento de linha da AP.
- <tenantId> - Um GUID gerado pelo Azure para representar o locatário no Azure.
- <tenantInitialDomain> - <tenantInitialDomain>.onmicrosoft.com, em que <tenantInitialDomain> é o nome de domínio inicial que o criador do locatário especificou na criação do locatário.
- <verifiedCustomDomain> ─ Um domínio personalizado verificado que foi configurado para seu locatário do Microsoft Entra.
Observação
Ao usar o esquema api://, adicione um valor de cadeia de caracteres diretamente após "api://". Por exemplo, api://<string>. Esse valor de cadeia de caracteres pode ser um GUID ou uma cadeia de caracteres arbitrária. Se você adicionar um valor de GUID, ele deverá corresponder à ID do aplicativo ou à ID do locatário. O valor do URI da ID do aplicativo deve ser exclusivo para seu locatário. Se você adicionar api://<tenantId> como o URI da ID do aplicativo, ninguém mais poderá usar esse URI em nenhum outro aplicativo. Recomenda-se usar api://<appId> ou o esquema HTTP como alternativa.
Importante
O valor do URI da ID do aplicativo não deve terminar com um caractere "/" de barra.
Observação
Embora seja seguro remover os identifierUris para registros de aplicativo dentro do locatário atual, a remoção do identifierUris pode fazer com que os clientes falhem para outros registros de aplicativo.
Agosto de 2021
O acesso condicional só será disparado para escopos explicitamente solicitados
Data de entrada em vigor: agosto de 2021, com distribuição gradual a partir de abril.
Pontos de extremidade afetados: v2.0
Protocolo afetado: todos os fluxos usando o consentimento dinâmico
Atualmente, os aplicativos que usam o consentimento dinâmico recebem todas as permissões para as quais eles têm consentimento, mesmo que não tenham sido solicitados por nome no parâmetro scope
. Um aplicativo que solicita apenas user.read
, mas com consentimento para files.read
, pode ser forçado a passar o requisito de Acesso Condicional atribuído para files.read
, por exemplo.
Para reduzir o número de prompts de acesso condicional desnecessários, o Microsoft Entra ID está alterando a forma como os escopos são fornecidos aos aplicativos, para que somente os escopos explicitamente solicitados disparem o acesso condicional. Os aplicativos que dependem do comportamento anterior do Microsoft Entra ID de incluir todos os escopos no token, quer sejam solicitados ou não, podem ser interrompidos devido a escopos ausentes.
Os aplicativos agora receberão tokens de acesso com uma combinação de permissões: tokens solicitados, e aqueles para os quais há o consentimento de que não exigem prompts de acesso condicional. Os escopos do token de acesso são refletidos no parâmetro de resposta scope
do token.
Essa alteração será feita para todos os aplicativos, exceto aqueles com uma dependência observada sobre esse comportamento. Os desenvolvedores receberão atendimento se forem isentos dessa alteração, pois podem ter uma dependência dos prompts de acesso condicional adicionais.
Exemplos
Um aplicativo tem consentimento para user.read
, files.readwrite
e tasks.read
. files.readwrite
tem políticas de acesso condicional aplicadas a ele, ao passo que os outros dois não têm. Se um aplicativo fizer uma solicitação de token para scope=user.read
, e o usuário conectado no momento não tiver passado uma política de acesso condicional, o token resultante será para as permissões user.read
e tasks.read
. tasks.read
está incluído porque o aplicativo tem o consentimento e não exige que uma política de acesso condicional seja imposta.
Se o aplicativo solicitar scope=files.readwrite
, o acesso condicional exigido pelo locatário será disparado, forçando o aplicativo a mostrar um prompt de autenticação interativa em que a política de acesso condicional pode ser atendida. O token retornado terá todos os três escopos.
Se o aplicativo fizer uma última solicitação para qualquer um dos três escopos (digamos, scope=tasks.read
), o Microsoft Entra ID verá que o usuário já concluiu as políticas de acesso condicional necessárias para o files.readwrite
e emitirá novamente um token com todas as três permissões nele.
Junho de 2021
A UX de fluxo de código do dispositivo agora incluirá um prompt de confirmação do aplicativo
Data de entrada em vigor: junho de 2021.
Pontos de extremidade afetados: v2.0 e v1.0
Protocolo afetado: o fluxo de código do dispositivo
Para ajudar a evitar ataques de phishing, o fluxo do código do dispositivo agora inclui um prompt que valida se o usuário está entrando no aplicativo esperado.
O prompt que aparece é semelhante ao seguinte:
Maio de 2020
Correção de bug: o Microsoft Entra ID não codificará mais a URL do parâmetro de estado duas vezes
Data de efetivação: maio de 2021
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: todos os fluxos que visitam o ponto de extremidade /authorize
(fluxo implícito e fluxo de código de autorização)
Um bug foi encontrado e corrigido na resposta de autorização do Microsoft Entra. Durante o segmento de autenticação /authorize
, o parâmetro state
da solicitação é incluído na resposta, a fim de preservar o estado do aplicativo e ajudar a evitar ataques de CSRF. O Microsoft Entra ID codificou incorretamente por URL o parâmetro state
antes de inseri-lo na resposta, onde ele foi codificado mais uma vez. Isso resultaria em aplicativos rejeitando incorretamente a resposta do Microsoft Entra ID.
O Microsoft Entra ID não codificará mais esse parâmetro duas vezes, para que os aplicativos analisem o resultado corretamente. Essa alteração será feita em todos os aplicativos.
Os pontos de extremidade do Azure Governamental estão mudando
Data de entrada em vigor: 5 de maio de 2020 (com conclusão em junho de 2020)
Pontos de extremidade afetados: todos
Protocolo afetado: todos os fluxos
Em 1º de junho de 2018, a Autoridade do Microsoft Entra para o Azure Governamental mudou de https://login-us.microsoftonline.com
para https://login.microsoftonline.us
. Essa alteração também é aplicada ao GCC High e DoD do Microsoft 365, para os quais o Microsoft Entra ID do Azure Governamental também oferece serviços. Se você tiver aplicativos em um locatário do governo dos EUA atualize-os para conectar os usuários no ponto de extremidade .us
.
A partir de 5 de maio de 2020, o Microsoft Entra ID começará a aplicar a alteração do ponto de extremidade, bloqueando a conexão dos usuários governamentais em aplicativos hospedados nos locatários do governo dos EUA por meio do ponto de extremidade público (microsoftonline.com
). Os aplicativos afetados começarão a ver um erro AADSTS900439
- USGClientNotSupportedOnPublicEndpoint
. Esse erro indica que o aplicativo está tentando entrar em um usuário do governo dos EUA no ponto de extremidade público na nuvem. Se o aplicativo estiver em um locatário de nuvem pública e pretende oferecer suporte a usuários do governo dos EUA, você precisará atualizar o aplicativo para dar suporte a eles explicitamente. Isso pode exigir a criação de um novo registro de aplicativo na nuvem do governo dos EUA.
A imposição dessa alteração será feita usando uma distribuição gradual com base na frequência com que os usuários da nuvem do governo dos EUA entram no aplicativo. Ou seja, os aplicativos que entram raramente em usuários do governo dos EUA verão a imposição primeiro e os aplicativos frequentemente usados pelos usuários do governo dos EUA serão os últimos a ter a imposição aplicada. Esperamos que a imposição seja concluída em todos os aplicativos em junho de 2020.
Para obter mais detalhes, confira a postagem no blog do Azure Governamental sobre essa migração.
Março de 2020
As senhas de usuário serão restritas a 256 caracteres.
Data de efetivação: 13 de março de 2020
Pontos de extremidade afetados: todos
Protocolo afetado: todos os fluxos de usuário.
Os usuários com senhas com mais de 256 caracteres que entram diretamente no Microsoft Entra ID (não um IDP federado, como o AD FS) serão solicitados a alterar suas senhas antes de poderem entrar. Os administradores podem receber solicitações para ajudar a redefinir a senha do usuário.
O erro nos logs de entrada será semelhante a AADSTS 50052: InvalidPasswordExceedsMaxLength.
Mensagem: The password entered exceeds the maximum length of 256. Please reach out to your admin to reset the password.
Correção:
O usuário não consegue entrar porque a senha dele excede o comprimento máximo permitido. Eles devem entrar em contato com o administrador para redefinir a senha. Se o SSPR estiver habilitado para o locatário, ele poderá redefinir a senha seguindo o link "Esqueceu a senha".
Fevereiro de 2020
Fragmentos vazios serão anexados a cada redirecionamento HTTP do ponto de extremidade de logon.
Data de efetivação: 8 de fevereiro de 2020
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: fluxos OAuth e OIDC que usam response_type=query
– isso abrange o fluxo do código de autorização em alguns casos e o fluxo implícito.
Quando uma resposta de autenticação é enviada do login.microsoftonline.com para um aplicativo pelo redirecionamento HTTP, o serviço acrescentará um fragmento vazio à URL de resposta. Isso impedirá uma classe de ataques de redirecionamento, pois garante que o navegador apagará qualquer fragmento existente na solicitação de autenticação. Nenhum aplicativo deve depender desse comportamento.
Agosto de 2019
A semântica do formulário POST será imposta com mais rigorosidade – espaços e aspas serão ignorados
Data de efetivação: 2 de setembro de 2019
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: todo lugar onde POST for usado (credenciais do cliente, resgate de código de autorização, ROPC, OBOe resgate de token de atualização)
A partir da semana de 02 de setembro de 2019, as solicitações de autenticação que usam o método POST passaram a ser validadas usando padrões HTTP mais estritos. Especificamente, espaços e aspas duplas (") não serão mais removidos dos valores do formulário de solicitação. Essas alterações não devem interromper clientes existentes e garantirão que as solicitações enviadas ao Microsoft Entra ID sejam sempre gerenciadas de maneira confiável. No futuro (veja acima), planejamos rejeitar ainda mais parâmetros duplicados e ignorar a BOM em solicitações.
Exemplo:
Hoje, ?e= "f"&g=h
é analisado de forma idêntica como ?e=f&g=h
– então e
== f
. Com essa alteração, agora ela será analisada de modo que e
== "f"
– isso dificilmente será um argumento válido e a solicitação agora falharia.
Julho de 2019
Tokens somente de aplicativo para aplicativos de locatário único só serão emitidos se o aplicativo cliente existir no locatário de recursos
Data de efetivação: 26 de julho de 2019
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: credenciais de cliente (tokens somente de aplicativo)
No dia 26 de julho de 2019, entrou em vigor uma alteração de segurança que altera a maneira como os tokens somente de aplicativo (por meio da concessão de credenciais de cliente) são emitidos. Anteriormente, os aplicativos eram autorizados a obter tokens para chamar outro aplicativo, independentemente da presença no locatário ou das funções consentidas para esse aplicativo. Esse comportamento foi atualizado para que, para recursos (às vezes chamados de APIs da Web) definidos como um único locatário (o padrão), o aplicativo cliente exista dentro do locatário do recurso. O consentimento existente entre o cliente e a API ainda não é necessário e os aplicativos ainda devem fazer suas próprias verificações de autorização para garantir que uma declaração roles
esteja presente e contenha o valor esperado para a API.
A mensagem de erro para este cenário declara atualmente:
The service principal named <appName> was not found in the tenant named <tenant_name>. This can happen if the application has not been installed by the administrator of the tenant.
Para corrigir esse problema, use a experiência de consentimento do administrador para criar a entidade de serviço do aplicativo cliente no locatário ou crie-a manualmente. Esse requisito garante que o locatário concedeu a permissão de aplicativo para operar dentro do locatário.
Solicitação de exemplo
https://login.microsoftonline.com/contoso.com/oauth2/authorize?resource=https://gateway.contoso.com/api&response_type=token&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&...
Neste exemplo, o locatário (autoridade) do recurso é contoso.com, o aplicativo de recurso é um aplicativo de locatário único chamado gateway.contoso.com/api
para o locatário Contoso e o aplicativo cliente é 00001111-aaaa-2222-bbbb-3333cccc4444
. Se o aplicativo cliente tiver uma entidade de serviço dentro de Contoso.com, essa solicitação poderá continuar. No entanto, se não tiver, a solicitação falhará com o erro acima.
Se o aplicativo de gateway da Contoso for multilocatário, a solicitação continuará, independentemente do aplicativo cliente ter uma entidade de serviço em Contoso.com.
URIs de redirecionamento agora podem conter parâmetros de cadeia de caracteres de consulta
Data de efetivação: 22 de julho de 2019
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: todos os fluxos
De acordo com a RFC 6749, os aplicativos do Microsoft Entra agora podem registrar e usar URIs de redirecionamento (resposta) com parâmetros de consulta estáticos (como https://contoso.com/oauth2?idp=microsoft
) para solicitações do OAuth 2.0. URIs de redirecionamento dinâmico ainda são proibidos, pois representam um risco de segurança e não podem ser usados para reter informações de estado em uma solicitação de autenticação – para isso, use o parâmetro state
.
O parâmetro de consulta estática está sujeito à correspondência de cadeia de caracteres para URIs de redirecionamento como qualquer outra parte do URI de redirecionamento. Se nenhuma cadeia de caracteres que corresponda à redirect_uri decodificada por URI estiver registrada, a solicitação será rejeitada. Se o URI for encontrado no registro de aplicativo, a cadeia de caracteres inteira será usada para redirecionar o usuário, incluindo o parâmetro de consulta estática.
Naquele momento (fim de julho de 2019), a UX de registro de aplicativo no portal do Azure ainda bloqueava parâmetros de consulta. No entanto, você pode editar manualmente o manifesto do aplicativo para adicionar parâmetros de consulta e testá-lo no aplicativo.
Março de 2019
Os clientes de looping serão interrompidos
Data de efetivação: 25 de março de 2019
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: todos os fluxos
Às vezes, os aplicativos cliente podem se comportar de forma inadequada e emitir centenas da mesma solicitação de logon em um curto período de tempo. Essas solicitações podem ou não ser bem-sucedidas, mas contribuem para uma experiência de usuário ruim e um aumento de cargas de trabalho para o IDP, o que aumenta a latência para todos os usuários e reduz a disponibilidade do IDP. Esses aplicativos estão operando fora dos limites de uso normal e devem ser atualizados para se comportarem corretamente.
Os clientes que emitirem solicitações duplicadas várias vezes receberão um erro invalid_grant
: AADSTS50196: The server terminated an operation because it encountered a loop while processing a request
.
A maioria dos clientes não precisa alterar o comportamento para evitar esse erro. Somente clientes configurados incorretamente (sem cache de token ou que já exibem loops de prompt) serão afetados por esse erro. Os clientes são rastreados em uma base por instância localmente (via cookie) nos seguintes fatores:
Dica de usuário, se houver
Escopos ou recursos sendo solicitados
ID do Cliente
URI de redirecionamento
Tipo e modo de resposta
Os aplicativos que fazem várias solicitações (mais de 15) em um curto período (5 minutos) receberão um erro invalid_grant
que explicará que eles estão em loop. Os tokens solicitados têm tempos de vida suficientemente longos (10 minutos no mínimo, 60 minutos por padrão), o que torna solicitações repetidas nesse período de tempo desnecessárias.
Todos os aplicativos devem lidar com invalid_grant
ao exibir um prompt interativo, em vez de solicitar silenciosamente um token. Para evitar esse erro, os clientes devem garantir que estão armazenando em cache os tokens recebidos corretamente.
Outubro de 2018
Não é mais possível reutilizar códigos de autorização
Data de efetivação: 15 de novembro de 2018
Pontos de extremidade afetados: v1.0 e v2.0
Protocolo afetado: Fluxo de código
A partir de 15 de novembro de 2018, o Microsoft Entra ID deixará de aceitar códigos de autenticação usados anteriormente para aplicativos. Essa alteração de segurança ajuda a deixar o Microsoft Entra ID em conformidade com a especificação do OAuth e será aplicada aos pontos de extremidade v1 e v2.
Se seu aplicativo reutiliza códigos de autorização para obter tokens para vários recursos, recomendamos que você use o código para obter um token de atualização e, em seguida, utilize esse token de atualização para adquirir tokens adicionais para outros recursos. Os códigos de autorização só podem ser usados uma vez; porém, os códigos de atualização podem ser usados várias vezes em diferentes recursos. Qualquer aplicativo novo que tente reutilizar um código de autenticação durante o fluxo de código OAuth receberá um erro invalid_grant.
Para obter mais informações sobre tokens de atualização, consulte Atualização de tokens de acesso. Se estiver usando a ADAL ou a MSAL, isso será feito para você pela biblioteca – substitua a segunda instância de AcquireTokenByAuthorizationCodeAsync
por AcquireTokenSilentAsync
.
Maio de 2018
Os tokens de ID não podem ser usados para o fluxo OBO
Data: 1º de maio de 2018
Pontos de extremidade afetados: v1.0 e v2.0
Protocolos afetados: fluxo implícito e fluxo on-behalf-of
Após 1º de maio de 2018, os id_tokens não podem ser usados como a declaração em um Fluxo OBO para novos aplicativos. Em vez disso, é necessário usar tokens de acesso para proteger as APIs, até mesmo entre um cliente e a camada intermediária do mesmo aplicativo. Os aplicativos registrados antes de 1º de maio de 2018 continuarão funcionando e poderão trocar id_tokens por um token de acesso; no entanto, esse padrão não é considerado uma melhor prática.
Para contornar essa alteração, é possível fazer o seguinte:
- Crie uma API Web para o aplicativo, com um ou mais escopos. Esse ponto de entrada explícito permitirá que segurança e controle mais precisos.
- No manifesto do aplicativo, no portal do Azure ou no portal de registro do aplicativo, verifique se o aplicativo tem permissão para emitir tokens de acesso por meio do fluxo implícito. Isso é controlado pela chave
oauth2AllowImplicitFlow
. - Quando o aplicativo cliente solicita um id_token via
response_type=id_token
, também solicita um token de acesso (response_type=token
) para a API Web criada acima. Portanto, ao usar o ponto de extremidade v 2.0, o parâmetroscope
deverá ser semelhante aoapi://GUID/SCOPE
. No ponto de extremidade v1.0, o parâmetroresource
deve ser o URI da API do aplicativo Web. - Passe esse token de acesso para a camada intermediária no lugar de id_token.