Konfigurasikan pembekal SAML 2.0 untuk portal dengan AD FS

Nota

Berkuat kuasa pada 12 Oktober 2022, portal Power Apps ialah Power Pages. Maklumat lanjut: Microsoft Power Pages kini tersedia secara umum (blog)
Kami akan memindahkan dan menggabungkan dokumentasi portal Power Apps dengan dokumentasi Power Pages tidak lama lagi.

Penting

Langkah untuk konfigurasi Active Directory Federation Services (AD FS) mungkin berbeza bergantung pada versi pelayan AD FS anda.

Cipta kepercayaan pihak bergantung AD FS

Nota

Lihat Konfigurasikan AD FS dengan menggunakan PowerShell, untuk mendapatkan maklumat tentang cara melaksanakan langkah ini dalam skrip PowerShell.

  1. Menggunakan alat Pengurusan AD FS, pergi ke Perkhidmatan > Perihalan Tuntutan.

    1. Pilih Tambah Perihalan Tuntutan.

    2. Tentukan tuntutan:

      • Nama paparan: Pengecam Berterusan

      • Pengecam tuntutan: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

      • Dayakan kotak semak untuk: Terbitkan perihalan tuntutan ini dalam metadata persekutuan sebagai jenis tuntutan yang perkhidmatan persekutuan ini boleh terima

      • Dayakan kotak semak untuk: Terbitkan perihalan tuntutan ini dalam metadata persekutuan sebagai jenis tuntutan yang perkhidmatan persekutuan ini boleh hantar

    3. Pilih OK.

  2. Menggunakan alat Pengurusan AD FS, pilih Perhubungan Kepercayaan >Kepercayaan Pihak Bergantung.

    1. Pilih Tambah Kepercayaan Pihak Bergantung.

    2. Selamat Datang: Pilih Mula.

    3. Pilih Sumber Data: Pilih Masukkan data tentang pihak bergantung secara manual, kemudian pilih Seterusnya.

    4. Tentukan Nama Paparan: Masukkan nama dan kemudian pilih Seterusnya. Contoh: https://portal.contoso.com/

    5. Pilih Profil: Pilih Profil AD FS 2.0 dan kemudian pilih Seterusnya

    6. Konfigurasikan Sijil: Pilih Seterusnya.

    7. Konfigurasi URL: Pilih kotak semak Dayakan sokongan untuk protokol SAML 2.0 WebSSO. URL perkhidmatan SAML 2.0 SSO pihak bergantung: Masukkan https://portal.contoso.com/signin-saml2
      Ambil perhatian bahawa AD FS memerlukan portal berjalan pada HTTPS.

      Nota

      Titik tamat yang terhasil mempunyai tetapan berikut:

    8. Konfigurasikan Identiti: Masukkan https://portal.contoso.com/, pilih Tambah dan kemudian pilih Seterusnya. Jika berkenaan, anda boleh menambah lebih banyak identiti untuk setiap portal pihak bergantung tambahan. Pengguna dapat mengesahkan merentasi mana-mana atau semua identiti yang tersedia.

    9. Pilih Peraturan Pengesahan Pengeluaran: Pilih Benarkan semua pengguna mengakses pihak bergantung ini, kemudian pilih Seterusnya.

    10. Sedia untuk Tambah Kepercayaan: Pilih Seterusnya.

    11. Pilih Tutup.

  3. Tambah tuntutan ID Nama pada kepercayaan pihak bergantung:

    Ubah nama akaunWindows kepada tuntutan Name ID (Ubah Tuntutan Masuk):

    • Jenis tuntutan masuk: nama akaun Windows

    • Jenis tuntutan keluar: ID Nama

    • Format ID nama keluar: Pengecam Berterusan

    • Melalui semua nilai tuntutan

Konfigurasikan pembekal SAML 2.0

Selepas menubuhkan AD FS yang bergantung kepada kepercayaan parti, anda boleh mengikuti langkah-langkah dalam Konfigurasikan penyedia SAML 2.0 untuk portal.

Pembekal identiti–yang daftar masuk dimulakan

AD FS menyokong profil pembekal identiti–yang daftar masuk tunggal (SSO) dimulakan bagi spesifikasi SAML 2.0. Untuk membolehkan portal (pembekal perkhidmatan) memberi respons dengan betul kepada permintaan SAML yang dimulakan oleh pembekal identiti, parameter RelayState mesti dikodkan dengan betul.

Nilai rentetan asas untuk dikodkan ke dalam parameter SAML RelayState mesti berada dalam format ReturnUrl=/content/sub-content/ yang mana /content/sub-content/ ialah laluan ke laman web yang dikehendaki untuk menavigasi ke dalam portal ini (pembekal perkhidmatan). Laluan boleh digantikan dengan sebarang halaman web yang sah pada portal. Nilai rentetan dikodkan dan ditempatkan ke dalam rentetan bekas format RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt;. Keseluruhan rentetan ini sekali lagi dikodkan dan ditambah pada bekas format lain <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Contohnya, diberikan laluan pembekal perkhidmatan /content/sub-content/ dan ID pihak bergantung https://portal.contoso.com/, bina URL dengan langkah berikut:

  • Kodkan nilai ReturnUrl=/content/sub-content/ untuk mendapatkan ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • Kodkan nilai https://portal.contoso.com/ untuk mendapatkan https%3A%2F%2Fportal.contoso.com%2F

  • Kodkan nilai RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F untuk mendapatkan RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • Tambah pembekal identiti AD FS–yang laluan SSO dimulakan untuk mendapatkan URL akhir https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

Anda boleh menggunakan skrip PowerShell berikut untuk membina URL. Simpan skrip ke fail yang dinamakan Get-IdPInitiatedUrl.ps1.

<#

.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

Konfigurasi AD FS menggunakan PowerShell

Proses penambahan kepercayaan pihak bergantung dalam AD FS juga boleh dilaksanakan dengan menjalankan skrip PowerShell berikut pada pelayan AD FS. Simpan skrip ke fail yang dinamakan Add-AdxPortalRelyingPartyTrustForSaml.ps1. Selepas menjalankan skrip, teruskan dengan mengkonfigurasi tetapan tapak portal.

<# 

.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

Konfigurasikan pembekal SAML 2.0

Selepas menetapkan kepercayaan pihak bergantung AD FS, anda boleh mengikuti langkah dalam Konfigurasikan pembekal SAML 2.0 untuk portal.

Lihat juga

Konfigurasikan pembekal SAML 2.0 untuk portal dengan Azure AD
Soalan Lazim untuk menggunakan SAML 2.0 dalam portal
Mengkonfigurasikan pembekal SAML 2.0 untuk portal

Nota

Adakah anda boleh memberitahu kami tentang keutamaan bahasa dokumentasi anda? Jawab tinjauan pendek. (harap maklum bahawa tinjauan ini dalam bahasa Inggeris)

Tinjauan akan mengambil masa lebih kurang tujuh minit. Tiada data peribadi akan dikumpulkan (pernyataan privasi).