Uso del Servicio de federación de AD para autorizar a los usuarios de AWS con distribución de derechos

Traducción gratuita del artículo de Jeff Wierer " Habilitación de la federación a AWS con Windows Active Directory, ADFS y SAML 2.0 " con adiciones y aclaraciones.

1. Los datos de origen
2. Preparación
3. Configuración de AD
4. Instalar ADFS
5. Configuración de ADFS
6. Configuración de AWS
7. Prueba
8. Errores conocidos y sus soluciones.



1. Los datos de origen

Aumentó AD Windows 2016
El autor usó EC2 de Windows 2008R2 en Amazon, tengo una máquina virtual en la red local de Windows 2016 con acceso a Internet.
Cuenta de AWS (que pagará por todo)
Brazos rectos
Objetivo: permitir que el usuario de AD inicie sesión en AWS con los derechos especificados (para obtener un rol) según el grupo de AD.

Esquema:



1. El usuario (será Bob) abre la página (https://ADFS.domain.name/adfs/ls/IdpInitiatedSignOn.aspx)

2. Bob está autorizado (ADFS solicita los campos requeridos en AD)

3. El navegador de Bob recibe los datos necesarios en formato SAML de ADFS

4. El navegador envía los datos recibidos al servicio de autorización SAML (https://signin.aws.amazon.com/saml)

5. Bob Browser obtiene la URL de inicio de sesión para la consola de AWS

2. Preparación

2.1. Ya ha planteado AD y ha iniciado usuarios que están en diferentes grupos.

2.2. IIS elevado ( Cómo elevar el papel de IIS )

2.3. Genere un certificado SSL autofirmado. ( cómo generar un certificado SSL autofirmado ) instálelo inmediatamente para el sitio predeterminado.

3. Configuración de AD

3.1. Necesita crear dos grupos AWS-Production y AWS-Billing

3.2. Crear usuario Bob (¡Atención! El usuario debe completar el campo de correo electrónico: bob@youdomain.com, de lo contrario, recibirá un error al ingresar a la consola de AWS)

3.3. Agregue Bob a los grupos creados de AWS-Production y AWS-Billing

3.4. Cree otro usuario ADFSSVC. Cuenta de servicio especial para conectarse a AD.

4. Instalar ADFS

Hay varias versiones de ADFS

  • ADFS 1.0 - Windows Server 2003 R2 (descarga adicional)
  • ADFS 1.1 - Windows Server 2008 y Windows Server 2008 R2
  • ADFS 2.0 - Windows Server 2008 y Windows Server 2008 R2 (descarga de Microsoft.com)
  • ADFS 2.1 - Windows Server 2012
  • ADFS 3.0 - Windows Server 2012 R2 [5]

  • ADFS 4.0 - Windows Server 2016 - Nuestra elección
  • ADFS 5.0 - Windows Server 2019

El autor descarga ADFS v2 y lo instala.
Vamos a plantear el papel de ADFS
No hay dificultad allí, tres capturas de pantalla te ayudarán a hacer clic en el botón siguiente>

Capturas de pantalla
imagen
imagen
imagen
Ya lo tengo instalado, por lo que se ve un poco diferente.
Siguiente, Siguiente, Instalar ...

5. Configuración de ADFS

Este enlace le permite llamar al configurador ADFS

imagen

imagen

imagen

Conéctese a AD con el usuario actual.

imagen

Aquí necesitamos el certificado que generamos en IIS (Sección 2.3) y el nombre de nuestro futuro ADFS (adfs.you-domain.com), la línea de visualización es NAME YOUR COMPANY

imagen

Seleccionamos la cuenta de servicio ADFSSVC que creamos en la sección 3.4

imagen

Crea una nueva base de datos

imagen

Comprobando ...

imagen
Comprobación previa a la instalación ... Haga clic en Configurar

imagen

Listo

La consola comienza buscando "AD Management" en el término de búsqueda de Windows.

imagen

imagen

Luego, vaya a Relaciones de confianza y elija Confiar en fideicomisos de fiesta

Botón derecho -> Agregar confianza de fiesta confiable

imagen

Elegir reclamos conscientes

imagen

Seleccione "Importar datos que la persona que confía publicó en línea ..." e ingrese la línea https://signin.aws.amazon.com/static/saml-metadata.xml es el mismo para todos y es proporcionado por AWS.

imagen

Conduzca el nombre " AWS GO " a su discreción o déjelo como está.

imagen

Seleccionamos "Permitir a todos los usuarios ..." el acceso está permitido para todos.

imagen

Vuelva a verificar y listo.

imagen

Haga clic derecho en nuestros relés y seleccione "Editar política de emisión de reclamos"

imagen

Comenzamos a agregar nuestras reglas:

5.1 Obtención de un nombre de usuario. Plantilla: Transforme un reclamo entrante y luego complete los campos:

a. Nombre de la regla de reclamo: NameId
b. Tipo de reclamo entrante: nombre de cuenta de Windows
c. Tipo de reclamo saliente: ID de nombre
d. Formato de ID de nombre saliente: Identificador persistente
e. Pase por todos los valores de reclamo: marcado

imagen

Listo

5.2 Obtención de una lista de roles para el usuario. Plantilla: Enviar atributos LDAP como reclamos ,

imagen

campos:

a. Nombre de regla de reclamo: RoleSessionName
b. Almacén de atributos: Active Directory
c. Atributo LDAP: Direcciones de correo electrónico
d. Tipo de reclamo saliente:

 https://aws.amazon.com/SAML/Attributes/RoleSessionName 

imagen

Hecho

5.3 Nota importante: en esta regla, todos los roles para el usuario se recuperarán y se asignarán a roles similares en IAM (es decir, roles que comienzan con AWS -...). Esta regla recupera todas las membresías de AD. Plantilla: Enviar reclamos usando una regla personalizada

imagen

campos
a. Nombre de la regla de reclamo: Obtener grupos de AD
b. Rol personalizado:

 c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value); 

imagen

para agregar la siguiente regla, deberá regresar después del paso 6 (o puede agregarla y luego cambiar la ID)

5.4 Agregue otra regla como 5.3 será así:

a. Nombre de la regla de reclamo: Roless
b. Rol personalizado:

 c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-")); 

imagen

Aquí debe cambiar el valor 123456789012 a su propio desde IAM AWS

imagen

Esto se describirá en la cláusula 6.

6. Configuración de AWS

Todas las acciones tienen lugar en la consola de AWS :)

