Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você usa a CLI do Azure para configurar a autenticação do Microsoft Entra para um cluster do Red Hat OpenShift no Azure. Você cria variáveis usadas em comandos que criam uma OAuth URL de retorno de chamada, um registro de aplicativo e um segredo do cliente e atualizam as permissões do aplicativo.
Pré-requisitos
- Um cluster existente do Red Hat OpenShift no Azure. Se você não tiver um cluster, consulte criar um novo cluster.
- CLI do Azure 2.30.0 ou posterior instalada em seu computador. Use
az --versionpara localizar a versão instalada da CLI do Azure. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. Você também pode usar o Azure Cloud Shell com o Bash para executar comandos. - CLI do OpenShift instalada em seu computador ou no Bash Cloud Shell. Para obter mais informações, consulte Instalar a CLI do OpenShift.
Criar variáveis
Recupere suas URLs específicas do cluster que são usadas para configurar o aplicativo Microsoft Entra.
Defina as variáveis para o nome do cluster e do grupo de recursos. Substitua <resourceGroupName> pelo nome do grupo de recursos e <aroClusterName> pelo nome do cluster.
resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>
Crie as variáveis a seguir que são usadas em outros comandos para concluir as etapas neste artigo.
domain=$(az aro show --resource-group $resourceGroup --name $aroCluster --query clusterProfile.domain --output tsv)
location=$(az aro show --resource-group $resourceGroup --name $aroCluster --query location --output tsv)
apiServer=$(az aro show --resource-group $resourceGroup --name $aroCluster --query apiserverProfile.url --output tsv)
webConsole=$(az aro show --resource-group $resourceGroup --name $aroCluster --query consoleProfile.url --output tsv)
Crie a URL de retorno de chamada do OAuth cluster e armazene-a na variável oauthCallbackURL. No entraID final da URL de retorno de OAuth chamada deve corresponder ao nome do OAuth provedor de identidade que você criar mais tarde no arquivo oidc.yaml .
O formato do oauthCallbackURL é dependente se você estiver usando um domínio personalizado.
Se você tiver um domínio personalizado,
contoso.comexecute o comando a seguir.oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/entraIDSe você não estiver usando um domínio personalizado, será
$domainuma cadeia de caracteres alfanumérica de oito caracteres que precede o$location.aroapp.io.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID
Criar um aplicativo do Microsoft Entra para autenticação
Crie um aplicativo do Microsoft Entra e defina um segredo do cliente para o aplicativo.
appId=$(az ad app create \
--display-name aro-auth \
--web-redirect-uris $oauthCallbackURL \
--query appId --output tsv)
clientSecret=$(az ad app credential reset --id $appId --query password --output tsv)
Os valores são armazenados em variáveis e clientSecret exibem uma mensagem de console informando que a saída do comando contém credenciais. O valor é usado posteriormente neste artigo e, quando terminar, você pode limpar a variável usando o clientSecret="" comando.
Para obter mais informações sobre os comandos para criar o aplicativo e as credenciais, consulte az ad app create and az ad app credential reset.
Recupere a ID de locatário da assinatura que é proprietária do aplicativo.
tenantId=$(az account show --query tenantId --output tsv)
Criar um arquivo de manifesto para definir as declarações opcionais a serem incluídas no token de ID
Os desenvolvedores de aplicativos podem usar declarações opcionais nos aplicativos do Microsoft Entra para especificar quais declarações eles querem nos tokens enviados ao aplicativo.
Você pode usar declarações opcionais para:
- Selecione outras declarações a serem incluídas em tokens para seu aplicativo.
- Altere o comportamento de determinadas declarações que o Microsoft Entra ID retorna em tokens.
- Adicione e acesse as declarações personalizadas para o aplicativo.
Você configura o OpenShift para usar a email declaração e fazer fallback para upn definir o Nome de Usuário Preferencial adicionando o upn token de ID retornado pela ID do Microsoft Entra.
Crie um arquivo manifest.json para configurar o aplicativo do Microsoft Entra.
cat > manifest-test-file.json<< EOF
{
"idToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
}
]
}
EOF
Atualizar os optionalClaims do aplicativo do Microsoft Entra com um manifesto
Para usar o arquivo de manifesto e atualizar o do optionalClaimsaplicativo, execute o comando a seguir.
az ad app update \
--id $appId \
--optional-claims @manifest.json
Atualizar as permissões de escopo do aplicativo do Microsoft Entra
Para poder ler as informações do usuário do Microsoft Entra ID, precisamos definir os escopos adequados.
Adicione permissão para o escopo do Microsoft Graph User.Read para habilitar a entrada e a leitura do perfil do usuário. Para obter mais informações, consulte User.Read.
az ad app permission add \
--api 00000003-0000-0000-c000-000000000000 \
--api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope \
--id $appId
Você pode ignorar a mensagem para conceder o consentimento, a menos que seja autenticado como administrador global para esta ID do Microsoft Entra. Os usuários de domínio padrão são solicitados a conceder consentimento quando entrarem pela primeira vez no cluster com suas credenciais do Microsoft Entra.
Atribuir usuários e grupos ao cluster (opcional)
Os aplicativos registrados em um locatário do Microsoft Entra estão, por padrão, disponíveis para todos os usuários do locatário que se autenticar com sucesso. O Microsoft Entra ID permite que os desenvolvedores e administradores de locatários restrinjam um aplicativo a um conjunto específico de usuários ou grupos de segurança no locatário.
Siga as instruções na documentação do Microsoft Entra para restringir um aplicativo do Microsoft Entra a um conjunto de usuários.
Configurar a autenticação OpenID do OpenShift
Recupere as credenciais do kubeadmin. Execute o comando a seguir para localizar a senha para o usuário kubeadmin.
kubeadminPassword=$(az aro list-credentials \
--name $aroCluster \
--resource-group $resourceGroup \
--query kubeadminPassword --output tsv)
Entre no servidor de API do cluster do OpenShift usando o seguinte comando.
oc login $apiServer --username kubeadmin --password $kubeadminPassword
Crie um segredo do OpenShift para armazenar o segredo do aplicativo do Microsoft Entra.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$clientSecret
Crie um arquivo oidc.yaml para configurar a autenticação OpenID do OpenShift na ID do Microsoft Entra.
cat > oidc.yaml<< EOF
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: entraID
mappingMethod: claim
type: OpenID
openID:
clientID: $appId
clientSecret:
name: openid-client-secret-azuread
extraScopes:
- email
- profile
extraAuthorizeParameters:
include_granted_scopes: "true"
claims:
preferredUsername:
- email
- upn
name:
- name
email:
- email
issuer: https://login.microsoftonline.com/$tenantId
EOF
Aplique a configuração ao cluster.
oc apply -f oidc.yaml
Você obtém uma resposta como o exemplo a seguir.
oauth.config.openshift.io/cluster configured
Verificar a entrada usando a ID do Microsoft Entra
Saia do Console Web do OpenShift e entre novamente e você verá uma nova opção para entrar com o entraID. Talvez seja necessário aguardar alguns minutos para que a opção fique disponível.