O OpenID Connect (OIDC) é um protocolo de autenticação e autorização de identidade baseado no OAuth 2.0, usado principalmente para implementar o single sign-on (SSO). Ao configurar o SSO OIDC em uma política de segurança do ASM, você utiliza o Alibaba Cloud IDaaS ou outros provedores de identidade (IdPs) compatíveis com OIDC para permitir que os usuários façam login uma única vez e acessem várias aplicações. Essa abordagem funciona sem modificar as próprias aplicações, o que aumenta a segurança e simplifica o desenvolvimento e a gestão.
Pré-requisitos
Uma aplicação implantada no cluster adicionado à instância do ASM.
-
Uma regra de gateway e um serviço virtual criados para garantir que os seguintes caminhos estejam acessíveis. Para mais informações, consulte as etapas 1 a 3 em Usar recursos do Istio para rotear tráfego entre versões.
http://${GATEWAY_ADDRESS}/productpage http://${GATEWAY_ADDRESS}/api/v1/products/1 http://${GATEWAY_ADDRESS}/static/jquery.min.js -
Um provedor de identidade (IdP) configurado. Para obter instruções, consulte a Etapa 1 e a Etapa 2 em Integrar o ASM ao Alibaba Cloud IDaaS para habilitar SSO nas aplicações da malha de serviços.
Após configurar o IdP, você obterá as seguintes informações, necessárias para a configuração na Etapa5.
redirect uri: http://${GATEWAY_ADDRESS}/oauth2/callback issuer: https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id: app_ml5tzapsl7zmfo53wb3nwk**** client secret: CSCfHeZ1nyvfMWyKHtE8ZRdif7j89dv9CvmJLurtGC****
Procedimento
Este tópico utiliza um IdP do Alibaba Cloud IDaaS como exemplo. Caso utilize um serviço OIDC autogerenciado, consulte Integrar o ASM ao Keycloak para habilitar SSO nas aplicações da malha de serviços.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página ASMSecurityPolicy, clique em Create.
Na caixa de diálogo Create ASMSecurityPolicy, clique em OIDC Single Sign-On e, em seguida, clique em OK.
-
No assistente OIDC Config, configure os parâmetros e clique em Next.
A tabela a seguir descreve os parâmetros deste exemplo.
Parâmetro
Descrição
ASMSecurityPolicyName
Defina o nome como test-oidc.
Redirect address
Selecione Use ingressgateway IP address ou Customized Domain. Neste exemplo, selecione Use ingressgateway IP address e, em seguida, selecione http e ingressgateway.
Callback Address
A URI de redirecionamento.
OIDC Issuer URL
A URL que identifica e valida o provedor OIDC.
Client ID
O ID do cliente fornecido pelo IdP.
Client Secret
O segredo do cliente fornecido pelo IdP.
Cookie Secret
Uma semente para cookies seguros. Há suporte para codificação Base64.
Cookie Expire
A duração da validade do cookie. O valor 0 indica que o cookie nunca expira.
Cookie refresh interval
O intervalo de atualização do cookie. O valor 0 desativa a atualização.
Scopes
Especifique os escopos a serem recuperados. Os escopos definidos devem ter suporte do emissor.
Para mais informações sobre escopos, consulte Integrar o ASM ao Alibaba Cloud IDaaS para habilitar SSO nas aplicações da malha de serviços.
Neste exemplo, defina Cookie expiration como
3600s, defina Cookie refresh interval como600s e selecione openid e phone em Scopes. -
No assistente Workload and Match Rules, clique em Add Workload Group. Na caixa de diálogo New Workload Group, configure os parâmetros, clique em OK e, em seguida, clique em Submit.
A tabela a seguir descreve os parâmetros deste exemplo.
Parâmetro
Descrição
Workload Group Name
Defina o nome como test-policy.
Workload List
Por padrão, o gateway configurado para o Redirect address na etapa anterior fica selecionado e não pode ser modificado. Para selecionar uma carga de trabalho diferente, retorne ao assistente OIDC Config e modifique as informações de Redirect address.
NotaSe você selecionou Customized Domain para Redirect address no assistente OIDC Config, execute as seguintes etapas:
-
Na caixa de diálogo New Workload Group, clique em Add Workload e selecione Gateway Scope.
-
Na seção Select workloads, selecione a carga de trabalho desejada, clique em ícone
para movê-la para a área selected e, em seguida, clique em OK.
Match Rule List
O Match Mode possui duas opções:
-
Auth If Matched: Exige autenticação para solicitações que correspondem às regras especificadas.
-
Bypass Auth If Matched: Permite acesso sem autenticação para solicitações que correspondem às regras.
Neste exemplo, defina o Match Mode como Auth If Matched e o Match Mode como Custom Matching Rules. Em seguida, clique em Add Match Rule para adicionar regras que exigem autenticação OIDC para caminhos iniciados com /static e /api.
-
Regra 1: Ative Path e defina o valor como /static/*.
-
Regra 2: Ative Path e defina o valor como /api/*.
Após a criação da política, a etapa Complete exibe a mensagem ASM security policy was created successfully. Clique em View YAML para visualizar os recursos criados ou clique em Complete para retornar à página ASMSecurityPolicy e visualize a nova política de segurança.
-
-
Verifique a configuração do SSO OIDC.
-
Em um navegador web, acesse as seguintes URLs em ordem.
http://${GATEWAY_ADDRESS}/productpage http://${GATEWAY_ADDRESS}/api/v1/products/1 http://${GATEWAY_ADDRESS}/static/jquery.min.jsOs resultados a seguir confirmam que a configuração do SSO OIDC está funcionando:
Solicitações para caminhos iniciados com
/productpagepodem ser acessadas sem autenticação. Ao acessar a productpage da aplicação de exemplo BookInfo, um resumo do livro The Comedy of Errors é exibido.Solicitações para caminhos iniciados com
/apie/staticexigem autenticação. Ao acessar esses caminhos, você é redirecionado para a página de login do Alibaba Cloud IDaaS. Insira suas credenciais nas caixas de texto Account, phone, or email e Password e clique em Log On para autenticar.
-
Modifique a configuração do SSO OIDC.
Na página ASMSecurityPolicy, localize a política de segurança OIDC desejada e clique em edit na coluna Operator.
No assistente OIDC Config, clique em Next.
-
No assistente Workload and Match Rules, localize o grupo de carga de trabalho desejado e clique em edit na coluna Operator. Modifique as configurações, clique em OK e, em seguida, clique em Submit.
A tabela a seguir descreve os parâmetros deste exemplo.
Parâmetro
Descrição
Match Mode
Selecione Bypass Auth If Matched.
Matching Rules
Clique em Add Match Rule para configurar as seguintes regras. Esta configuração permite que solicitações para caminhos iniciados com /productpage e /static ignorem a autenticação OIDC.
-
Regra 1: Ative Path e defina o valor como /productpage.
-
Regra 2: Ative Path e defina o valor como /static/*.
-
-
Para verificar as alterações, abra uma nova janela anônima no navegador e acesse as seguintes URLs.
http://${GATEWAY_ADDRESS}/productpage http://${GATEWAY_ADDRESS}/api/v1/products/1 http://${GATEWAY_ADDRESS}/static/jquery.min.jsOs resultados a seguir confirmam que a configuração modificada está funcionando.
Solicitações para caminhos iniciados com
/productpagee/staticpodem ser acessadas sem autenticação.Solicitações para caminhos iniciados com
/apiexigem autenticação.
-
Documentos relacionados
Para mais informações sobre configurações de aplicações OIDC, como acesso à API, rotação de chaves, suporte do IDaaS a diferentes modos OIDC e configurações nos lados do IDaaS e da aplicação, consulte Configurações básicas, Instruções gerais para single sign-on, Configurações de SSO OIDC e Especificações de valor de extensão do id_token OIDC.
Após fazer login em uma aplicação com o SSO do IDaaS, você pode iniciar um logout global a partir da aplicação para encerrar a sessão principal do IDaaS. Esse processo é chamado de Single Log-Out (SLO). Para mais informações, consulte Single Log-Out (SLO).