Konfigurera SAML 2.0-provider med AD FS
Active Directory Federation Services (AD FS) är en av de SAML 2.0 identitetsprovider du kan använda för att autentisera besökare på din Power Pages-webbplats. Du kan använda vilken annan provider som helst som följer SAML 2.0-specifikation.
Denna artikel beskriver följande steg:
- Konfigurera AD FS i Power Pages
- Skapa en AD FS beroende parts förtroende
- Slutför inställningen av leverantören
Viktigt!
Stegen för konfigurationen av AD FS kan variera beroende på vilken version av AD FS-servern du har.
Konfigurera AD FS i Power Pages
Konfigurera AD FS som en identitetskälla för webbplats
På din Power Pages-webbplats kan du välja Säkerhet>Identitetsproviders.
Om inga identitetsleverantörer visas, se till Extern inloggning anges till På i webbplatsens allmänna autentiseringsinställningar.
Välj + Ny provider.
Under Välj inloggningsprovider som Annat.
Under protokoll som SAML 2.0.
Ange ett namn på leverantören.
Leverantörens namn är texten på knappen som användare ser när de väljer sin identitetsleverantör på inloggningssidan.
Välj Nästa.
Under Svars-URL, välj Kopiera.
Stäng inte webbläsarfliken Power Pages. Du kommer snart tillbaka till det.
Skapa en AD FS beroende parts förtroende
Du kan också använda ett PowerShell-skript för att utföra dessa steg.
I Serverhanteraren, välj Verktyg och välj sedan AD FS-hantering.
Visa tjänst.
I vänster panel väljer du Lägg till beskrivning av anspråk.
Ange följande värden:
Visningsnamn: Permanent identifierare
Anspråksidentifierare: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Markera båda Publicera den här anspråksbeskrivningen i federationsmetadata… alternativ.
Välj OK.
Välj Förtroenderelationer>Beroende parts förtroende.
Välj Lägg till beroende parts förtroende.
Välj start.
Välj Ange data som berör beroende part manuellt och välj sedan Nästa.
Ange ett namn, till exempel https://portal.contoso.com/.
Välj Nästa.
Välj AD FS 2.0 profil, och välj Nästa.
På sidan Konfigurera certifikat välj Nästa.
Välj Aktivera support för SAML 2.0 WebSSO-protokollet.
Under förlitande part SAML 2.0 SSO tjänst-URL, ange det svars-URL du kopierade. Obs! AD FS kräver att webbplatsen kör HTTPS, inte HTTP.
Välj Nästa.
På sidan Konfigurera identifierare ange webbplatsens URL och välj Lägg till.
Du kan lägga till fler identiteter för varje ytterligare beroende parts webbplats om det behövs. Användare kan autentisera med alla tillgänglig identiteter.
Välj Nästa.
På sidan konfigurera multifaktorautentisering nu?, välj Jag vill inte konfigurera inställningar av multifaktorautentisering för denna förlitande part för närvarande.
På sidan Välj utfärdande auktoriseringsregler, välj Tillåt alla användare att få åtkomst till denna beroende part och sedan Nästa.
Granska inställningar av förtroende och välj sedan Nästa.
Välj Stäng.
I Redigera anspråksregler, väljer du en av följande flikar, beroende på vilket förtroende du redigerar och i vilken regeluppsättning du vill skapa regeln:
- Regler för acceptansomvandling
- Regler för utfärdande omvandling
- Regler för utfärdande auktorisering
- Regler för delegering av auktorisering
Välj Lägg till regel.
I listan Mall för anspråksregel, välj Omvandla ett inkommande anspråk och välj Nästa.
Ange eller välj följande värden:
Namnet på anspråksregeln: Omvandla Windows-kontonamnet till namn-ID
Inkommande anspråkstyp: Windows-kontonamn
Utgående anspråkstyp: Namn-ID
Utgående namn-ID-format: Permanent identifierare
Välj Passera alla anspråksvärden.
Välj Avsluta, och välj OK.
Slutför inställningen av leverantören
När du har ställt in AD FS beroende parts förtroende:
Identitetsleverantörinitierad inloggning
AD FS stöder profilen identitetsprovider-initierad enkel inloggning (SSO) för SAML 2.0-specifikationen. För att tjänstleverantörens webbplats ska kunna svara korrekt på identitetsproviderns SAML-begäran måste du koda RelayState
parametern.
Grundläggande strängvärde som ska kodas i SAML RelayState
-parametern måste vara i formatet ReturnUrl=/content/sub-content/
, där /content/sub-content/
är sökvägen till sidan du vill gå till på tjänsteleverantörens webbplats. Du kan ange sökvägen till en giltig sida på webbplatsen. Strängvärdet kodas och placeras i en behållarsträng i formatet: RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Hela strängen kodas återigen och läggs till en annan behållare av formatet: <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Exempelvis anges sökvägen tjänstleverantör: /content/sub-content/
och beroende parts ID: https://portal.contoso.com/
, bygger upp URL:en med stegen:
Koda värdet
ReturnUrl=/content/sub-content/
för att fåReturnUrl%3D%2Fcontent%2Fsub-content%2F
Koda värdet
https://portal.contoso.com/
för att fåhttps%3A%2F%2Fportal.contoso.com%2F
Koda värdet
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
för att fåRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Lägg till AD FS identitetsprovider-initierad SSO-sökväg för att få slutgiltigt URL
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 skapa URL:en med hjälp av följande PowerShell-skript. Spara skriptet i en fil med namnet 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
Konfigurera AD FS genom att använda PowerShell
Istället för att lägga till ett förlitande part-förtroende manuellt i AD FS kan köra följande PowerShell-skript på AD FS-servern. Spara skriptet i en fil med namnet Add-AdxPortalRelyingPartyTrustForSaml.ps1
. När skriptet har körts fortsätter du att konfigurera webbplatsinställningarna i 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
Se även
Konfigurera SAML 2.0-provider
Konfigurera SAML 2.0-provider med Microsoft Entra ID
Vanliga frågor och svar om SAML 2.0