Compartir a través de


Configuración de la autenticación de Microsoft Entra para un clúster de Red Hat OpenShift en Azure

En este artículo, usará la CLI de Azure para configurar la autenticación de Microsoft Entra para un clúster de Red Hat OpenShift de Azure. Las variables que se usan en comandos que crean una OAuth dirección URL de devolución de llamada, un registro de aplicación y un secreto de cliente, y actualizan los permisos de la aplicación.

Prerrequisitos

  • Un clúster de Red Hat OpenShift de Azure existente. Si no tiene un clúster, consulte Creación de un nuevo clúster.
  • CLI de Azure 2.30.0 o posterior instalada en el equipo. Use az --version para buscar la versión instalada de la CLI de Azure. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure. También puede usar Azure Cloud Shell con Bash para ejecutar comandos.
  • La CLI de OpenShift instalada en el equipo o en Bash Cloud Shell. Para obtener más información, consulte Instalación de la CLI de OpenShift.

Creación de variables

Recupere las direcciones URL específicas del clúster que se usan para configurar la aplicación Microsoft Entra.

Establezca las variables para el grupo de recursos y el nombre del clúster. Reemplace por <resourceGroupName> el nombre del grupo de recursos y <aroClusterName> por el nombre del clúster.

resourceGroup=<resourceGroupName>
aroCluster=<aroClusterName>

Cree las siguientes variables que se usan en otros comandos para completar los pasos descritos en este artículo.

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)

Cree la dirección URL de devolución de llamada del OAuth clúster y almacénela en la variable oauthCallbackURL. Al entraID final de la OAuth dirección URL de devolución de llamada debe coincidir con el nombre del OAuth proveedor de identidades que cree más adelante en el archivo oidc.yaml .

El formato de oauthCallbackURL depende de si usa un dominio personalizado.

  • Si tiene un dominio personalizado como contoso.com, ejecute el siguiente comando.

    oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/entraID
    
  • Si no usa un dominio personalizado, $domain es una cadena alfanumérica de ocho caracteres que precede a $location.aroapp.io.

    oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/entraID
    

Creación de una aplicación de Microsoft Entra para la autenticación

Cree una aplicación de Microsoft Entra y establezca un secreto de cliente para la aplicación.

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)

Los valores se almacenan en variables y clientSecret muestran un mensaje de consola que la salida del comando contiene credenciales. El valor se usa más adelante en este artículo y cuando haya terminado, puede borrar la variable mediante el clientSecret="" comando .

Para obtener más información sobre los comandos para crear la aplicación y las credenciales, consulte az ad app create y az ad app credential reset.

Recupere el identificador de inquilino de la suscripción que posee la aplicación.

tenantId=$(az account show --query tenantId --output tsv)

Creación de un archivo de manifiesto para definir las notificaciones opcionales que se van a incluir en el token de identificador

Los desarrolladores de aplicaciones pueden usar notificaciones opcionales en sus aplicaciones de Microsoft Entra para especificar qué notificaciones quieren incluir en los tokens que se envían a las aplicaciones.

Estas notificaciones opcionales sirven para:

  • Seleccione otras notificaciones que se van a incluir en tokens para la aplicación.
  • Cambie el comportamiento de determinadas notificaciones que devuelve Microsoft Entra ID en tokens.
  • Agregar y acceder a reclamaciones personalizadas para tu aplicación.

Configure OpenShift para usar la email notificación y revertir a upn para establecer el nombre de usuario preferido agregando como upn parte del token de identificador devuelto por Microsoft Entra ID.

Cree un archivo manifest.json para configurar la aplicación de Microsoft Entra.

cat > manifest-test-file.json<< EOF
{
  "idToken": [
    {
      "name": "email",
      "source": null,
      "essential": false,
      "additionalProperties": []
    },
    {
      "name": "upn",
      "source": null,
      "essential": false,
      "additionalProperties": []
    }
  ]
}
EOF

Actualización de optionalClaims de la aplicación de Microsoft Entra con un manifiesto

Para usar el archivo de manifiesto y actualizar la aplicación optionalClaims, ejecute el siguiente comando.

az ad app update \
  --id $appId \
  --optional-claims @manifest.json

Actualización de los permisos de ámbito de aplicación de Microsoft Entra

Para poder leer la información de usuario de Microsoft Entra ID, es necesario definir los ámbitos adecuados.

Agregue permiso para el ámbito de Microsoft Graph User.Read para habilitar el inicio de sesión y leer el perfil de usuario. Para obtener más información, vea User.Read.

az ad app permission add \
  --api 00000003-0000-0000-c000-000000000000 \
  --api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope \
  --id $appId

Puede omitir el mensaje para conceder el consentimiento a menos que se autentique como administrador global para este identificador de Microsoft Entra. Se pide a los usuarios del dominio estándar que concedan consentimiento cuando inicien sesión por primera vez en el clúster con sus credenciales de Microsoft Entra.

Asignación de usuarios y grupos al clúster (opcional)

Las aplicaciones registradas en un inquilino de Microsoft Entra están disponibles de forma predeterminada para todos los usuarios del inquilino que se autentican correctamente. Microsoft Entra ID permite a los administradores y desarrolladores de inquilinos restringir una aplicación a un conjunto específico de usuarios o a los grupos de seguridad del inquilino.

Siga las instrucciones de la documentación de Microsoft Entra para restringir una aplicación de Microsoft Entra a un conjunto de usuarios.

Configuración de la autenticación OpenID en OpenShift

Recupere las credenciales de kubeadmin. Ejecute el siguiente comando para buscar la contraseña del usuario kubeadmin.

kubeadminPassword=$(az aro list-credentials \
  --name $aroCluster \
  --resource-group $resourceGroup \
  --query kubeadminPassword --output tsv)

Inicie sesión en el servidor de API del clúster de OpenShift mediante el siguiente comando.

oc login $apiServer --username kubeadmin --password $kubeadminPassword

Cree un secreto de OpenShift para almacenar el secreto de aplicación de Microsoft Entra.

oc create secret generic openid-client-secret-azuread \
  --namespace openshift-config \
  --from-literal=clientSecret=$clientSecret

Cree un archivo oidc.yaml para configurar la autenticación openID de OpenShift en 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 la configuración al clúster.

oc apply -f oidc.yaml

Recibirá una respuesta como en el ejemplo siguiente.

oauth.config.openshift.io/cluster configured

Comprobación del inicio de sesión con el identificador de Microsoft Entra

Cierre sesión en la consola web de OpenShift e inicie sesión de nuevo y verá una nueva opción para iniciar sesión con entraID. Es posible que tenga que esperar unos minutos para que la opción esté disponible.

Captura de pantalla que muestra la opción Microsoft Entra ID para iniciar sesión en un clúster de Red Hat OpenShift de Azure.