Configurare un provider SAML 2.0 per i portali con AD FS
Nota
A partire dal 12 ottobre 2022, i portali Power Apps sono denominati Power Pages. Altre informazioni: Microsoft Power Pages è ora generalmente disponibile (blog)
A breve verrà eseguita la migrazione e l'unione della documentazione dei portali Power Apps con la documentazione di Power Pages.
Importante
I passaggi per la configurazione di Active Directory Federation Services (AD FS) potrebbero variare a seconda della versione del server AD FS.
Creare un'attendibilità componente AD FS
Nota
Vedere Configurazione di AD FS utilizzando PowerShell per informazioni su come eseguire questa operazione in uno script PowerShell.
Con lo strumento di gestione AD FS, vai a Servizio > Descrizioni attestazione.
Seleziona Aggiungi descrizione attestazione.
Specifica l'attestazione:
Nome visualizzato: Identificatore persistente
Identificatore attestazione: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Abilita casella di controllo per: pubblicare questa descrizione dell'attestazione nei metadati di federazione come tipo di richiesta che questo servizio di federazione può accettare
Abilita casella di controllo per: pubblicare questa descrizione dell'attestazione nei metadati di federazione come tipo di richiesta che questo servizio di federazione può inviare
Seleziona OK.
Mediante lo strumento di gestione AD FS, seleziona Relazioni di attendibilità > Attendibilità componente.
Seleziona Aggiungi attendibilità componente.
Pagina di benvenuto: seleziona Start.
Seleziona origine dati: seleziona Inserisci dati sulla relying party manualmente, quindi seleziona Avanti.
Specifica nome visualizzato: inserisci un nome, quindi seleziona Avanti. Esempio: https://portal.contoso.com/
Scegli profilo: seleziona Profilo AD FS 2.0, quindi seleziona Avanti.
Configura certificato: seleziona Avanti.
Configura URL: seleziona la casella di controllo Abilita supporto per il protocollo WebSSO SAML 2.0. URL di servizio SAML SSO 2.0 del componente: inserisci https://portal.contoso.com/signin-saml2
Nota che AD FS richiede che il portale sia in esecuzione su HTTPS.Nota
L'endpoint risultante dispone delle seguenti impostazioni:
- Tipo di endpoint: Endpoint di utilizzo asserzione SAML
- Binding: POST
- Indice: n/d (0)
- URL: https://portal.contoso.com/signin-saml2
Configurare le identità: immetti
https://portal.contoso.com/
, seleziona Aggiungi, quindi seleziona Avanti. Se applicabile, più identità possono essere aggiunte per ogni portale del componente aggiuntivo. Gli utenti possono eseguire l'autenticazione di una qualsiasi o di tutte le identità disponibili.Scegli regole di autorizzazione rilascio: seleziona Consenti a tutti gli utenti l'accesso a questo componente, quindi seleziona Avanti.
Aggiunta attendibilità: seleziona Avanti.
Seleziona Chiudi.
Aggiungi la richiesta ID nome al trust della relying party:
Trasforma l'attestazione Nome account Windows in ID nome (Trasformare un'attestazione in ingresso):
Tipo di attestazione in ingresso: nome account Windows
Tipo di attestazione in uscita: ID Nome
Formato ID nome in uscita: Identificatore persistente
Pass-through di tutti i valori attestazione
Configurare il provider SAML 2.0
Dopo aver configurato l'attendibilità della relying party di AD FS, puoi seguire i passaggi in Configurare un provider SAML 2.0 per i portali.
Accesso inizializzato dal provider di identità
AD FS supporta il profilo del provider di identità Single Sign-On (SSO) della specifica SAML 2.0. Affinché il portale (provider di servizi) risponda correttamente alla richiesta SAML inizializzata dal provider di identità, il parametro RelayState deve essere codificato in modo corretto.
Il valore della stringa di base da codificare nel parametro SAML RelayState deve essere nel formato ReturnUrl=/content/sub-content/
dove /content/sub-content/
è il percorso della pagina Web desiderata da visitare nel portale (provider di servizio). Il percorso può essere sostituito da qualsiasi pagina Web valida nel portale. Il valore stringa è codificata e posizionata in una stringa del contenitore del formato RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Questa stringa intera ancora codificata e aggiunta a un altro contenitore del formato <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Ad esempio, considerato il percorso del provider di servizio /content/sub-content/
e l'ID del componente: https://portal.contoso.com/
costruisci l'URL con la seguente procedura:
Codifica il valore
ReturnUrl=/content/sub-content/
per ottenereReturnUrl%3D%2Fcontent%2Fsub-content%2F
Codifica il valore
https://portal.contoso.com/
per ottenerehttps%3A%2F%2Fportal.contoso.com%2F
Codifica il valore
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
per ottenereRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Anteponi il percorso SSO inizializzato dal provider di identità AD FS per ottenere 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
Puoi utilizzare il seguente script PowerShell per creare l'URL. Salva lo script in un file denominato 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
Configura AD FS mediante PowerShell
Il processo di aggiunta dell'attendibilità del relying party in AD FS può anche essere effettuato eseguendo lo script PowerShell seguente nel server AD FS. Salva lo script in un file denominato Add-AdxPortalRelyingPartyTrustForSaml.ps1. Dopo aver eseguito lo script, continua la configurazione delle impostazioni del sito portale.
<#
.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
Configurare un provider SAML 2.0
Dopo aver configurato l'attendibilità della relying party di AD FS, puoi seguire i passaggi in Configurare un provider SAML 2.0 per i portali.
Vedi anche
Configurare un provider SAML 2.0 per i portali con Azure AD
Domande frequenti sull'utilizzo di SAML 2.0 nei portali
Configurare un provider SAML 2.0 per i portali
Nota
Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)
Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).