Partager via


Configurer un fournisseur SAML 2.0 avec AD FS

Les services de fédération Active Directory (AD FS) sont l’un des fournisseurs d’identité SAML 2.0 que vous pouvez utiliser pour authentifier les visiteurs sur votre site Power Pages. Vous pouvez utiliser n’importe quel fournisseur conforme à la spécification SAML 2.0.

Cet article décrit les étapes suivantes :

Important

Les étapes de configuration d’AD FS peuvent varier en fonction de la version de votre serveur AD FS.

Configurer AD FS dans Power Pages

Définissez AD FS comme fournisseur d’identité pour votre site.

  1. Dans votre site Power Pages, sélectionnez Sécurité>Fournisseurs d’identité.

    Si aucun fournisseur d’identité n’apparaît, assurez-vous que Connexion externe est défini sur Activé dans les paramètres d’authentification généraux de votre site.

  2. Sélectionnez + Nouveau fournisseur.

  3. Sous Sélectionner un fournisseur de connexion, sélectionnez Autre.

  4. Sous Protocole, sélectionnez SAML 2.0.

  5. Entrez un nom pour le fournisseur.

    Le nom du fournisseur est le texte du bouton que les utilisateurs voient lorsqu’ils sélectionnent leur fournisseur d’identité sur la page de connexion.

  6. Sélectionnez Suivant.

  7. Sous URL de réponse, sélectionnez Copier.

    Ne fermez pas l’onglet de votre navigateur Power Pages. Vous y reviendrez bientôt.

Créer une approbation de partie de confiance AD FS

Vous pouvez également utiliser un script PowerShell pour effectuer ces étapes.

  1. Dans le gestionnaire de serveurs, sélectionnez Outils, puis sélectionnez Gestion AD FS.

  2. Développez Service.

  3. Dans le volet de droite, sélectionnez Ajouter une description de revendication.

  4. Saisissez les valeurs suivantes :

    • Nom complet : Identificateur persistant

    • Identificateur de revendication : urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Sélectionnez les deux options Publier cette description de revendication dans les métadonnées de fédération… .

  5. Sélectionnez OK.

  6. Sélectionnez Relations d’approbation>Approbations de partie de confiance.

  7. Sélectionnez Ajouter l’approbation d’une partie de confiance.

  8. Cliquez sur Démarrer.

  9. Sélectionnez Entrer manuellement les données concernant la partie de confiance, puis sélectionnez Suivant.

  10. Entrez un nom, par exemple, https://portal.contoso.com/.

  11. Sélectionnez Suivant.

  12. Sélectionnez Profil AD FS 2.0, puis sélectionnez Suivant.

  13. Sur la page Configurer le certificat, sélectionnez Suivant.

  14. Sélectionnez Activer la prise en charge du protocole WebSSO SAML 2.0.

  15. Sous URL du service SSO SAML 2.0 de la partie de confiance, saisissez l’URL de réponse que vous avez copiée. AD FS nécessite que le site Web exécute HTTPS, et non HTTP.

  16. Sélectionnez Suivant.

  17. Sur la page Configurer les identificateurs, entrez l’URL de votre site, puis sélectionnez Ajouter.

    Vous pouvez ajouter d’autres d’identités pour chaque site Web de partie de confiance supplémentaire, si nécessaire. Les utilisateurs peuvent s’authentifier en utilisant les identités disponibles.

  18. Sélectionnez Suivant.

  19. Sur la page Configurer l’authentification multifacteur maintenant ?, sélectionnez Je ne souhaite pas configurer les paramètres d’authentification multifacteur pour cette approbation de partie de confiance pour le moment.

  20. Dans la page Choisir les règles de délivrance des autorisations, sélectionnez Autoriser tous les utilisateurs à accéder à cette partie de confiance, puis Suivant.

  21. Examinez les paramètres d’approbation, puis sélectionnez Suivant.

  22. Sélectionnez Fermer.

  23. Dans Modifier les règles de revendication, sélectionnez l’un des onglets suivants, en fonction de l’approbation que vous modifiez et de l’ensemble de règles dans lequel vous souhaitez créer la règle :

    • Règles de transformation de l’acceptation
    • Règles de transformation de l’émission
    • Règles d’autorisation de l’émission
    • Règles d’autorisation de la délégation
  24. Sélectionnez Ajouter une règle.

  25. Dans la liste des Modèles de règle de revendication, sélectionnez Transformer une revendication entrante, puis sélectionnez Suivant.

  26. Entrez ou sélectionnez les valeurs suivantes :

    • Nom de la règle de revendication : Transformer le nom du compte Windows en ID de nom

    • Type de revendication entrante : Nom du compte Windows

    • Type de revendication sortante : ID du nom

    • Format d’ID de nom sortant : Identificateur persistant

  27. Sélectionnez Transférer toutes les valeurs des revendications.

  28. Sélectionnez Terminer, puis sélectionnez OK.

Terminer la configuration du fournisseur

Après avoir configuré l’approbation de partie de confiance AD FS :

  1. Créez un enregistrement d’application dans Azure.

  2. Saisissez les paramètres du site dans Power Pages.

Connexion initiée par le fournisseur d’identité

AD FS prend en charge le profil d’authentification unique (SSO) activée par le fournisseur d’identité de la spécification SAML 2.0. Pour que le site Web du fournisseur de services réponde correctement à la demande SAML du fournisseur d’identité, vous devez encoder le paramètre RelayState.

