Suporte para tokens de atualização no fluxo do OAuth do ADFS 2.2

6

Meu colega e eu estamos tentando ativar o OAuth no ADFS 2.2. Tudo está funcionando, exceto que o servidor apenas retorna um token de acesso (w / expiration) e não inclui um token de atualização após o login bem-sucedido. Há muito pouca documentação sobre isso, mas alguém sabe qual configuração precisa ser atualizada para retornar tokens de atualização?

Editar: A especificação do OAuth 2.0 proposta afirma:

Issuing a refresh token is optional at the discretion of the authorization server. If the authorization server issues a refresh token, it is included when issuing an access token

Como estou recebendo um token de acesso, mas nenhum token de atualização, e como o ADFS atualmente implementa apenas o fluxo de código do OAuth, meu palpite é que a equipe do ADFS optou por não retornar tokens de atualização. Eu adoraria ouvir isso definitivamente.

Editar: Como Travis disse abaixo, certifique-se

  • O IssueOAuthRefreshTokensTo do RP está definido corretamente
  • RP's AlwaysRequireAuthentication é falso
  • O TokenLifetime do RP é menor que o do ADFS ' SSOLifetime
por Matt Dearing 03.02.2014 / 21:14

1 resposta

3

Existe um parâmetro de configuração denominado IssueOAuthRefreshTokensTo no objeto da terceira parte do ADFS que controla em que tipo de token de atualização de dispositivos é emitido. Por padrão, esse valor é definido como "NoDevice", o que significa que o ADFS não lançará tokens de atualização. Valores possíveis são

  1. NoDevice = nunca emite tokens de atualização
  2. AllDevices = sempre emite tokens de atualização
  3. WorkplaceJoinedDevices = apenas emitir tokens de atualização em dispositivos associados ao local de trabalho, ou seja, aqueles que foram registrados usando o serviço DRS.

Além de verificar se a terceira parte confiável permite a emissão de tokens de atualização, o ADFS também verificará o seguinte.

  1. O token SSO apresentado ao ADFS não expira antes que o token de acesso ao RP expire. Contanto que você não tenha alterado os valores de configuração padrão e esteja entrando com uma sessão de navegador limpa (ou seja, nenhum cookie SSO), este caso não deve entrar em ação.
  2. A terceira parte confiável não está marcada para sempre exigir credenciais novas.

Você também pode verificar se está enviando um parâmetro de recurso válido na solicitação de autorização?

O ADFS possui um log de depuração. Se você puder reproduzir esse comportamento em um sistema que não seja de produção, a maneira mais fácil de identificar o problema poderá ser ativar os logs de depuração.

Este artigo aborda como habilitar logs de depuração em um sistema ADFS 2.0. O ADFS 3.0 (2012 R2) é semelhante, os nomes dos nós são ligeiramente diferentes e você não precisa ativar o rastreamento WIF ou WCF no arquivo de configuração.

link

    
por 07.02.2014 / 21:20

Tags