Traduction gratuite de l'article de Jeff Wierer "
Activation de la fédération vers AWS à l'aide de Windows Active Directory, ADFS et SAML 2.0 " avec des ajouts et des clarifications.
1. Les données source
2. Préparation
3. Configuration AD
4. Installez ADFS
5. Configuration d'ADFS
6. Configuration d'AWS
7. Test
8. Erreurs connues et leurs solutions
1. Les données sourceA augmenté AD Windows 2016
L'auteur a utilisé EC2 de Windows 2008R2 sur Amazon, j'ai une machine virtuelle dans le réseau local Windows 2016 avec accès à Internet.
Compte AWS (qui paiera tout)
Bras droits
Objectif: permettre à l'utilisateur AD de se connecter à AWS avec les droits spécifiés (pour obtenir un rôle) en fonction du groupe AD.
Schéma:

1. L'utilisateur (sera Bob) ouvre la page (https://ADFS.domain.name/adfs/ls/IdpInitiatedSignOn.aspx)
2. Bob est autorisé (ADFS demande les champs obligatoires dans AD)
3. Le navigateur de Bob reçoit les données nécessaires au format SAML d'ADFS
4. Le navigateur envoie les données reçues au service d'autorisation SAML (https://signin.aws.amazon.com/saml)
5. Bob Browser obtient l'URL de connexion pour la console AWS
2. Préparation2.1. Vous avez déjà généré AD et commencé des utilisateurs appartenant à différents groupes.
2.2. IIS surélevé (
Comment accroître le rôle d'IIS )
2.3. Générez un certificat SSL auto-signé. (
comment générer un certificat SSL auto-signé ) installez-le immédiatement pour le site par défaut.
3. Configuration AD3.1. Vous devez créer deux groupes AWS-Production et AWS-Billing
3.2. Créez l'utilisateur Bob (Attention !!! l'utilisateur doit remplir le champ email: bob@youdomain.com, sinon vous recevrez une erreur en entrant dans la console AWS)
3.3. Ajouter Bob aux groupes AWS-Production et AWS-Billing créés
3.4. Créez un autre utilisateur ADFSSVC. Compte de service spécial pour la connexion à AD.
4. Installez ADFSIl existe plusieurs versions d'ADFS
- ADFS 1.0 - Windows Server 2003 R2 (téléchargement supplémentaire)
- ADFS 1.1 - Windows Server 2008 et Windows Server 2008 R2
- ADFS 2.0 - Windows Server 2008 et Windows Server 2008 R2 (téléchargement depuis Microsoft.com)
- ADFS 2.1 - Windows Server 2012
- ADFS 3.0 - Windows Server 2012 R2 [5]
- ADFS 4.0 - Windows Server 2016 - Notre choix
- ADFS 5.0 - Windows Server 2019
L'auteur télécharge ADFS v2 et l'installe.
Nous allons augmenter le rôle de l'ADFS
Il n'y a aucune difficulté, trois captures d'écran vous aideront à cliquer sur le bouton suivant>
Captures d'écran


Je l'ai déjà installé, donc il a l'air un peu différent.
Ensuite, ensuite, installez ...
5. Configuration d'ADFSCe lien vous permet d'appeler le configurateur ADFS



Connectez-vous à AD avec l'utilisateur actuel.

Ici, nous avons besoin du certificat que nous avons généré dans IIS (section 2.3) et du nom de notre futur ADFS (adfs.you-domain.com), la ligne d'affichage est NAME YOUR COMPANY

Nous sélectionnons le compte de service
ADFSSVC que nous avons créé dans la
section 3.4

Créer une nouvelle base de données

Vérification ...

Vérification de la préinstallation ... Cliquez sur Configurer

C'est fait.
La console commence par rechercher «AD Management» dans le terme de recherche Windows.


Ensuite, accédez à
Trust Relationships et choisissez
Relying Party TrustsBouton droit ->
Ajouter une confiance de partie de confiance
Choix des
réclamations
Sélectionnez «Importer les données publiées par la partie utilisatrice en ligne ...» et entrez la ligne
https://signin.aws.amazon.com/static/saml-metadata.xml
c'est la même chose pour tout le monde et elle est fournie par AWS.

Conduisez le nom "
AWS GO " à votre discrétion ou laissez-le tel quel.

Nous sélectionnons "Autoriser tous les utilisateurs ..." l'accès est autorisé à tous.

Revérifiez et terminé.

Faites un clic droit sur nos relais et sélectionnez «Modifier la politique d'émission des réclamations»

