SAML 2.0 -palveluntarjoajan määrittäminen AD FS:n avulla
Active Directory Federation Services (AD FS) on yksi SAML 2.0 -tunnistetietojen palveluntarjoajista, jonka avulla on mahdollista todentaa vierailijoita Power Pages -sivustolla. Voit käyttää mitä tahansa palvelua, joka noudattaa SAML 2.0 -määrityksiä.
Tässä artikkelissa käsitellään seuraavat vaiheet:
- Määritä AD FS Power Pagesissa
- Välittävän osapuolen luominen AD FS:ään
- Palvelutarjoajan asetusten määrittämisen viimeistely
Tärkeää
AD FS -määrityksen vaiheet voivat vaihdella AD FS -palvelimesi version mukaan.
Määritä AD FS Power Pagesissa
Määritä AD FS sivustosi tunnistetietojen palveluntarjoajaksi.
Valitse Power Pages -sivustollasi Suojaus>Tunnistetietojen toimittajat.
Jos yhtään tunnistetietojen palveluntarjoajaa ei tule näkyviin, varmista, että Ulkoinen sisäänkirjautuminen on määritetty arvoon Käytössä sivustosi yleisissä todennusasetuksissa.
Valitse + Uusi palveluntarjoaja.
Valitse kohdassa Valitse kirjautumisen toimittaja Muu.
Valitse Protokolla-kohdassa SAML 2.0.
Anna palveluntarjoajan nimi.
Palveluntarjoajan nimi on teksti, joka näkyy painikkeessa, jonka käyttäjät näkevät, kun he valitsevat tunnistetietojen palveluntarjoajan sisäänkirjautumissivulla.
Valitse Seuraava.
Valitse Vastaus-URL-osoite -kohdasta Kopioi.
Älä sulje Power Pages -selainvälilehteä. Palaat vielä sille.
Välittävän osapuolen luominen AD FS:ään
Voit suorittaa nämä vaiheet myös PowerShell-komentosarjan avulla.
Valitse Server Managerissa Työkalut ja valitse sitten AD FS:n hallinta.
Laajenna Palvelu.
Valitse oikeanpuoleisessa sivuruudussa Lisää vaatimuksen kuvaus.
Syötä seuraavat arvot:
Näyttönimi: Pysyvä tunnus
Vaatimuksen tunnus: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Valitse molemmat Julkaise tämä vaatimuksen kuvaus yhdistämisen metatiedoissa… -asetukset.
Valitse OK.
Valitse Luottamussuhteet>Välittävien osapuolien luottamukset.
Valitse Lisää välittävä osapuoli.
Valitse Aloita.
Valitse Anna luottavan osapuolen tiedot manuaalisesti ja valitse sitten Seuraava.
Kirjoita nimi, esimerkiksi https://portal.contoso.com/.
Valitse Seuraava.
Valitse ensin AD FS 2.0 -profiili ja sitten Seuraava.
Valitse Määritä sertifikaatti -sivulla Seuraava.
Valitse Salli SAML 2.0 WebSSO -protokollan tuki.
Anna Välittävän osapuolen SAML 2.0 SSO -palvelun URL-osoite -kohdassa vastaus-URL, jonka kopioit. AD FS edellyttää, että portaali käyttää HTTPS-protokollaa, ei HTTP-protokollaa.
Valitse Seuraava.
Kirjoita Määritä tunnisteet -sivulle sivuston URL-osoite ja valitse sitten Lisää.
Tarvittaessa enemmän käyttäjätietoja voidaan lisätä jokaiselle välittävän osapuolen sivustolle. Käyttäjät voidaan todentaa minkä tahansa käytettävissä olevien käyttäjätietojen avulla.
Valitse Seuraava.
Valitse Määritetäänkö monivaiheinen todennus nyt? -sivulla En halua nyt määrittää monivaiheisen todentamisen asetuksia tälle välittävän osapuolen luottamukselle.
Valitse Valitse käyttöoikeuksien myöntämissäännöt -sivulla Kaikki käyttäjät voivat käyttää välittävää osapuolta ja sitten Seuraava.
Tarkasta luottamusasetukset ja valitse Seuraava.
Valitse Sulje.
Valitse Muokkaa vaatimussääntöjä -kohdassa jokin seuraavista välilehdistä muokattavan luottamuksen ja luotavan säännön sääntöjoukon mukaan:
- Hyväksynnän muuntosäännöt
- Myöntämisen muuntosäännöt
- Myöntämisen valtuutussäännöt
- Delegoinnin valtuutussäännöt
Valitse Lisää sääntö.
Valitse Vaatimuksen sääntömalli - luettelosta Muunna saapuva vaatimus ja valitse sitten Seuraava.
Anna tai valitse seuraavat arvot:
Vaatimuksen säännön nimi: Muunna Windows-tilin nimi nimitunnukseksi
Saapuvan vaatimuksen tyyppi: Windows-tilin nimi
Lähtevän vaatimuksen tyyppi: nimen tunnus
Lähtevän nimen tunnuksen muoto: Pysyvä tunnus
Valitse Läpäise kaikki vaatimusarvot.
Valitse ensin Valmis ja sitten OK.
Palvelutarjoajan asetusten määrittämisen viimeistely
Kun olet määrittänyt AD FS:n välittävän osapuolen luottamuksen:
Käyttäjätietopalveluun perustuva kirjautuminen
AD FS tukee tunnistetietojen toimittajan käynnistämä kertakirjaus (SSO) -profiilia SAML 2.0 -määrityksen mukaisesti. Jotta palveluntarjoajan sivusto voi vastata oikein tunnistetietopalvelun SAML-pyyntöön, RelayState
-parametri on koodattava.
Perusmerkkijonoarvo, joka koodataan SAML RelayState
-parametriin on oltava muodossa ReturnUrl=/content/sub-content/
, jossa /content/sub-content/
on polku haluttuun sivuun palveluntarjoajan sivustossa. Voit määrittää polun mihin tahansa verkkosivuston kelvollisen sivuun. Merkkijonoarvo koodataan ja sijoitetaan säilömerkkijonoon muodossa RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Koko merkkijono koodataan jälleen ja lisätään toiseen säilöön muodossa <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Esimerkiksi, jos on annettu palveluntarjoajan polku /content/sub-content/
ja luottavan osapuolen tunnus https://portal.contoso.com/
, muodosta URL-osoite seuraavasti:
Koodaa arvo
ReturnUrl=/content/sub-content/
saadaksesiReturnUrl%3D%2Fcontent%2Fsub-content%2F
Koodaa arvo
https://portal.contoso.com/
saadaksesihttps%3A%2F%2Fportal.contoso.com%2F
Koodaa arvo
RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F
saadaksesiRPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
Liittämällä alkuun AD FS -käyttäjätietopalveluun perustuva SSO-polku saadaan lopullinen URL-osoite
https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F
URL-osoite voidaan muodostaa seuraavalla PowerShell-komentosarjalla. Tallenna komentosarja Get-IdPInitiatedUrl.ps1
-nimiseen tiedostoon.
<#
.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:n määrittäminen PowerShellin avulla
Luottavan osapuolen luottamuksen lisääminen AD FS:ään voidaan tehdä myös suorittamalla PowerShell-komentosarja AD FS -palvelimessa. Tallenna komentosarja Add-AdxPortalRelyingPartyTrustForSaml.ps1
-nimiseen tiedostoon. Kun komentosarja on suoritettu, jatka sivuston asetusten määritystä Power Pagesissa.
<#
.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
Katso myös
SAML 2.0 ‑palveluntarjoajan määrittäminen
SAML 2.0 -palveluntarjoajan määrittäminen Microsoft Entra ID:n avulla
SAMI 2.0 – USEIN KYSYTYT KYSYMYKSET