Configurer un fournisseur SAML 2.0 pour les portails avec AD FS

Notes

À compter du 12 octobre 2022, le portail Power Apps devient Power Pages. Plus d’informations : Microsoft Power Pages est maintenant généralement disponible (blog)
Nous allons bientôt migrer et fusionner la documentation des portails Power Apps avec la documentation de Power Pages.

Important

Les étapes de configuration des services de fédération Active Directory (AD FS) peuvent varier en fonction de la version de votre serveur AD FS.

Créer une approbation de partie de confiance AD FS

Notes

Consultez Configurer AD FS à l’aide de PowerShell ci-dessous, pour obtenir des informations sur l’exécution de ces étapes dans un script PowerShell.

  1. À l’aide de l’outil Gestion AD FS, accédez à Service > Descriptions des revendications.

    1. Sélectionnez Ajouter une description de revendication.

    2. Spécifiez la revendication :

      • Nom complet : Identificateur persistant

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

      • Case à cocher Activer pour : Publier cette description de revendication dans les métadonnées de fédération en tant que type de revendication pouvant être accepté par ce service de fédération

      • Case à cocher Activer pour : Publier cette description de revendication dans les métadonnées de fédération en tant que type de revendication pouvant être envoyé par ce service de fédération

    3. Cliquez sur OK.

  2. À l’aide de l’outil Gestion AD FS, sélectionnez Relations d’approbation >Approbations de partie de confiance.

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

    2. Bienvenue : sélectionnez Démarrer.

    3. Sélectionner une source de données : sélectionnez Entrer manuellement les données concernant la partie de confiance, puis Suivant.

    4. Entrer le nom complet : entrez un nom et sélectionnez Suivant. Exemple : https://portal.contoso.com/

    5. Choisir le profil : sélectionnez Profil AD FS 2.0, puis Suivant.

    6. Configurer le certificat : sélectionnez Suivant.

    7. Configurer l’URL : activez la case à cocher Activer la prise en charge du protocole WebSSO SAML 2.0. URL du service SSO SAML 2.0 de la partie de confiance : entrez https://portal.contoso.com/signin-saml2
      Notez que AD FS nécessite que le portail s’exécute sur HTTPS.

      Notes

      Le point de terminaison obtenu contient les paramètres suivants :

    8. Configurer les identités : entrez https://portal.contoso.com/, sélectionnez Ajouter, puis Suivant. Le cas échéant, vous pouvez ajouter d’autres d’identités pour chaque portail de partie de confiance supplémentaire. Les utilisateurs peuvent s’authentifier sur une ou toutes les identités disponibles.

    9. Choisir les règles d’autorisation d’émission : sélectionnez Autoriser l’accès de tous les utilisateurs à cette partie de confiance, puis Suivant.

    10. Prêt à ajouter l’approbation : sélectionnez Suivant.

    11. Sélectionnez Fermer.

  3. Ajoutez la revendication ID de nom à l’approbation de partie de confiance :

    Transformer le nom du compte Windows en ID de nom (transformer une revendication entrante) :

    • Type de revendication entrante : Nom du compte Windows

    • Type de revendication sortant : ID du nom

    • Format d’ID de nom sortant : Identificateur persistant

    • Transférer toutes les valeurs des revendications

Configurer le fournisseur SAML 2.0

Après avoir configuré l’approbation de la partie de confiance AD FS, vous pouvez suivre les étapes dans Configurer un fournisseur SAML 2.0 pour les portails.

Fournisseur d’identité – connexion initiée

AD FS prend en charge le profil d’authentification unique (SSO) activé par le fournisseur d’identité de la spécification SAML 2.0. Pour garantir une réponse correcte du portail (fournisseur de service) à la demande SAML lancée par le fournisseur d’identité, le paramètre RelayState doit être codé correctement.

La valeur de base de la chaîne à 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 Web à laquelle vous souhaitez accéder dans le portail (fournisseur de service). Le chemin d’accès peut être remplacé par une page Web valide du portail. La valeur de la chaîne est codée et placée dans une chaîne 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és le chemin d’accès du fournisseur de service /content/sub-content/ et l’ID de la partie de confiance https://portal.contoso.com/, construisez l’URL avec les étapes suivantes :

  • 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 portal page on the service provider.

.PARAMETER path

The path to the portal 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

Le processus d’ajout d’une approbation de partie de confiance dans AD FS peut également s’effectuer dans le script PowerShell suivant sur le serveur AD FS. Enregistrez le script dans un fichier nommé Add-AdxPortalRelyingPartyTrustForSaml.ps1. Après l’exécution du script, continuez à configurer les paramètres de site du portail.

<# 

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a website.

.PARAMETER domain

The domain name of the portal.

.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 portal relying party trust


[!INCLUDE[cc-pages-ga-banner](../../../includes/cc-pages-ga-banner.md)]

Add-CrmRelyingPartyTrust $domain

Configurer un fournisseur SAML 2.0

Après avoir configuré l’approbation de la partie de confiance AD FS, vous pouvez suivre les étapes dans Configurer un fournisseur SAML 2.0 pour les portails.

Voir aussi

Configurer un fournisseur SAML 2.0 pour les portails avec Azure AD
FAQ sur l’utilisation de SAML 2.0 dans les portails
Configurer un fournisseur SAML 2.0 pour les portails

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).