Portaalien SAML 2.0 -palvelun määrittäminen AD FS:n avulla

Huomautus

Power Apps -portaaleja kutsutaan 12. lokakuuta 2022 alkaen nimellä Power Pages. Lisätietoja: Microsoft Power Pages on nyt yleisesti saatavilla (blogi)
Siirrämme ja yhdistämme Power Apps -portaalien dokumentaation pian Power Pagesin dokumentaatioon.

Tärkeä

Active Directory Federation Services (AD FS) -määrityksen vaiheet voivat vaihdella AD FS -palvelimen version mukaan.

Välittävän osapuolen luominen AD FS:ään

Huomautus

Kohdassa AD FS:n määrittäminen PowerShellin avulla on lisätietoja näiden vaiheiden suorittaminen PowerShell-komentosarjalla.

  1. Valitse AD FS -hallintatyökalun avulla Palvelu > Vaatimusten kuvaukset.

    1. Valitse Lisää vaatimuksen kuvaus.

    2. Määritä vaatimus:

      • Näyttönimi: Pysyvä tunnus

      • Vaatimuksen tunnus: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

      • Ota käyttöön valintaruutu: Julkaise tämä vaatimuksen kuvaus yhdistämisen metatiedoissa vaatimustyyppinä, jonka yhdistämispalvelu voi hyväksyä

      • Ota käyttöön valintaruutu: Julkaise tämä vaatimuksen kuvaus yhdistämisen metatiedoissa vaatimustyyppinä, jonka yhdistämispalvelu voi lähettää

    3. Valitse OK.

  2. Valitse AD FS -hallintatyökalulla Luottamussuhteet >Luottavan osapuolen luottamukset.

    1. Valitse Lisää välittävä osapuoli.

    2. Tervetulos! Valitse Aloitus.

    3. Valitse tietolähde: Valitse Syötä välittävän osapuolen tiedot manuaalisesti ja valitse sitten Seuraava.

    4. Määritä näyttönimi: Kirjoita nimi ja valitse sitten Seuraava. Esimerkki: https://portal.contoso.com/

    5. Valitse profiili: Valitse ensin AD FS 2.0 -profiili ja sitten Seuraava.

    6. Määritä sertifikaatti: Valitse Seuraava.

    7. Määritä URL-osoite: Valitse Ota SAML 2.0 WebSSO -protokollan tuki käyttöön -valintaruutu. Välittävän osapuolen SAML 2.0 SSO -palvelun URL-osoite: Kirjoita https://portal.contoso.com/signin-saml2
      Huomaa, että AD FS edellyttää portaalin käyttävän HTTPS-salausta.

      Huomautus

      Tuloksena olevalla päätepisteellä on seuraavat asetukset:

    8. Määritä käyttäjätiedot: kirjoita https://portal.contoso.com/, valitse Lisää ja valitse sitten Seuraava. Tarvittaessa useita käyttäjätietoja voidaan lisätä jokaiselle välittävän osapuolen portaalille. Käyttäjät voidaan todentaa minkä tahansa tai kaikkien saatavien käyttäjätietojen avulla.

    9. Valitse käyttöoikeuksien myöntämissääntö: Valitse ensin Kaikki käyttäjät voivat käyttää ko. välittävää osapuolta ja sitten Seuraava.

    10. Osapuolen lisääminen valmis: Valitse Seuraava.

    11. Valitse Sulje.

  3. Lisää nimen tunnus -vaatimus välittävälle osapuolelle:

    Muunna Windows -tilin nimeksi nimen tunnus -vaatimus (muunna saapuva vaatimus):

    • Saapuvan vaatimuksen tyyppi: Windows-tilin nimi

    • Lähtevän vaatimuksen tyyppi: nimen tunnus

    • Lähtevän nimen tunnuksen muoto: Pysyvä tunnus

    • Läpäise kaikki vaatimusarvot

SAML 2.0 -toimittajan määrittäminen

Kun olet määrittänyt AD FS:n luottavan osapuolen luottamuksen, noudata ohjeita kohdassa Portaalien SAML 2.0 -palvelun määrittäminen.

Käyttäjätietopalveluun perustuva kirjautuminen

AD FS tukee tunnistetietojen toimittajaa – käynnistettyä kertakirjausta -profiilin SAML 2.0 määritystä. Jotta portaali (palveluntarjoaja) voisi vastata käyttäjätietopalvelun käynnistämään SAML-pyyntöön oikein, RelayState-parametri on koodattava oikein.

Perusmerkkijonoarvo, joka koodataan, SAML RelayState -parametriin on oltava muodossa: ReturnUrl=/content/sub-content/, jossa /content/sub-content/ on siirtyä polku haluttuun verkkosivuun portaalissa (palveluntarjoajassa). Polku voidaan korvata millä tahansa kelvollisella portaalin verkkosivulla. Merkkijonoarvo koodataan ja sijoitetaan säilön merkkijonoksi muodossa RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Koko merkkijono koodataan jälleen ja lisätään toiseen säilöön muodossa <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Esimerkiksi annettu palveluntarjoajan polku /content/sub-content/ ja luottavan osapuolen tunnus https://portal.contoso.com/ muodostavat URL-osoitteen seuraavasti:

  • Koodaa arvo ReturnUrl=/content/sub-content/ saadaksesi ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Koodaa arvo https://portal.contoso.com/ saadaksesi https%3A%2F%2Fportal.contoso.com%2F

  • Koodaa arvo RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F saadaksesi RPID%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 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

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 portaalisivuston asetuksien määrittämistä.

<# 

.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

SAML 2.0 -palvelun määrittäminen

Kun olet määrittänyt AD FS:n luottavan osapuolen luottamuksen, noudata ohjeita kohdassa Portaalien SAML 2.0 -palvelun määrittäminen.

Katso myös

Portaalien SAML 2.0 -palvelun määrittäminen Azure AD:n avulla
Usein kysyttyjä kysymyksiä SAML 2.0:n käytöstä portaalissa
Portaalien SAML 2.0 -palvelun määrittäminen

Huomautus

Voitko kertoa meille dokumentaatiota koskevan kielimäärityksesi? Vastaa lyhyeen kyselyyn. (Huomaa, että tämä kysely on englanninkielinen.)

Kyselyyn vastaaminen kestää noin seitsemän minuuttia. Henkilökohtaisia tietoja ei kerätä (tietosuojatiedot).