Nous commençons à ajouter nos règles:
5.1 Obtention d'un nom d'utilisateur. Modèle:
Transformez une réclamation entrante puis remplissez les champs:
a. Nom de la règle de revendication:
NameIdb. Type de réclamation entrante:
nom du compte Windowsc. Type de réclamation sortante:
ID de nomd. Format d'ID de nom sortant:
identifiant persistante. Passez toutes les valeurs de réclamation:
coché
C'est fait.
5.2 Obtention d'une liste de rôles pour l'utilisateur. Modèle:
envoyer des attributs LDAP en tant que revendications ,

champs:
a. Nom de la règle de revendication:
RoleSessionNameb. Magasin d'attributs:
Active Directoryc. Attribut LDAP:
adresses électroniquesd. Type de réclamation sortante:
https://aws.amazon.com/SAML/Attributes/RoleSessionName

Terminé
5.3 Remarque importante: dans cette règle, tous les rôles de l'utilisateur seront extraits et mappés à des rôles similaires dans IAM (c'est-à-dire les rôles qui commencent par AWS -...). Cette règle récupère toutes les adhésions AD. Modèle:
envoyer des revendications à l'aide d'une règle personnalisée
champs
a. Nom de la règle de revendication:
obtenir les groupes ADb. Rôle personnalisé:
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);

pour ajouter la règle suivante, vous devrez revenir après l'étape 6 (ou vous pouvez l'ajouter puis modifier l'ID)
5.4 Ajoutez une autre règle comme 5.3 ce sera comme ceci:
a. Nom de la règle de revendication:
Rolessb. Rôle personnalisé:
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-"));

Ici, vous devez changer la valeur 123456789012 en votre propre IAM AWS

Cela sera décrit à l'article 6.
6. Configuration d'AWSToutes les actions ont lieu dans la console AWS :)
6.1 Création d'un fournisseur SAML
a.
IAM -> Fournisseurs d'identité -> Créer un fournisseur
Type de fournisseur - SAML
Nom du fournisseur -
ADFSDocument de métadonnées - cette vignette doit être prise (téléchargée) sur votre serveur FS à
https: ///FederationMetadata/2007-06/FederationMetadata.xmlsi le fichier n'est pas disponible, voir point 8 - Erreurs connues et leurs solutions

b. Créez deux rôles pour nos utilisateurs.
Rôles IAM Rôles -> Créer un rôle

Esquissez les politiques nécessaires (par exemple, Facturation (politique par défaut) pour les utilisateurs qui surveilleront l'argent, ou vous pouvez pré-créer votre propre politique et l'attribuer ici)

attribuer des balises si nécessaire ...

Donnez un nom: le nom après "-" doit correspondre au nom dans AD après "-" ASFS-
Billing = AWS-
Billing, auquel cas votre utilisateur sera dans le bon groupe.
Et cliquez sur Créer un rôle
7. Test7.1 Dans votre navigateur préféré, accédez à la page de votre serveur
https://localhost/adfs/ls/IdpInitiatedSignOn.aspx
(un certificat auto-signé devra être confirmé)
Une page avec un contenu similaire s'ouvrira.

Entrez les données de notre utilisateur AD

Et nous sommes redirigés vers la page AWS avec une proposition du rôle sous lequel l'utilisateur travaillera dans AWS

c'est parce que notre Bob est dans deux groupes AD à la fois (AWS-Production et AWS-billing).
Nous sélectionnons la facturation AWS et voyons les paramètres nécessaires (nous pouvons consulter et modifier le budget mais n'avons pas le droit de créer EC2 selon les rôles que nous avons définis pour lui)
8. Erreurs connues et leurs solutions8.1 Le portail ne répond pas ou ne trouve pas les pages nécessaires. Par exemple:
https://localhost/adfs/ls/IdpInitiatedSignOn.aspx
Solution: sur le serveur ADFS, vous devez exécuter la commande PowerShell
Set-AdfsProperties -EnableIdPInitiatedSignonPage $true
Vous pouvez immédiatement mettre le logo sur la page d'accueil
Set-AdfsWebTheme -TargetName default -Illustration @{path="C:\path\adfslogo.jpg"}
8.2 Lors de la redirection vers la console AWS, vous obtenez une erreur de la forme:
RoleSessionName is required in AuthnResponse (Service: AWSSecurityTokenService; Status Code: 400; Error Code: InvalidIdentityToken; Request ID: e4ddf8cd-d7b7-11e9-8729-09c90d2561b0). Please try again
Solution: votre utilisateur n'a probablement pas de champ de messagerie dans AD
Solution 2: il y a probablement une erreur dans l'écriture du groupe dans AD et du rôle dans AWS