„SAML 2.0“ teikėjo su AD FS nustatymas
„Active Directory“ susiejimo tarnyba (AD FS) yra viena iš „SAML 2.0“ tapatybės teikėjų, kuriuos galite naudoti autentifikuodami savo „Power Pages“ svetainės lankytojus. Galite naudoti bet kurį kitą teikėją, atitinkantį „SAML 2.0“ specifikaciją.
Šiame straipsnyje aprašomi toliau nurodyti veiksmai:
Svarbu
Žingsniai, kaip nustatyti AD FS gali skirtis priklausomai nuo jūsų AD FS serverio versijos.
Nustatyti AD FS Power Pages
AD FS, kaip jūsų svetainės tapatybės teikėjo, nustatymas.
Savo Power Pages svetainėje pasirinkite Saugos>tapatybės teikėjai.
Jei nerodoma jokių tapatybės teikėjų, savo svetainės bendruosiuose autentifikavimo parametruose patikrinkite, ar Išorinis prisijungimas nustatytas kaip Įjungtas.
Pasirinkite + Naują teikėją.
Skiltyje Pasirinkite prisijungimo paslaugų teikėją pasirinkite Kita.
Skiltyje Protokolas pasirinkite „SAML 2.0“.
Įveskite internetinių seminarų rengėjo pavadinimą.
Teikėjo pavadinimas yra tekstas ant mygtuko, kurį naudotojai mato, kai jie pasirenka savo tapatybės teikėją prisijungimo puslapyje.
Pasirinkite Toliau.
Dalyje Atsakymo URL pasirinkite Kopijuoti .
Neuždarykite naršyklės „Power Pages“ skirtuko. Greitai prie jo sugrįšite.
AD FS susiejamos dalies patikimumo kūrimas
Be to, norėdami atlikti šiuos veiksmus, galite naudoti „PowerShell“ scenarijų.
Serverio tvarkytuve pasirinkite Įrankiai, tada – AD FS valdymas.
Išplėskite skiltįAptarnavimas.
Dešiniajame skyde pasirinkite Pridėti pareiškimų žymėjimus.
Įveskite toliau nurodytas reikšmes:
Rodomas pavadinimas: Nuolatinis identifikatorius
Ieškinio identifikatorius: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Pažymėkite abi Reikalavimo aprašo publikavimo susiejimo metaduomenyse… parinktis.
Pasirinkite Gerai.
Pasirinkite Patikimi ryšiai>Susiejamos dalies patikimumas.
Pasirinkite Įtraukti susiejamos dalies patikimumą.
Pasirinkite Pradėti.
Rinkitės Įvesti duomenis apie pagrįstą šalį rankiniu būdu ir tada rinkitės Kitas.
Įveskite pavadinimą; pavyzdžiui „https://portal.contoso.com/.
Pasirinkite Toliau.
Pasirinkite AD FS 2.0 profile, tada pasirinkite Toliau.
Puslapyje Sukonfigūruoti sertifikatą pasirinkite Sekantis.
Pažymėkite Įjungti „SAML 2.0 WebSSO“ protokolo palaikymą.
Dalyje Pasikliaujančios šalies „SAML 2.0 SSO“ tarnybos URL, įveskite nukopijuotą atsakymo URL. AD FS reikalauja, kad tinklalapis veiktų naudodamas HTTPS, bet ne HTTP.
Pasirinkite Toliau.
Puslapyje Konfigūruoti identifikatorius įveskite svetainės URL ir pasirinkite Įtraukti.
Galite pridėti daugiau kiekvieno papildomo susiejamos dalies tinklalapio tapatybių, jei reikia. Vartotojai gali autentifikuoti naudodami bet kurią prieinamą tapatybę.
Pasirinkite Toliau.
Ar dabar konfigūruojate kelių dalių autentifikavimą? puslapyje, pažymėkite Šiuo metu nenorite konfigūruoti kelių dalių autentifikavimo parametrų, kad būtų galimas šios pasikliaujančios šalies patikimumas.
Puslapyje Pasirinkite išdavimo autorizavimo taisykles pasirinkite Leisti visiems vartotojams pasiekti šią susiejamą dalį, ir tada pasirinkite Sekantis.
Peržiūrėkite patikimumo parametrus ir tuomet pasirinkite Kitas.
Pasirinkite Uždaryti.
Dalyje "Redaguoti taisyklių reikalavimus" pasirinkite vieną iš šių skirtukų, atsižvelgdami į redaguojamo patikimumo ir taisyklių, kurias norite sukurti taisyklę, rinkinį:
- Priėmimo transformavimo taisyklės
- Išleidimo pakeitimo taisyklės
- Išdavimo leidimo taisyklės
- Delegavimo leidimų išdavimo taisyklės
Pasirinkite Įtraukti taisyklę.
Sąraše " Reikalavimo taisyklės šablonas " pasirinkite Pertvarkyti gaunamą reikalavimą, tada pasirinkite Kitas.
Įveskite arba pasirinkite tolesnes vertes:
Reikalavimo taisyklės pavadinimas: Pakeiskite "Windows" abonemento pavadinimą į Vardo ID
Gaunamo prašymo tipas: "Windows" abonemento pavadinimas
Siunčiamo prašymo tipas: Vardo ID
Siunčiamo vardo ID formatas: Nuolatinis identifikatorius
Pasirinkite Peržiūrėkite visas pranešimo reikšmes.
Pasirinkite Užbaigti, tada – Gerai.
Baigti nustatyti teikėją
Nustatę AD FS priklausomos šalies patikimumą:
Tapatybės tiekėjo inicijuojamas prisijungimas
AD FS palaiko tapatybės teikėjo inicijuojamą bendrosios autentifikacijos (SSO) profilį „SAML 2.0“ specifikacijoje. Kad paslaugų teikėjų žiniatinklio svetainė tinkamai atsakų į tapatybės paslaugų teikėjų SAML užklausą, turite koduoti parametrą RelayState
.
Pagrindinė eilutės vertė, kuri turi būti koduojama į „SAML“ RelayState
parametrą turi būti formato ReturnUrl=/content/sub-content/
, kuris /content/sub-content/
yra kelias į žiniatinklio puslapį, kurį norite aplankyti paslaugos teikėjo svetainėje. Galite nurodyti bet kurio galiojančio svetainės puslapio kelią. Eilutės vertė yra užkoduota ir padėta į talpyklą eilutės formatu RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Visa eilutė dar kartą yra užkoduojama į kitą talpyklą formatu <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Pavyzdžiui, duotas paslaugos tiekėjo kelias /content/sub-content/
ir pasikliaujamos šalies ID https://portal.contoso.com/
, sudaro URL su toliau nurodytais žingsniais.
Užkoduokite vertę
ReturnUrl=/content/sub-content/
, kad gautumėteReturnUrl%3D%2Fcontent%2Fsub-content%2F
Užkoduokite vertę
https://portal.contoso.com/
, kad gautumėtehttps%3A%2F%2Fportal.contoso.com%2F
Užkoduokite vertę
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
, kad gautumėteRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Iš anksto nustatytas AD FS tapatybės tiekėjo inicijuotas SSO kelias siekiant gauti galutinį 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
Galite naudoti tolesnį „PowerShell“ scenarijų, kad sukurtumėte URL. Įrašykite scenarijų į failą pavadinimu 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
AD FS konfigūravimas naudojant „PowerShell‟
Vietoje to, kad pradėtumėte susijusios šalies įtraukimą rankiniu būdu AD FS, galite vykdyti toliau nurodytą „PowerShell“ scenarijų AD FS serveryje. Įrašykite scenarijų į failą pavadinimu Add-AdxPortalRelyingPartyTrustForSaml.ps1
. Kai scenarijus bus vykdomas, tęskite svetainės parametrų konfigūravimą „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
Taip pat žr.
SAML 2.0 teikėjo nustatymas
SAML 2.0 teikėjo su Microsoft Entra ID nustatymas
SAML 2.0 DUK