6.1 Crear proveedor SAML

a. IAM -> Proveedores de identidad -> Crear proveedor
Tipo de proveedor: SAML
Nombre del proveedor - ADFS
Documento de metadatos: este mosaico debe tomarse (descargarse) en su servidor FS en https: ///FederationMetadata/2007-06/FederationMetadata.xml
Si el archivo no está disponible, consulte el punto 8: Errores conocidos y sus soluciones.

imagen

b. Cree dos roles para nuestros usuarios.
Roles de IAM Roles -> Crear rol

imagen

Dibuje las políticas necesarias (por ejemplo, Facturación (política predeterminada) para los usuarios que supervisarán el dinero, o puede crear previamente su propia política y asignarla aquí)

imagen

asignar etiquetas si es necesario ...

imagen

Dé un nombre: el nombre después de "-" debe coincidir con el nombre en AD después de "-" ASFS- Billing = AWS- Billing, en cuyo caso su usuario estará en el grupo correcto.

Y haga clic en Crear rol

imagen

7. Prueba

7.1 En su navegador favorito, vaya a la página de su servidor https://localhost/adfs/ls/IdpInitiatedSignOn.aspx (será necesario confirmar un certificado autofirmado)

Se abrirá una página con contenido similar.

imagen

Ingrese los datos de nuestro usuario AD

imagen

Y se nos redirige a la página de AWS con una propuesta del rol bajo el cual el usuario trabajará en AWS

imagen

esto se debe a que nuestro Bob está en dos grupos de AD a la vez (AWS-Production y AWS-billing).

Seleccionamos la facturación de AWS y vemos la configuración necesaria (podemos ver y editar el presupuesto, pero no tenemos derecho a crear EC2 de acuerdo con los roles que definimos para él)

imagen

8. Errores conocidos y sus soluciones.

8.1 El portal no responde o no puede encontrar las páginas necesarias. Por ejemplo:

 https://localhost/adfs/ls/IdpInitiatedSignOn.aspx 

Solución: en el servidor ADFS, debe ejecutar el comando PowerShell

 Set-AdfsProperties -EnableIdPInitiatedSignonPage $true 

Puede poner inmediatamente el logotipo en la página de bienvenida.

 Set-AdfsWebTheme -TargetName default -Illustration @{path="C:\path\adfslogo.jpg"} 

8.2 Al redirigir a la consola de AWS, obtiene un error de la forma:

 RoleSessionName is required in AuthnResponse (Service: AWSSecurityTokenService; Status Code: 400; Error Code: InvalidIdentityToken; Request ID: e4ddf8cd-d7b7-11e9-8729-09c90d2561b0). Please try again 

Solución: lo más probable es que su usuario no tenga un campo de correo electrónico en AD

imagen

Solución 2: Probablemente haya un error al escribir el grupo en AD y el rol en AWS

Source: https://habr.com/ru/post/466859/


All Articles