La valeur de la chaîne de base à encoder dans le paramètre RelayState de SAML doit être au format ReturnUrl=/content/sub-content/, où /content/sub-content/ est le chemin d’accès à la page à laquelle vous souhaitez accéder sur le site Web du fournisseur de services. Vous pouvez spécifier le chemin d’accès à toute page valide sur le site Web. La valeur de la chaîne est codée et placée dans une chaîne de conteneur au format RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Cette chaîne entière est à nouveau codée et ajoutée à un autre conteneur au format <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Par exemple, étant donné le chemin d’accès du fournisseur de services /content/sub-content/ et l’ID de la partie de confiance https://portal.contoso.com/, suivez ces étapes pour construire l’URL :

  • Coder la valeur ReturnUrl=/content/sub-content/ pour obtenir ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Coder la valeur https://portal.contoso.com/ pour obtenir https%3A%2F%2Fportal.contoso.com%2F

  • Coder la valeur RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F pour obtenir RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Ajoutez le chemin d’accès SSO activé par le fournisseur d’identité AD FS pour obtenir l’URL finale https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

Vous pouvez le script PowerShell suivant pour créer l’URL. Enregistrez le script dans un fichier nommé Get-IdPInitiatedUrl.ps1.


<#
.SYNOPSIS 
Constructs an IdP-initiated SSO URL to access a website page on the service provider.
.PARAMETER path
The path to the website page.
.PARAMETER rpid
The relying party identifier.
.PARAMETER adfsPath
The AD FS IdP initiated SSO page.
.EXAMPLE
PS C:\\> .\\Get-IdPInitiatedUrl.ps1 -path "/content/sub-content/" -rpid "https://portal.contoso.com/" -adfsPath "https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx"
#>
param
(
[parameter(mandatory=$true,position=0)]
$path,
[parameter(mandatory=$true,position=1)]
$rpid,
[parameter(position=2)]
$adfsPath = https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx
)
$state = ReturnUrl=$path
$encodedPath = [uri]::EscapeDataString($state)
$encodedRpid = [uri]::EscapeDataString($rpid)
$encodedPathRpid = [uri]::EscapeDataString("RPID=$encodedRpid&RelayState=$encodedPath")
$idpInitiatedUrl = {0}?RelayState={1} -f $adfsPath, $encodedPathRpid
Write-Output $idpInitiatedUrl

Configurer AD FS à l’aide de PowerShell

Au lieu d’ajouter manuellement une approbation de partie de confiance dans AD FS, vous pouvez exécuter le script PowerShell suivant sur le serveur AD FS. Enregistrez le script dans un fichier nommé Add-AdxPortalRelyingPartyTrustForSaml.ps1. Une fois le script exécuté, continuez à configurer les paramètres du site dans Power Pages.

<# 
.SYNOPSIS
Adds a SAML 2.0 relying party trust entry for a website.
.PARAMETER domain
The domain name of the website.
.EXAMPLE
PS C:\\> .\\Add-AdxPortalRelyingPartyTrustForSaml.ps1 -domain portal.contoso.com
#>
param
(
[parameter(Mandatory=$true,Position=0)]
$domain,
[parameter(Position=1)]
$callbackPath = /signin-saml2
)
$VerbosePreference = Continue
$ErrorActionPreference = Stop
Import-Module adfs
Function Add-CrmRelyingPartyTrust
{
param (
[parameter(Mandatory=$true,Position=0)]
$name
)
$identifier = https://{0}/ -f $name
$samlEndpoint = New-ADFSSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri (https://{0}{1} -f $name, $callbackPath)
$identityProviderValue = Get-ADFSProperties | % { $_.Identifier.AbsoluteUri }
$issuanceTransformRules = @'
@RuleTemplate = MapClaims
@RuleName = Transform [!INCLUDE[pn-ms-windows-short](../../../includes/pn-ms-windows-short.md)] Account Name to Name ID claim
c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
=> issue(Type = "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["https://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent");
@RuleTemplate = LdapClaims
@RuleName = Send LDAP Claims
c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "[!INCLUDE[pn-active-directory](../../../includes/pn-active-directory.md)]", types = ("https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = ";givenName,sn,mail;{{0}}", param = c.Value);
'@ -f $identityProviderValue
$issuanceAuthorizationRules = @'
@RuleTemplate = AllowAllAuthzRule
=> issue(Type = https://schemas.microsoft.com/authorization/claims/permit, Value = true);
'@
Add-ADFSRelyingPartyTrust -Name $name -Identifier $identifier -SamlEndpoint $samlEndpoint -IssuanceTransformRules $issuanceTransformRules -IssuanceAuthorizationRules $issuanceAuthorizationRules
}
# add the 'Identity Provider' claim description if it is missing
[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]
if (-not (Get-ADFSClaimDescription | ? { $_.Name -eq Persistent Identifier })) {
Add-ADFSClaimDescription -name "Persistent Identifier" -ClaimType "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" -IsOffered:$true -IsAccepted:$true
}
# add the website relying party trust
[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]
Add-CrmRelyingPartyTrust $domain

Voir aussi

Configurer un fournisseur SAML 2.0
Configurer un fournisseur SAML 2.0 avec Microsoft Entra ID
FAQ sur SAML 2.0