Konfigurere en SAML 2.0-udbyder for portaler med AD FS
Bemærk
Fra 12. oktober 2022 bliver Power Apps-portaler til Power Pages. Flere oplysninger: Microsoft Power Pages er nu generelt tilgængelig (blog)
Vi overfører og fletter snart dokumentationen til Power Apps-portalerne med Power Pages-dokumentationen.
Vigtigt
Trinnene til konfiguration af Active Directory Federation Services (AD FS) kan variere afhængigt af versionen af din AD FS-server.
Oprette en AD FS relying party-tillid
Bemærk
Se Konfigurere AD FS ved hjælp af PowerShell for oplysninger om, hvordan du udfører disse trin i et PowerShell-script.
Brug værktøjet AD FS Management, og gå til Service > Claim Descriptions.
Vælg Add Claim Description.
Angiv kravet:
Visningsnavn: Persistent Identifier
Krav-id: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Markér afkrydsningsfeltet for: Publish this claim description in federation metadata as a claim type that this federation service can accept
Markér afkrydsningsfeltet for: Publish this claim description in federation metadata as a claim type that this federation service can send
Vælg OK.
Brug værktøjet AD FS Management, og vælg Tillidsforhold >Relying Party-tillidsforhold.
Vælg Tilføj Relying Party-tillid.
Velkommen: Vælg Start.
Vælg datakilde: Vælg Angiv data om en relying party manuelt, og vælg derefter Næste.
Angiv vist navn: Angiv et navn, og vælg derefter Næste. Eksempel: https://portal.contoso.com/
Vælg profil: Vælg AD FS 2.0 profil, og vælg derefter Næste.
Konfigurer certifikat: Vælg Næste.
Konfigurer URL-adresse: Markér afkrydsningsfeltet Aktivér support for SAML 2.0 WebSSO-protokollen. URL-adresse til Relying party SAML 2.0 SSO-tjeneste: Angiv https://portal.contoso.com/signin-saml2
Bemærk, at AD FS kræver, at portalen kører på HTTPS.Bemærk
Det resulterende slutpunkt har følgende indstillinger:
- Slutpunkttype: SAML Assertion Consume Endpoints
- Binding: POST
- Indeks: i/t (0)
- URL-adresse: https://portal.contoso.com/signin-saml2
Konfigurere identiteter: Angiv
https://portal.contoso.com/
, vælg Tilføj, og vælg derefter Næste. Hvis det er relevant, kan du tilføje flere identiteter for hver ekstra relying party-portal. Brugere kan godkendes på tværs af en eller alle tilgængelige identiteter.Vælg regler for godkendelse af udstedelse: Vælg Giv alle brugere adgang til denne Relying Party, og vælg derefter Næste.
Klar til at tilføje tillid: Vælg Næste.
Vælg Luk.
Tilføj kravet Navn-id til den relying party-tillid:
Omdan navn på Windows-firma til Navn-id-krav (Transformér et indgående krav):
Indgående kravtype: Windows-kontonavn
Udgående kravtype: Navn-id
Id-format for udgående navn: Persistent Identifier
Passér gennem alle kravsværdier
Konfigurere SAML 2.0-udbyderen
Når du har konfigureret AD FS-relying party-tillidsforholdet, kan du udføre trinnene under Konfigurere en SAML 2.0-udbyder for portaler.
Identitetsudbyder–startet logon
AD FS understøtter den identitetsudbyder–initierede SSO (single sign-on) som profil for SAML 2.0-specifikation. Hvis portalen (tjenesteudbyder) skal svare korrekt på den SAML-anmodning, der er startet af identitetsudbyderen, skal RelayState-parameteren være kodet korrekt.
Den grundlæggende strengværdi, der skal kodes i SAML-RelayState-parameteren, skal have formatet ReturnUrl=/content/sub-content/
, hvor /content/sub-content/
er stien til den ønskede webside, der skal navigeres til på portalen (tjenesteudbyder). Stien kan erstattes af en hvilken som helst gyldig webside på portalen. Strengværdien kodes og placeres i en beholderstreng i formatet RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Hele strengen kodes igen og føjes til en anden objektbeholder med formatet <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Med eksempelvis tjenesteudbyderstien /content/sub-content/
og Relying Party-part-id'et https://portal.contoso.com/
skal du konstruere URL-adressen i følgende trin:
Kode værdien af
ReturnUrl=/content/sub-content/
for at fåReturnUrl%3D%2Fcontent%2Fsub-content%2F
Kode værdien af
https://portal.contoso.com/
for at fåhttps%3A%2F%2Fportal.contoso.com%2F
Kode værdien af
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
for at fåRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Indsæt den AD FS-identitetsudbyder–initierede SSO-sti for at få den endelige URL-adresse
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 bruge følgende PowerShell-script til at konstruere URL-adressen. Gem scriptet 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 hjælp af PowerShell
Processen for tilføjelse af et Relying Party-tillidsforhold i AD FS kan også udføres ved at køre følgende PowerShell-script på AD FS-serveren. Gem scriptet i en fil med navnet Add-AdxPortalRelyingPartyTrustForSaml.ps1. Efter kørsel af scriptet skal du fortsætte med at konfigurere indstillingerne for portalwebstedet.
<#
.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
Konfigurere en SAML 2.0-udbyder
Når du har konfigureret AD FS-relying party-tillidsforholdet, kan du udføre trinnene under Konfigurere en SAML 2.0-udbyder for portaler.
Se også
Konfigurere en SAML 2.0-udbyder for portaler med Azure AD
Ofte stillede spørgsmål om brug af SAML 2.0 i portaler
Konfigurere en SAML 2.0-udbyder for portaler
Bemærk
Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)
Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).