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 origenAumentó 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ón2.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 AD3.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 ADFSHay 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


Ya lo tengo instalado, por lo que se ve un poco diferente.
Siguiente, Siguiente, Instalar ...
5. Configuración de ADFSEste enlace le permite llamar al configurador ADFS



Conéctese a AD con el usuario actual.

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

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

Crea una nueva base de datos

Comprobando ...

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

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


Luego, vaya a
Relaciones de confianza y elija
Confiar en fideicomisos de fiestaBotón derecho ->
Agregar confianza de fiesta confiable
Elegir
reclamos conscientes
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.

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

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

Vuelva a verificar y listo.

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

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:
NameIdb. Tipo de reclamo entrante:
nombre de cuenta de Windowsc. Tipo de reclamo saliente:
ID de nombred. Formato de ID de nombre saliente:
Identificador persistentee. Pase por todos los valores de reclamo:
marcado
Listo
5.2 Obtención de una lista de roles para el usuario. Plantilla:
Enviar atributos LDAP como reclamos ,

campos:
a. Nombre de regla de reclamo:
RoleSessionNameb. Almacén de atributos:
Active Directoryc. Atributo LDAP:
Direcciones de correo electrónicod. Tipo de reclamo saliente:
https://aws.amazon.com/SAML/Attributes/RoleSessionName

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
campos
a. Nombre de la regla de reclamo:
Obtener grupos de ADb. 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);

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:
Rolessb. 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-"));

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

Esto se describirá en la cláusula 6.
6. Configuración de AWSTodas 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 -
ADFSDocumento de metadatos: este mosaico debe tomarse (descargarse) en su servidor FS en
https: ///FederationMetadata/2007-06/FederationMetadata.xmlSi el archivo no está disponible, consulte el punto 8: Errores conocidos y sus soluciones.

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

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í)

asignar etiquetas si es necesario ...

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
7. Prueba7.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.

Ingrese los datos de nuestro usuario AD

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

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)
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
Solución 2: Probablemente haya un error al escribir el grupo en AD y el rol en AWS