Nastavenie poskytovateľa SAML 2.0 s AD FS
Active Directory Federation Services (AD FS) je jedným z poskytovateľov identity SAML 2.0, ktorých môžete použiť na overovanie návštevníkov vašej lokality Power Pages. Môžete použiť ktoréhokoľvek poskytovateľa, ktorý s portálmi potvrdzuje špecifikáciu SAML 2.0.
V tomto článku sú opísané nasledujúce kroky:
- Nastaviť AD FS v Power Pages
- Vytvorte dôveryhodnú stranu spoliehajúcej sa na službu AD FS
- Dokončite nastavenie poskytovateľa
Dôležité
Kroky nastavenia služby AD FS sa môžu líšiť v závislosti od verzie servera AD FS.
Nastavenie AD FS v Power Pages
Nastavte AD FS ako poskytovateľa identity pre svoju lokalitu.
Na svojom Power Pages stránke vyberte Bezpečnosť>Poskytovatelia identity.
Ak sa nezobrazujú žiadni poskytovatelia identity, uistite sa, že je Externé prihlásenie nastavené na Zapnuté vo všeobecných nastaveniach overovania vašej lokality.
Vyberte možnosť + Nový poskytovateľ.
V časti Výber poskytovateľa prihlásenia stlačte Ostatné.
V rámci možnosti Protokol zvoľte SAML 2.0.
Zadajte názov poskytovateľa.
Názov poskytovateľa je text na tlačidle, ktorý sa používateľom zobrazí pri výbere poskytovateľa identity na prihlasovacej stránke.
Vyberte Ďalej.
V časti Adresa URL odpovede vyberte možnosť Kopírovať.
Nezatvárajte kartu prehliadača Power Pages. Čoskoro sa k nej vrátite.
Vytvoriť spoľahlivú stranu dôvery AD FS
Môžete tiež použiť skript PowerShell na vykonanie týchto krokov.
V Správcovi servera vyberte Nástroje a potom vyberte Správa AD FS.
Rozbaľte možnosť Služba.
Na paneli na pravej strane vyberte možnosť Pridať popis deklarácie identity.
Zadajte nasledujúce hodnoty:
Zobrazovaný názov: Trvalý identifikátor
Identifikátor nároku: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Vyberte obe možnosti Zverejniť tento popis deklarácie identity v metadátach federácie… .
Vyberte položku OK.
Vyberte Vzťahy dôvery>Spoľahlivé dôveryhodné strany.
Kliknite na Pridať spoľahlivú dôveryhodnú stranu.
Vyberte možnosť Začať.
Zvoľte Manuálne zadávanie údajov o spoľahlivej strane a potom kliknite na Ďalej.
Zadajte názov; napríklad https://portal.contoso.com/.
Vyberte Ďalej.
Vyberte Profil AD FS 2.0 a potom vyberte položku Ďalej.
Na stránke Konfigurovať Certifikát vyberte Ďalej.
Vyberte možnosť Zapnúť podporu protokolu SAML 2.0 WebSSO.
V časti Adresa URL služby jednotného prihlásenia prijímajúcej strany SAML 2.0 zadajte adresu URL odpovede , ktorú ste skopírovali. AD FS vyžaduje, aby webová lokalita bežala na HTTPS, nie HTTP.
Vyberte Ďalej.
Na stránke Konfigurácia identifikátorov zadajte adresu URL svojej lokality a potom vyberte možnosť Pridať.
Ak je to potrebné, môžete pridať viac identít pre každý ďalší portál spoliehajúcej strany. Používatelia sa môžu overiť použitím akýchkoľvek dostupných identít.
Vyberte Ďalej.
Na stránke Konfigurovať viacfaktorovú autentifikáciu teraz? vyberte Nechcem konfigurovať nastavenia viacfaktorovej autentifikácie pre túto dôveru spoliehajúcej sa strany na tentoraz.
Na stránke Vybrať pravidlá vyhľadávania autorizácie vyberte Povoliť všetkým používateľom prístup k tejto spoliehajúcej sa strane a potom kliknite na Ďalej.
Skontrolujte nastavenia dôvery a následne vyberte položku Ďalej.
Vyberte Zavrieť.
V časti Upraviť pravidlá nároku vyberte jednu z nasledujúcich kariet v závislosti od dôveryhodnosti, ktorú upravujete a v ktorej skupine pravidiel chcete pravidlo vytvoriť:
- Pravidlá transformácie prijatia
- Pravidlá transformácie vydávania
- Pravidlá oprávnenia na vydanie
- Pravidlá poverenia
Vyberte Pridať pravidlo.
V zozname Šablóna pravidla nároku vyberte Transformovať prichádzajúci nárok a potom vyberte Ďalej.
Zadajte alebo si vyberte nasledujúce hodnoty:
Nárokovať názov pravidla : Transformujte názov účtu Windows na ID názvu
Typ prichádzajúcej pohľadávky : Názov účtu Windows
Typ odchádzajúcej reklamácie : ID mena
Formát ID odchádzajúceho mena: Trvalý identifikátor
Vyberte Prejsť všetky hodnoty nároku.
Vyberte Zatvoriť a potom stlačte možnosť OK.
Dokončite nastavenie poskytovateľa
Po nastavení dôveryhodnosti spoliehajúcej sa strany AD FS:
Prihlásenie inicializované poskytovateľom identity
AD FS podporuje poskytovateľom identity iniciované jediné prihlásenie (SSO) cez IdP profil so špecifikáciou SAML 2.0. Aby web poskytovateľa služieb správne reagoval na požiadavku SAML poskytovateľa identity, musíte kódovať parameter RelayState
.
Základná hodnota reťazca, ktorá bude zakódovaná do parametra SAML RelayState
, musí byť vo formáte ReturnUrl=/content/sub-content/
, kde je /content/sub-content/
cesta k požadovanej stránke na webovej lokalite poskytovateľa služby. Môžete zadať cestu k akejkoľvek platnej stránke na webovej lokalite. Hodnota reťazca je zakódovaná a umiestnená do zásobníka reťazca formátu RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Celý reťazec je opäť zakódovaný a pridaný do iného zásobníka vo formáte <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Napríklad cesta poskytovateľa služieb /content/sub-content/
a identifikátor spoľahlivej strany https://portal.contoso.com/
vytvárajú adresu URL na základe nasledovných krokov:
Zakódujte hodnotu
ReturnUrl=/content/sub-content/
na získanieReturnUrl%3D%2Fcontent%2Fsub-content%2F
Zakódujte hodnotu
https://portal.contoso.com/
na získaniehttps%3A%2F%2Fportal.contoso.com%2F
Zakódujte hodnotu
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
na získanieRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Na začiatok pripojte AD FS poskytovateľom identity iniciovanú cestu SSO a získajte koncovú adresu 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
Na zostavenie adresy URL môžete použiť nasledujúci skript PowerShell. Uložte skript do súboru s názvom 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
Konfigurácia AD FS pomocou PowerShell
Namiesto pridania dôveryhodnosti prijímajúcej strany do služby AD FS môžete manuálne spustiť nasledujúci skript PowerShell na serveri AD FS. Uložte skript do súboru s názvom Add-AdxPortalRelyingPartyTrustForSaml.ps1
. Po spustení skriptu pokračujte konfiguráciou nastavenia lokality v 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
Pozrite si tiež
Nastavte poskytovateľa SAML 2.0
Nastavte poskytovateľa SAML 2.0 s Microsoft Entra ID
Najčastejšie otázky týkajúce sa SAML 2.0