Usando OAuth no IBM WebSphere DataPower Appliances, parte 4: Usando o DataPower OAuth 2.0 com a senha do proprietário do recurso

A parte 4 desta série de vários artigos ajuda você a configurar o WebSphere ® DataPower Appliances e a ativar o suporte OAuth 2.0 usando o tipo de concessão de credencial de senha do proprietário do recurso. Ele abrange tanto as configurações do servidor do recurso quanto do servidor de autorização.

Teri Wen, Software Engineer, IBM

Photo of Teri WenTeri Wen é engenheira de software da IBM Taiwan - China Software Development Lab (CDL), onde trabalha no controle de qualidade do WebSphere DataPower Appliances. Atualmente, ela é engenheira de teste para o suporte do OAuth 2.0 do DataPower e trabalhou no controle de qualidade de diversos recursos de segurança em releases anteriores.



24/Ago/2012

Introdução

O protocolo de autorização do OAuth se concentra nos recursos de compartilhamento do usuário sem o compartilhamento de credenciais. Os tokens oferecem concessão de acesso em vez de um nome de usuário e senha. Os tokens podem ser concedidos de diversas maneiras, e uma delas é o tipo de concessão de credencial de senha do proprietário do recurso. É um processo duplo que envolve a troca do nome de usuário e senha do proprietário do recurso pelo token de acesso e pelo uso desse token para acessar os recursos. Para obter mais informações sobre os processos duplos e triplos, veja a Parte 1 desta série, Apresentando o suporte OAuth 2.0 no firmware do DataPower revisão 5.0 .

Conforme mostrado na Figura 1, se um serviço de hospedagem de imagem precisar acessar seus recursos, como fotos e informações do perfil armazenadas em uma rede de mídia social, uma solicitação juntamente com o nome de usuário e senha serão enviados para um servidor de autorização para troca por um token. Assim que o serviço receber um token de acesso, ele o usará para apresentar à rede de mídia social para acessar seu recurso privado em seu nome. O DataPower pode desempenhar duas funções importantes - como servidor de autorização e como servidor de recursos. Ele pode atuar como um servidor de autorização que aceita e verifica solicitações e gera tokens de acesso. Ele também pode atuar como um servidor de recursos que permite o acesso às solicitações com tokens válidos. O DataPower fornece um controle aprimorado de acesso aos recursos com o protocolo de autorização do OAuth.

Figura 1. Fluxo de tipo de concessão de credencial de senha do proprietário do recurso
Fluxo de tipo de concessão de credencial de senha do proprietário do recurso

Esse artigo irá orientá-lo para configurar o tipo de concessão de credencial de senha do proprietário do recurso no DataPower.

Os blocos de criação básicos consistem no seguinte:

  1. Criar um cliente do OAuth.
  2. Criar um grupo de clientes do OAuth.
  3. Criar uma política AAA.
  4. Configurar um servidor de autorização usando o Web Token Service .
  5. Configurar um servidor de recursos usando o Multi-Protocol Gateway.

O cliente do OAuth é um objeto que contém informações detalhadas específicas para cada cliente, como tipos de concessão e funções do OAuth. Um objeto do grupo de clientes do OAuth então ajuda a organizar diferentes clientes em grupos. Assim que o grupo e o cliente do OAuth são criados corretamente, é possível usar a política AAA para autenticação e autorização. Em seguida, o Web Token Service gera tokens com base nos resultados de aprovação da política AAA. Por último, é possível definir um Multi-Protocol Gateway como servidor de recursos, que verifica tokens e permite ou recusa acesso aos recursos.


Criar um cliente do OAuth

Primeiro, é necessário criar um objeto do cliente do OAuth:

  1. Digite oauth no campo de pesquisa e selecione OAuth Client Profile, conforme mostra a Figura 2.
  2. Para criar um novo cliente do OAuth, clique em Add.
    Figura 2. Criar um cliente do OAuth
    Criar um cliente do OAuth

    Por padrão, Authorization Code é selecionado como o tipo de concessão da autorização. No entanto, você pode querer selecionar Resource Owner Password Credential porque esse é o tipo de concessão que você deseja usar (veja a Figura 3):

    • Insira um nome de cliente.
    • Selecione o conjunto de dados Resource Owner Password Credential.
    • Insira o escopo.
    • Crie um novo objeto de segredo compartilhado para suportar a proteção simétrica clicando em "+" ou "..." para selecionar um objeto de segredo compartilhado existente, conforme mostrado na Figura 4. O material da chave para o segredo compartilhado deve ter 32 bytes de comprimento.
    Figura 3. Configurar um cliente do OAuth
    Configurar um cliente do OAuth
    Figura 4. Editar segredo compartilhado
    Editar segredo compartilhado

