Konfigurere en SAML 2.0-leverandør for portaler med AD FS
Obs!
Fra og med 12. oktober 2022 er Power Apps-portaler Power Pages. Mer informasjon: Microsoft Power Pages er nå tilgjengelig (blogg)
Vi overfører og slår snart sammen Power Apps-portaldokumentasjonen med Power Pages-dokumentasjonen.
Viktig
Fremgangsmåten for konfigurasjonen av Active Directory Federation Services (AD FS) kan variere avhengig av versjonen av AD FS-serveren.
Opprette en klarering for AD FS-beroende part
Obs!
Se Konfigurer AD FS ved hjelp av PowerShell nedenfor, for informasjon om hvordan du utfører disse trinnene i et PowerShell-skript.
Bruk AD FS Management-verktøyet og gå til Tjeneste > Kravbeskrivelser.
Velg Legg til kravbeskrivelse.
Angi kravet:
Visningsnavn: Fast identifikator
Krav-ID: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Aktiver-avmerkingsboks for: Publiser denne kravbeskrivelses i metadata for federering som en kravtype som denne Federation Service kan godta
Aktiver-avmerkingsboks for: Publiser denne kravbeskrivelses i metadata for federering som en kravtype som denne Federation Service kan sende
Velg OK.
Bruk AD FS Management-verktøyet for å velge Klareringsrelasjoner >Relasjoner for beroende part.
Velg Legg til klarering for beroende part.
Velkommen: Velg Start.
Velg datakilde: Velg Angi data om den beroende parten manuelt, og velg deretter Neste.
Angi visningsnavn: Angi et navn, og velg deretter Neste. Eksempel: https://portal.contoso.com/
Velg profil: Velg AD FS 2.0-profil, og velg deretter Neste.
Konfigurer sertifikat: Velg Neste.
Konfigurer URL-adresse: Merk av for Aktiver støtte for SAML 2.0 WebSSO-protokollen. URL-adresse for SAML 2.0 SSO-tjeneste for beroende part: Angi https://portal.contoso.com/signin-saml2
Vær oppmerksom på at AD FS krever at portalen kjører på HTTPS.Obs!
Det resulterende endepunktet har følgende innstillinger:
- Endepunkttype: SAML-deklarasjon for forbrukerendepunkt
- Binding:POST
- Indeks: i/t (0)
- URL-adresse: https://portal.contoso.com/signin-saml2
Konfigurer identiteter: Angi
https://portal.contoso.com/
, velg Legg til, og velg deretter Neste. Hvis aktuelt, kan du legge til flere identiteter for hver ekstra portal for beroende part. Brukere kan godkjenne på tvers av alle tilgjengelige identiteter.Velg godkjenningsregler for utstedelse: Velg La alle brukere få tilgang til denne beroende parten, og velg deretter Neste.
Klar til å legge til klarering: Velg Neste.
Velg Lukk.
Legg navne-ID-kravet til klareringen for den beroende parten:
Transformer Windows-kontonavnet til navne-ID-krav (Transformer et innkommende krav):
Innkommende kravtype: Windows-kontonavn
Utgående kravtype: Navne-ID
ID-format for utgående navn: Fast identifikator
Sende videre alle kravverdier
Konfigurere SAML 2.0-leverandøren
Etter at du har konfigurert AD FS-klarering for beroende part, kan du følge trinnene i Konfigurer en SAML 2.0-leverandør for portaler.
Pålogging igangsatt av identitetsleverandør
AD FS støtter profilen for identitetsleverandør–initiert enkel pålogging (SSO) for SAML-2.0-spesifikasjonen. For at portalen (tjenesteleverandør) skal svare riktig på SAML-forespørselen som startes av identitetsleverandøren, må RelayState-parameteren kodes riktig.
Den grunnleggende strengverdien som skal kodes i SAML-RelayState-parameteren må være i formatet ReturnUrl=/content/sub-content/
der /content/sub-content/
er banen til nettsiden du ønsker å gå til på portalen (tjenesteleverandør). Banen kan bli erstattet av en gyldig nettside på portalen. Strengverdien kodes og plasseres i en beholderstreng i formatet RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Hele strengen kodes på nytt og legges til en annen beholder i formatet <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Eksempel: gitt banen til tjenesteleverandøren, /content/sub-content/
og ID-en for beroende part, https://portal.contoso.com/
, konstruer nettadressen med denne fremgangsmåten:
Kod verdien
ReturnUrl=/content/sub-content/
for å fåReturnUrl%3D%2Fcontent%2Fsub-content%2F
Kod verdien
https://portal.contoso.com/
for å fåhttps%3A%2F%2Fportal.contoso.com%2F
Kod verdien
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
for å fåRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Legg til foran AD FS–identitetsleverandørinitiert SSO-bane for å få den endelige nettadressen
https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Du kan bruke følgende PowerShell-skript til å konstruere URL-adressen. Lagre skriptet i en fil med navnet 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
Konfigurere AD FS ved hjelp av PowerShell
Prosessen med å legge til en beroende partsklarering i AD FS kan også utføres ved å kjøre følgende PowerShell-skript på AD FS-serveren. Lagre skriptet i en fil med navnet Add-AdxPortalRelyingPartyTrustForSaml.ps1. Når skriptet er kjørt, kan du fortsette med å konfigurere innstillingene for portalområdet.
<#
.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
Konfigurer en SAML 2.0-leverandør
Etter at du har konfigurert AD FS-klarering for beroende part, kan du følge trinnene i Konfigurer en SAML 2.0-leverandør for portaler.
Se også
Konfigurer en SAML 2.0-leverandør for portaler med Azure AD
Vanlige spørsmål om bruk av SAML 2.0 i portaler
Konfigurer en SAML 2.0-leverandør for portaler
Obs!
Kan du fortelle oss om språkinnstillingene for dokumentasjonen? Ta en kort undersøkelse. (vær oppmerksom på at denne undersøkelsen er på engelsk)
Undersøkelsen tar rundt sju minutter. Det blir ikke samlet inn noen personopplysninger (personvernerklæring).