Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 Azure Red Hat OpenShift. Você cria variáveis que são usadas em comandos que geram uma URL de retorno de chamada OAuth
, registram uma aplicação com um segredo de cliente, e atualizam as permissões da aplicação.
Pré-requisitos
- Um cluster existente do Azure Red Hat OpenShift. Se você não tiver um cluster, consulte Criar um novo cluster.
- Azure CLI 2.30.0 ou posterior instalado no seu computador. Use
az --version
para localizar a versão instalada da CLI do Azure. Se precisar de instalar ou atualizar, consulte Install Azure CLI. Você também pode usar o Azure Cloud Shell com Bash para executar comandos. - OpenShift CLI instalado no seu computador ou no seu Bash Cloud Shell. Para obter mais informações, consulte Instalar a CLI do OpenShift.
Criar variáveis
Recupere as URLs específicas do cluster usadas para configurar o aplicativo Microsoft Entra.
Defina as variáveis para grupo de recursos e nome do cluster. Substitua <resourceGroupName>
pelo nome do grupo de recursos e <aroClusterName>
pelo nome do cluster.
resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>
Crie as seguintes variáveis 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
. O entraID
no final da OAuth
URL de retorno de chamada deve corresponder ao nome do OAuth
provedor de identidade que você criar posteriormente no arquivo oidc.yaml .
O formato do oauthCallbackURL
depende se você estiver usando um domínio personalizado.
Se você tiver um domínio personalizado como
contoso.com
, execute o seguinte comando.oauthCallbackURL=https://oauth-openshift.apps.$___domain/oauth2callback/entraID
Se você não estiver usando um domínio personalizado, o
$___domain
é uma cadeia 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 Microsoft Entra para autenticação
Crie um aplicativo 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
exibe uma mensagem de console informando que a saída do comando contém credenciais. O valor é usado posteriormente neste artigo e, quando terminar, poderá 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 e az ad app credential reset.
Recupere a ID do locatário da assinatura proprietária do aplicativo.
tenantId=$(az account show --query tenantId --output tsv)
Crie 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 em seus aplicativos Microsoft Entra para especificar quais declarações desejam em tokens enviados para seu aplicativo.
Pode utilizar as afirmações opcionais para:
- Selecione outras declarações para incluir em tokens para seu aplicativo.
- Altere o comportamento de determinadas declarações que o Microsoft Entra ID retorna em tokens.
- Adicionar e aceder a declarações personalizadas para a sua aplicação.
Você configura o OpenShift para usar a email
afirmação e reverter para upn
para definir o Nome de Utilizador Preferido, adicionando o upn
como parte do token de ID retornado pelo Microsoft Entra ID.
Crie um arquivo manifest.json para configurar o aplicativo Microsoft Entra.
cat > manifest-test-file.json<< EOF
{
"idToken": [
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
}
]
}
EOF
Atualize as declarações opcionais do aplicativo Microsoft Entra com um manifesto
Para usar o ficheiro de manifesto e atualizar a aplicação optionalClaims
, execute o seguinte comando.
az ad app update \
--id $appId \
--optional-claims @manifest.json
Atualizar as permissões de escopo do aplicativo 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 o login e o perfil de usuário de leitura. 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 esteja 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 entram no cluster pela primeira vez 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 autenticarem com êxito. O Microsoft Entra ID permite que administradores e desenvolvedores 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 Microsoft Entra a um conjunto de usuários.
Configurar autenticação OpenShift OpenID
Recupere as kubeadmin
credenciais. Execute o seguinte comando para localizar a senha do kubeadmin
usuário.
kubeadminPassword=$(az aro list-credentials \
--name $aroCluster \
--resource-group $resourceGroup \
--query kubeadminPassword --output tsv)
Entre no servidor de API do cluster OpenShift usando o seguinte comando.
oc login $apiServer --username kubeadmin --password $kubeadminPassword
Crie um segredo do OpenShift para armazenar o segredo do aplicativo 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 OpenShift OpenID contra o Microsoft Entra ID.
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ê recebe uma resposta como o exemplo a seguir.
oauth.config.openshift.io/cluster configured
Verificar o início de sessão utilizando o Microsoft Entra ID
Saia do OpenShift Web Console e entre novamente, e você verá uma nova opção para entrar com entraID. Pode ser necessário aguardar alguns minutos para que a opção fique disponível.