Criar um grupo de clientes do OAuth

  1. Digite oauth no campo de pesquisa e selecione OAuth Client Group, como mostra a Figura 5.
  2. Para criar um novo grupo de clientes do OAuth, clique em Add.
    Figura 5. Criar um grupo de clientes do OAuth
    Criar um grupo de clientes do OAuth
  3. Insira um nome de grupo de clientes conforme mostrado na Figura 6.
  4. Selecione e adicione o cliente do OAuth criado na etapa anterior.
  5. Clique em Apply.
    Figura 6. Configurar o grupo de clientes do OAuth
    Configurar o grupo de clientes do OAuth

Criar uma política AAA

  1. Digite aaa no campo de pesquisa e selecione AAA Policy, como mostrado na Figura 7.
  2. Para criar uma nova política AAA, clique em Add.
    Figura 7. Criar uma política AAA
    Criar uma política AAA
  3. Insira o nome da política AAA.

Crie uma política AAA com os seguintes valores, mostrados na próxima seção, para cada uma das etapas da política AAA.

Extrair identidade

  1. Selecione os seguintes dois métodos, HTTPAuthentication Header e OAuth como mostrado na Figura 8.
  2. Para clientes registrados, selecione o OAuth Client Group criado na etapa anterior.
    Figura 8. Definir a etapa de Extrair Identidade
    Definir a etapa de Extrair Identidade

Autenticação

  1. Selecione o conjunto de dados Use o arquivo de informações do DataPower AAA para autenticar a solicitação definida pelo arquivo de informações do AAA. Isso autentica a lista conhecida de IDs dos clientes. Outras implementações podem usar outros métodos para autenticação, como pesquisa LDAP ou integração com o Tivoli® Access Manager.
  2. Selecione o conjunto de dados store:///AAAInfo.xml como mostra a Figura 9.
    Figura 9. Definir a etapa de autenticação
    Definir a etapa de autenticação

Extrair recurso

  1. Selecione o conjunto de dados Processing Metadata para o processamento de escopo do token, conforme mostrado na Figura 10.
  2. Escolha oauth-scope-metadata.
    Figura 10. Definir a etapa de Extrair Recurso
    Definir a etapa de Extrair Recurso

Autorização

  1. Selecione o conjunto de dados AAA Info File para autorizar a solicitação definida pelo arquivo de informações AAA, conforme mostrado na Figura 11. Isso serve para verificar se o proprietário do recurso está autorizado para o recurso solicitado (escopo).
  2. Selecione o conjunto de dados store:///AAAInfo.xml.
    Figura 11. Autorizar solicitação
    Autorizar solicitação

Configure o servidor de autorização para usar o Web Token Service

  1. Para criar o Web Token Service, digiteweb token no campo de pesquisa e selecione New Web Token Service, conforme exibido na Figura 12.
    Figura 12. Criar o Web Token Service
    Criar o Web Token Service
  2. Insira um número de porta, conforme mostrado na Figura 13.
  3. Selecione um perfil proxy SSL.
  4. Clique em Add para adicionar um endereço de origem.
    Figura 13. Definir endereços de origem
    Definir endereços de origem
  5. Selecione a política AAA criada na seção Criar uma política AAA e clique em Next, como mostrado na Figura 14.
    Figura 14. Selecionar uma política AAA
    Selecionar uma política AAA
  6. Por último, você chegará à página Confirm. Clique em Commit para criar o novo Web Token Service, conforme mostrado na Figura 15.
    Figura 15. Confirmar mudanças
    Confirmar mudanças

    Depois que o Web Token Service for criado, é possível exibir a política de processamento do objeto (veja a figura 16). Ela criou duas regras, ambas na direção cliente > servidor:

    • Relaciona /favicon.ico para ignorar as solicitações de ícone enviadas pelos navegadores.
    • Relaciona *, tudo o que inclui a ação "Converter Parâmetros de Consulta para XML" para a conversão HTTP necessária e a ação de política AAA.
    Figura 16. Exibir política de processamento
    Exibir política de processamento

