Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 --versionpara 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/entraIDSi no usa un dominio personalizado,
$domaines 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.