Gérer l'authentification multifacteur (MFA) à l'aide de l'API Rest, de PowerShell et de SCCLI
La connexion MFA est prise en charge à partir du navigateur, de l'API REST, de PowerShell et de SCCLI. L'authentification multifacteur est prise en charge via un gestionnaire d'identité AD FS. Vous pouvez activer MFA, désactiver MFA et configurer MFA à partir de l'interface graphique, de l'API REST, de PowerShell et de SCCLI.
Configurer AD FS comme OAuth/OIDC
Configurer AD FS à l'aide de l'assistant d'interface graphique Windows
-
Accédez à Tableau de bord du gestionnaire de serveur > Outils > Gestion ADFS.
-
Accédez à ADFS > Groupes d’applications.
-
Faites un clic droit sur Groupes d'applications.
-
Sélectionnez Ajouter un groupe d'applications et saisissez Nom de l'application.
-
Sélectionnez Application serveur.
-
Cliquez sur Suivant.
-
-
Copier Identifiant client.
Il s'agit de l'ID client. .. Ajoutez l'URL de rappel (URL du serveur SnapCenter ) dans l'URL de redirection. .. Cliquez sur Suivant.
-
Sélectionnez Générer un secret partagé.
Copiez la valeur secrète. C'est le secret du client. .. Cliquez sur Suivant.
-
Sur la page Résumé, cliquez sur Suivant.
-
Sur la page Terminé, cliquez sur Fermer.
-
-
Cliquez avec le bouton droit sur le Groupe d'applications nouvellement ajouté et sélectionnez Propriétés.
-
Sélectionnez Ajouter une application dans les propriétés de l'application.
-
Cliquez sur Ajouter une application.
Sélectionnez API Web et cliquez sur Suivant.
-
Sur la page Configurer l’API Web, saisissez l’URL du serveur SnapCenter et l’identifiant client créé à l’étape précédente dans la section Identificateur.
-
Cliquez sur Ajouter.
-
Cliquez sur Suivant.
-
-
Sur la page Choisir la politique de contrôle d'accès, sélectionnez la politique de contrôle en fonction de vos besoins (par exemple, Autoriser tout le monde et exiger l'authentification multifacteur) et cliquez sur Suivant.
-
Sur la page Configurer l'autorisation d'application, par défaut, openid est sélectionné comme étendue, cliquez sur Suivant.
-
Sur la page Résumé, cliquez sur Suivant.
Sur la page Terminé, cliquez sur Fermer.
-
Sur la page Propriétés de l'exemple d'application, cliquez sur OK.
-
Jeton JWT émis par un serveur d'autorisation (AD FS) et destiné à être consommé par la ressource.
La revendication « aud » ou d’audience de ce jeton doit correspondre à l’identifiant de la ressource ou de l’API Web.
-
Modifiez l'API Web sélectionnée et vérifiez que l'URL de rappel (URL du serveur SnapCenter ) et l'identifiant client ont été ajoutés correctement.
Configurez OpenID Connect pour fournir un nom d’utilisateur en tant que revendications.
-
Ouvrez l’outil Gestion AD FS situé sous le menu Outils en haut à droite du Gestionnaire de serveur.
-
Sélectionnez le dossier Groupes d’applications dans la barre latérale gauche.
-
Sélectionnez l'API Web et cliquez sur MODIFIER.
-
Onglet Règles de transformation d'émission
-
-
Cliquez sur Ajouter une règle.
-
Sélectionnez Envoyer les attributs LDAP en tant que revendications dans la liste déroulante Modèle de règle de revendication.
-
Cliquez sur Suivant.
-
-
Saisissez le nom de la règle de réclamation.
-
Sélectionnez Active Directory dans la liste déroulante Magasin d’attributs.
-
Sélectionnez Nom d'utilisateur principal dans la liste déroulante Attribut LDAP et UPN dans la liste déroulante Type de réclamation sortante.
-
Cliquez sur Terminer.
-
Créer un groupe d'applications à l'aide de commandes PowerShell
Vous pouvez créer le groupe d’applications, l’API Web et ajouter l’étendue et les revendications à l’aide des commandes PowerShell. Ces commandes sont disponibles au format de script automatisé. Pour plus d'informations, voir <lien vers l'article de la base de connaissances>.
-
Créez le nouveau groupe d’applications dans AD FS à l’aide de la commande suivante.
New-AdfsApplicationGroup -Name $ClientRoleIdentifier -ApplicationGroupIdentifier $ClientRoleIdentifier
`ClientRoleIdentifier`nom de votre groupe d'applications
`redirectURL`URL valide pour la redirection après autorisation
-
Créez l’application serveur AD FS et générez le secret client.
Add-AdfsServerApplication -Name "$ClientRoleIdentifier - Server app" -ApplicationGroupIdentifier
$ClientRoleIdentifier -RedirectUri $redirectURL -Identifier $identifier -GenerateClientSecret
-
Créez l’application API Web ADFS et configurez le nom de la stratégie qu’elle doit utiliser.
$identifier = (New-Guid).Guid
Add-AdfsWebApiApplication -ApplicationGroupIdentifier $ClientRoleIdentifier -Name "App Web API"
-Identifier $identifier -AccessControlPolicyName "Permit everyone"
-
Obtenez l'ID client et le secret client à partir de la sortie des commandes suivantes, car ils ne sont affichés qu'une seule fois.
"client_id = $identifier"
"client_secret: "$($ADFSApp.ClientSecret)
-
Accordez à l’application AD FS les autorisations allatclaims et openid.
Grant-AdfsApplicationPermission -ClientRoleIdentifier $identifier -ServerRoleIdentifier $identifier -ScopeNames @('openid')
$transformrule = @"
@RuleTemplate = "LdapClaims"
@RuleName = "AD User properties and Groups"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer ==
"AD AUTHORITY"]
⇒ issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);
"@
-
Écrivez le fichier de règles de transformation.
$transformrule |Out-File -FilePath .\issueancetransformrules.tmp -force -Encoding ascii
$relativePath = Get-Item .\issueancetransformrules.tmp
-
Nommez l’application API Web et définissez ses règles de transformation d’émission à l’aide d’un fichier externe.
Set-AdfsWebApiApplication -Name "$ClientRoleIdentifier - Web API" -TargetIdentifier
$identifier -Identifier $identifier,$redirectURL -IssuanceTransformRulesFile
$relativePath
Mettre à jour le délai d'expiration du jeton d'accès
Vous pouvez mettre à jour le délai d’expiration du jeton d’accès à l’aide de la commande PowerShell.
À propos de cette tâche
-
Un jeton d’accès ne peut être utilisé que pour une combinaison spécifique d’utilisateur, de client et de ressource. Les jetons d’accès ne peuvent pas être révoqués et sont valables jusqu’à leur expiration.
-
Par défaut, le délai d’expiration d’un jeton d’accès est de 60 minutes. Ce délai d’expiration minimal est suffisant et évolutif. Vous devez fournir une valeur suffisante pour éviter toute tâche critique pour l’entreprise en cours.
Étape
Pour mettre à jour le délai d’expiration du jeton d’accès pour un groupe d’applications WebApi, utilisez la commande suivante sur le serveur AD FS.
+
Set-AdfsWebApiApplication -TokenLifetime 3600 -TargetName "<Web API>"
Récupérez le jeton du porteur depuis AD FS
Vous devez remplir les paramètres mentionnés ci-dessous dans n'importe quel client REST (comme Postman) et il vous invite à remplir les informations d'identification de l'utilisateur. De plus, vous devez saisir l'authentification à deux facteurs (quelque chose que vous possédez et quelque chose que vous êtes) pour obtenir le jeton du porteur.
+ La validité du jeton porteur est configurable depuis le serveur AD FS par application et la période de validité par défaut est de 60 minutes.
Champ |
Valeur |
Type de subvention |
Code d'autorisation |
URL de rappel |
Saisissez l’URL de base de votre application si vous n’avez pas d’URL de rappel. |
URL d'authentification |
[nom-de-domaine-adfs]/adfs/oauth2/authorize |
URL du jeton d'accès |
[nom-de-domaine-adfs]/adfs/oauth2/token |
ID client |
Saisissez l'ID client AD FS |
Secret client |
Entrez le secret du client AD FS |
Portée |
OpenID |
Authentification du client |
Envoyer comme en-tête d'authentification de base |
Ressource |
Dans l’onglet Options avancées, ajoutez le champ Ressource avec la même valeur que l’URL de rappel, qui est fournie sous la forme d’une valeur « aud » dans le jeton JWT. |