Tempo estimado até à conclusão: 18 horas
Proprietário do componente operável: OIC
Como configurar uma ligação OIDC
As ligações OIDC são geridas pela configuração do estado desejado (DSC). Embora possam ser criadas manualmente, as campanhas de DSC são o método preferencial.
Inicie sessão na VM CONFIG1 como utilizador
Marvin.Abra c:\config\config.ps1 com o VSCode ou o editor da sua escolha.
Pesquise
-ADFS1para encontrar o nó de configuração do servidor ADFS.# Example ADFS server noe in config.ps1 NodeName = "$Site1Code-ADFS1" HyperVHost = 'AA-OC-BM01' Role = 'adfs' IPv4Addr = '172.21.0.23'Uma matriz denominada
AdfsAppGrpcontém tabelas hash de associações OIDC. Copie toda a tabela hash deExample-OIDCe cole-a após a tabela hashExample-OIDCexistente. Exemplo:@{ Name = 'Example-OIDC' AdfsSrvApp = @{ … } @{ Name = 'Example-OIDC' AdfsSrvApp = @{ … }Atualize os parâmetros
NameeRedirectURIpara os valores associados à sua nova ligação OIDC. Guarde o ficheiro config.ps1.Abra uma janela do PowerShell como administrador e atualize a configuração do servidor ADFS1. Substitua [Site] pelo código do seu site.
$Cred = Get-Credential -Message "Enter Admin Credentials for ADFS1" c:\dsc\Update-RemoteHost.ps1 -ComputerName [Site]-ADFS1 -Credential $Cred -NoThirdPartyValide a configuração do OIDC iniciando sessão na VM ADFS1, abrindo o MMC AD FS Management e, de seguida, clicando em Application Groups.
Enquanto tem sessão iniciada na VM ADFS1, abra
C:\confige procure um ficheiro com o nome<Your Connector Name> Srv App.txt. Guarde os valoresIdentifiereClientSecretencontrados neste ficheiro para utilização posterior com a sua aplicação. Elimine este ficheiro assim que os valores do identificador e do segredo forem registados.
Configuração do OIDC para a infraestrutura da GDC
Recolha informações do conetor OIDC para a implementação do GDC.
- URIs de redirecionamento:
https://ais-core.<GDC_name>.<DNS_domain>/finish-login, por exemplo,https://ais-core.example.domain.local/finish-login. - URL da GDC Service Console:
https://infra-console.<GDC_name>.<DNS_domain>, por exemplo,https://infra-console.example.domain.local.
- URIs de redirecionamento:
Siga os passos anteriores para criar a ligação OIDC.
Depois de configurar o Anthos Identity Service (AIS) na célula do GDC, teste a configuração do OIDC com o URL da consola do GDC.
- Inicie sessão numa estação de trabalho da OIC.
- Abra o Chrome e navegue para o URL da infraestrutura de consola, por exemplo:
https://infra-console.example.domain.local. - Quando lhe for pedido, introduza o nome de utilizador e a palavra-passe. Se as credenciais forem válidas, é feito o redirecionamento para a GUI da infraestrutura da consola.
Repita este passo conforme necessário para cada célula do GDC gerida por este servidor ADFS.
Configuração de DNS do GDC para o ADFS
Inicie sessão no controlador do sistema ou no programa de arranque.
Exporte o
kubeconfigpara o cluster de administrador raiz:export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfigConfigure o OCIT_DOMAIN através de uma zona de encaminhamento. Substitua OCIT_DOMAIN pelo nome do domínio do OCIT e os pontos finais pelos endereços IP do DNS do OC:
kubectl apply -f - <<EOF apiVersion: network.private.gdc.goog/v1alpha1 kind: DNSZone metadata: namespace: dns-system name: ocit-domain spec: domainName: OCIT_DOMAIN forwardingConfig: # Set to OC DNS IPs (the AD domain controllers) endpoints: - 192.0.2.0 - 192.0.2.1 replicateToTenantOrg: true EOFO resultado tem o seguinte aspeto:
dnszone.network.private.gdc.goog/ocit-domain createdSe as alterações não forem aplicadas, reinicie a implementação:
kubectl rollout restart deployment -n dns-system gpc-coredns-forwarderEsta alteração de DNS propaga-se a todos os clusters no GDC.
Com o kubeconfig do administrador raiz, valide se a resolução do domínio OCIT está a funcionar conforme esperado:
NAMESERVER=$(kubectl -n dns-system get service gpc-coredns-forwarder-udp | \ awk '/[0-9]\./ {print $4}') dig +short @${NAMESERVER} fs.OCIT_DOMAINExportar
kubeconfigpara o cluster de administrador da organização:export KUBECONFIG=/root/release/org-admin/org-admin-kubeconfigAplique o kubeconfig do administrador da organização e valide se a resolução do domínio OCIT está a funcionar conforme previsto:
NAMESERVER=$(kubectl -n dns-system get service gpc-coredns-infra-forwarder | \ awk '/[0-9]\./ {print $4}') dig +short @${NAMESERVER} fs.OCIT_DOMAIN
Configuração do GDC AIS para a consola
Inicie sessão no ADFS1 e, em seguida, abra o MMC de gestão do AD FS
Clique em Serviço > Certificados
Clique duas vezes no certificado para comunicações de serviço
Clique no separador Caminho de certificação
Selecione o certificado mais acima etiquetado como Raiz
Clique em Ver certificado
Selecione o separador Detalhes e, de seguida, clique em Copiar para ficheiro…
- Guardar no formato Base-64 (.CER)
Copie a AC raiz do ADFS para o controlador do sistema ou o Bootstrapper como
adfs.cer.Inicie sessão no controlador do sistema ou no programa de arranque e, em seguida, exporte a AC raiz do ADFS para uma variável de shell com codificação base64. O comando seguinte codifica o certificado, incluindo os cabeçalhos, em base64 como uma única linha (sem carateres de nova linha):
export BASE64_CERT=$(base64 adfs.cer | tr -d "\n\r")Exporte o cluster de administrador raiz
kubeconfig:export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfigNavegue para o repositório
iace adicione a estrutura de diretórios para a organização global:cd iac; mkdir -p infrastructure/global/orgs/root/Adicione o ficheiro
ioauthmethod.yamlpara a organização:cat > infrastructure/global/orgs/root/ioauthmethod.yaml << EOF apiVersion: iam.global.private.gdc.goog/v1alpha1 kind: IOAuthMethod metadata: name: adfs-oidc namespace: gpc-system spec: oidc: certificateAuthorityData: ADFS_CERT_BASE64 clientID: ADFS_CLIENT_ID clientSecret: ADFS_CLIENT_SECRET groupPrefix: gdch-infra-operator- groupsClaim: groups issuerURI: https://fs.OCIT_DOMAIN/adfs scopes: openid email offline_access userClaim: email userPrefix: gdch-infra-operator- cloudConsoleRedirectURI: http://cloud.console.not.enabled kubectlRedirectURI: http://localhost:9879/callback EOFSubstitua as seguintes variáveis:
Variável Definição ADFS_CERT_BASE64O valor de
$BASE64_CERTque criou num passo anterior.Este certificado codificado em PEM codificado em base64 que o ADFS usa para autossinar é necessário para o serviço de identidade do GKE estabelecer uma ligação segura com uma instância do ADFS interna.
ADFS_CLIENT_IDO ID do OpenID Connect para o cliente da organização no ADFS. ADFS_CLIENT_SECRETO segredo do OpenID Connect para o cliente da organização registado no ADFS. OCIT_DOMAINO nome de domínio do OCIT. Para mais informações, consulte o artigo Configuração de DNS do GDC para o ADFS. Adicione o ficheiro
kustomization.yamlà pasta globaliac:cat > infrastructure/global/orgs/root/kustomization.yaml << EOF apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: ioauthmethod-kustomization resources: - ioauthmethod.yaml EOFPrepare e confirme o ficheiro YAML da organização e os ficheiros do Kustomize:
git add "infrastructure/global" git add "infrastructure/zonal" git commitEnvie a atualização para o GitLab:
git -c http.sslVerify=false pushAguarde a revisão do código e a união.
Verifique se o IdP recém-adicionado existe em
ClientConfig:kubectl get ClientConfig default -n kube-public -o yaml
Configure a autenticação multifator do ADFS
Requisitos
- As YubiKeys foram aprovisionadas aos utilizadores de acordo com a secção 5.16 Aplicações de políticas e reforço da segurança.
- Todos os passos anteriores para o AD FS foram confirmados como estando a funcionar conforme esperado, o que significa que os utilizadores conseguem aceder aos pontos finais do GDC através da autenticação de nome de utilizador e palavra-passe com o AD FS.
Instruções
Siga os passos seguintes para configurar a autenticação multifator do ADFS.
Ative a autenticação de certificados do ADFS globalmente
Execute os seguintes passos no anfitrião do ADFS1.
- Aceda ao RDP do anfitrião ADFS1 com a sua conta -sa, por exemplo, nome de utilizador-sa.
- Execute uma janela do PowerShell como
Administrator. Verifique se CertificateAuthentication já está ativado no seu ambiente:
# Checking current Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Example output, note it is missing CertificateAuthentication PrimaryIntranetAuthenticationProvider : {FormsAuthentication, WindowsAuthentication, MicrosoftPassportAuthentication}Defina o PrimaryIntranetAuthenticationProvider para incluir CertificateAuthentication. Além disso, remova um método de autenticação não utilizado na TI do OC, MicrosoftPassportAuthentication.
# Setting the Global Authentication Policy for # PrimaryIntranetAuthenticationProvider to include CertificateAuthentication Set-AdfsGlobalAuthenticationPolicy -PrimaryIntranetAuthenticationProvider ` @('FormsAuthentication', 'WindowsAuthentication', 'CertificateAuthentication') # Validating the update to Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Desired output PrimaryIntranetAuthenticationProvider : {CertificateAuthentication, FormsAuthentication, WindowsAuthentication}
Teste a autenticação de certificados do ADFS
Conclua os passos seguintes numa estação de trabalho de TI do OC.
- Inicie sessão numa estação de trabalho de TI do OC com a sua conta sem privilégios.
- Abra o navegador Chrome e aceda a infra-console.CELL_NAME.DOMAIN como faria normalmente, por exemplo, https://infra-console.example.domain.local.
Clique na opção Iniciar sessão com um certificado apresentada abaixo do botão Iniciar sessão.
Selecione o certificado de utilizador não privilegiado na janela de diálogo e clique em OK.
Quando lhe for pedido, introduza o PIN do YubiKey e clique em OK.
Se a autenticação do ADFS estiver a funcionar corretamente, deve ver a GUI da consola de infraestrutura como se tivesse introduzido o seu nome de utilizador e palavra-passe.
Termine sessão na infraestrutura de consola através do botão Terminar sessão e, em seguida, feche todas as janelas do Chrome. Esta ação remove as credenciais em cache e permite-lhe testar cada ponto final do GDC.
Repita os passos nesta secção para cada ponto final do GDC, lembrando-se de terminar sessão e fechar o Chrome sempre para garantir que lhe são apresentadas as instruções de autenticação do AD FS:
- Console.gdchservices (gdchservices org)
- GitLab
- ServiceNow
- Outras organizações
Aplique rigorosamente a autenticação MFA do ADFS a nível global
Execute os seguintes passos no anfitrião do ADFS1.
- Use o RDP para aceder ao anfitrião do ADFS1 como a sua conta -sa, por exemplo, alexb-sa.
- Execute uma janela do PowerShell como administrador.
Defina o PrimaryIntranetAuthenticationProvider para incluir APENAS CertificateAuthentication.
# Setting the Global Authentication Policy for # PrimaryIntranetAuthenticationProvider to include CertificateAuthentication Set-AdfsGlobalAuthenticationPolicy -PrimaryIntranetAuthenticationProvider ` @('CertificateAuthentication') # Validating the update to Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Desired output PrimaryIntranetAuthenticationProvider : {CertificateAuthentication}
Teste novamente cada ponto final do GDC
Execute os passos seguintes a partir de uma estação de trabalho de TI do OC.
- Inicie sessão numa estação de trabalho de TI do OC com a sua conta sem privilégios.
- Abra o navegador Chrome e aceda a infra-console.CELL_NAME.DOMAIN como faria normalmente, por exemplo, https://infra-console.example.domain.local.
O portal do AD FS pede imediatamente um certificado ou uma YubiKey. Já não deve ver campos para um nome de utilizador ou uma palavra-passe.
Depois de selecionar o certificado, introduza o PIN da YubiKey, idêntico ao dos testes anteriores.
A configuração está concluída.