Configurar um servidor de recursos usando o Multi-Protocol Gateway

  1. No painel Control, selecione Multi Protocol Gateway , como mostra a Figura 17.
    Figura 17. Selecione um Multi-Protocol Gateway
    Selecione um Multi-Protocol Gateway
  2. Para criar um novo Multi-Protocol Gateway, clique em Add conforme exibido na Figura 18.
    Figura 18. Criar um Multi-Protocol Gateway
    Criar um Multi-Protocol Gateway
    • Insira o nome do Multi-Protocol Gateway, conforme mostrado na Figura 19.
    • Insira a URL de backend (endereço IP do servidor de recursos).
    • Selecione o conjunto de dados Não XML para Tipo de Resposta e Solicitação.
      Figura 19. Configurar um Multi-Protocol Gateway
      Configurar um Multi-Protocol Gateway
    • Selecione o conjunto de dados Front Side Protocol. Clique em "+" para criar um novo HTTPS (SSL) Front Side Handler (veja a Figura 20):
      • Insira o nome do HTTPS Front Side Handler.
      • Insira um número de cópia disponível.
      • Selecione o método GET para permitir que solicitações sejam tratadas pelo GET.
      • Selecione um proxy SSL.
        Figura 20. Definir um HTTPS Front Side Handler
        Definir um HTTPS Front Side Handler
    • Crie uma nova Multi-Protocol Gateway Policy que consiste nas seguintes ações (veja a Figura 21):
      • Adicionar uma ação de correspondência para correspondência *.
      • Adicionar uma ação avançada: Converter Parâmetros de Consulta para XML.
      • Adicionar o AAA. Criar uma nova política AAA seguindo a etapa "Criar política AAA". Na etapa Autenticar, altere para Pass Identity Token para autorizar a etapa; e na etapa Autorizar, altere para Allow Any Authenticated Client.
        Figura 21. Definir uma política de processamento
        Definir uma política de processamento

Finalmente, você concluiu a configuração do servidor de recursos e do servidor de autorização no dispositivo DataPower. Agora é possível usar cURL, que é uma ferramenta de linha de comando que solicita que o dispositivo DataPower acesse os tokens. A Listagem 1 mostra uma solicitação de amostra usando cURL para enviar ao servidor de autenticação os parâmetros solicitados e também uma resposta de amostra contendo o token de acesso.

Listagem 1. Solicitação e resposta do token de acesso de amostra
curl https://IP_address:7000/ -d  "grant_type=password&
 username=fred&password=smith&scope=/getInfo" -H 
 "Authorization: Basic Y2xpZW50LTY2NjY6NjY2Ng==" -k -i
HTTP/1.1 200 OK
X-Backside-Transport: FAIL FAIL
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{ "token_type":"bearer", "access_token":"AAELY2xpZW50LTY2Njahxo7eFIrNVzyNs+L\/X5
lVXPcpvhZvs2\/l30HA8\/OD9R8rMrzU8RqrDdFPdBe6Uv8URP5X+KrJnquM7DoMv\/bo", 
 "expires_in":6666, "scope":"/getInfo" }

Depois que o token de acesso for obtido, será possível usá-lo para solicitar permissão para acessar os recursos do servidor de recursos.

A Listagem 2 mostra uma solicitação de amostra usando cURL para enviar um token de acesso ao servidor de recursos. Isso serve para verificar e conceder acesso ao recurso.

Listagem 2. Solicitação e resposta do token de acesso de amostra
curl –k https://IP_address:5900/getInfo -H "Authorization: 
 Bearer AAELY2xpZW50LTY2Njahxo7eFIrNVzyNs%2BL/X5
lVXPcpvhZvs2/l30HA8/OD9R8rMrzU8RqrDdFPdBe6Uv8URP5X%2BKrJnquM7DoMv/bo"

Conclusão

Este artigo mostrou como configurar o DataPower para o tipo de concessão de credencial de senha do proprietário do recurso do OAuth 2.0. Ele demonstrou como criar um cliente do OAuth com o tipo de concessão ativado, o Web Token Service como um servidor de autorização e também o Multi-Protocol Gateway como um servidor de recursos. Finalmente, a solicitação e resposta da amostra do tipo de concessão de credencial de senha do proprietário do recurso ajudaram a orientar quando gerar e enviar solicitações para o dispositivo DataPower.

Para obter mais informações, veja o restante da série de artigos a seguir:

Os seguintes artigos na série estarão disponíveis nas próximas semanas:

  • Parte 7: Usando o WebSphere DataPower com o Tivoli Federated Identity Manager para suportar OAuth 2.0
  • Parte 8: Personalizando o suporte nativo do WebSphere DataPower para o escopo do OAuth, processamento de identidade e processamento adicional
  • Parte 9: Personalizando o suporte nativo do DataPower para tokens de acesso e códigos de autorização do OAuth
  • Parte 10: Resolução de problemas do suporte do protocolo do DataPower OAuth

Agradecimentos

O autor gostaria de agradecer John Rasmussen e Shiu Fun Poon por terem revisado este artigo.

Recursos

Aprender

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=831575
ArticleTitle=Usando OAuth no IBM WebSphere DataPower Appliances, parte 4: Usando o DataPower OAuth 2.0 com a senha do proprietário do recurso
publish-date=08242012