Kongsi melalui


Sediakan pembekal SAML 2.0 dengan AD FS

Perkhidmatan Persekutuan Direktori Aktif (AD FS) ialah salah satu pembekal identiti SAML 2.0 yang boleh anda gunakan untuk mengesahkan pelawat ke tapak web Power Pages anda. Anda boleh menggunakan mana-mana pembekal lain yang mematuhi spesifikasi SAML 2.0.

Artikel ini menerangkan langkah-langkah berikut:

Penting

Langkah-langkah untuk menyediakan AD FS mungkin berbeza-beza bergantung pada versi pelayan AD FS anda.

Sediakan AD FS dalam Power Pages

Tetapkan AD FS sebagai pembekal identiti untuk tapak anda.

  1. Dalam tapak Power Pages anda, pilih Sediakan>Pembekal identiti.

    Jika tiada pembekal identiti muncul, pastikan Log masuk luaran ditetapkan kepada Hidupkan dalam tapak tetapan pengesahan umum anda.

  2. Pilih + Pembekal baharu.

  3. Di bawah Pilih pembekal log masuk, pilih Lain-lain.

  4. Di bawah Protokol, pilih SAML 2.0.

  5. Masukkan nama untuk pembekal.

    Nama pembekal ialah teks pada butang yang pengguna lihat apabila mereka memilih pembekal identiti mereka pada halaman daftar masuk.

  6. Pilih Seterusnya.

  7. Di bawah URL Balas, pilih Salin.

    Jangan tutup tab pelayar Power Pages anda. Anda akan kembali kepadanya tidak lama lagi.

Cipta kepercayaan pihak bergantung AD FS

Anda juga boleh menggunakan skrip PowerShell untuk melakukan langkah ini.

  1. Dalam Pengurus Pelayan, pilih Alat dan kemudian pilih Pengurusan AD FS.

  2. Kembangkan Perkhidmatan.

  3. Dalam panel sebelah kanan, pilih Tambah Perihalan Tuntutan.

  4. Masukkan nilai berikut:

    • Nama paparan: Pengecam Berterusan

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

    • Pilih kedua-duanya Terbitkan perihalan tuntutan ini dalam metadata persekutuan… pilihan.

  5. Pilih OK.

  6. Pilih Perhubungan Kepercayaan>Kepercayaan Pihak Bergantung.

  7. Pilih Tambah Kepercayaan Pihak Bergantung.

  8. Pilih Mula.

  9. Pilih Masukkan data tentang pihak yang bergantung secara manual, dan kemudian pilih Seterusnya.

  10. Masukkan nama; sebagai contoh, https://portal.contoso.com/.

  11. Pilih Seterusnya.

  12. Pilih Profil AD FS 2.0, dan kemudian pilih Seterusnya.

  13. Pada halaman Konfigurasikan Sijil, pilih Seterusnya.

  14. Pilih Dayakan sokongan untuk protokol SAML 2.0 WebSSO.

  15. Di bawah Pihak bergantung pada perkhidmatan SAML 2.0 SSO URL, masukkan URL balasan yang anda salin. AD FS memerlukan tapak web menjalankan HTTPS, bukan HTTP.

  16. Pilih Seterusnya.

  17. Pada halaman Konfigurasi Pengecam, masukkan URL tapak anda dan kemudian pilih Tambah.

    Anda boleh menambah lebih banyak identiti untuk setiap tapak web pihak bergantung tambahan jika perlu. Pengguna boleh mengesahkan menggunakan mana-mana identiti yang tersedia.

  18. Pilih Seterusnya.

  19. Pada halaman Konfigurasikan Pengesahan Berbilang Faktor Sekarang?, pilih Saya tidak mahu mengkonfigurasikan tetapan pengesahan berbilang faktor untuk kepercayaan parti bergantung pada masa ini.

  20. Pada halaman Pilih Peraturan Kebenaran Pengeluaran, pilih Benarkan semua pengguna mengakses pihak yang bergantung ini, dan kemudian pilih Seterusnya.

  21. Semak tetapan kepercayaan, dan kemudian pilih Seterusnya.

  22. Pilih Tutup.

  23. Dalam Edit Peraturan Tuntutan, pilih satu tab berikut, bergantung pada kepercayaan yang anda edit dan dalam set peraturan yang anda ingin buat peraturan:

    • Penerimaan Peraturan Transformasi
    • Terbitan Peraturan Transformasi
    • Terbitan Peraturan Pengesahan
    • Pewakilan Peraturan Pengesahan
  24. Pilih Tambah Peraturan.

  25. Dalam Templat peraturan tuntutan, pilih Ubah Tuntutan Masuk dan kemudian pilih Seterusnya.

  26. Masukkan atau pilih nilai berikut:

    • Nama peraturan tuntutan: Ubah nama akaun Windows kepada ID Nama

    • Jenis tuntutan masuk: Nama akaun Windows

    • Jenis tuntutan keluar: ID nama

    • Format ID nama keluar: Pengecam Berterusan

  27. Pilih Lulus semua nilai tuntutan.

  28. Pilih Selesai dan kemudian pilih OK.

Selesaikan persediaan penyedia

Selepas anda menyediakan kepercayaan parti AD FS:

  1. Cipta pendaftaran aplikasi dalam Azure.

  2. Konfigurasi tetapan tapak dalam Power Pages.

Daftar masuk yang dimulakan pembekal identiti

AD FS menyokong profil daftar masuk tunggal dimulakan pembekal identiti (SSO) bagi spesifikasi SAML 2.0. Untuk tapak web pembekal perkhidmatan untuk bertindak balas dengan betul kepada permintaan SAML pembekal identiti, anda mesti mengekod parameter tersebut RelayState.

Nilai rentetan asas untuk mengekodkan dalam parameter RelayState SAML mesti berada dalam format ReturnUrl=/content/sub-content/ yang /content/sub-content/ ialah laluan ke halaman yang anda ingin pergi pada tapak web pembekal perkhidmatan. Anda boleh menentukan laluan ke sebarang halaman yang sah pada tapak web. Nilai rentetan dikodkan dan ditempatkan 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/, ikuti langkah-langkah ini untuk membina URL:

  • 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 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

Konfigurasi AD FS menggunakan PowerShell

Daripada menambah kepercayaan pihak bergantung dalam AD FS secara manual, anda juga boleh menjalankan skrip PowerShell berikut pada pelayan AD FS. Simpan skrip ke fail yang dinamakan Add-AdxPortalRelyingPartyTrustForSaml.ps1. Selepas skrip dilaksanakan, teruskan ke untuk mengkonfigurasikan tetapan tapak dalam 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

Lihat juga

Sediakan pembekal SAML 2.0
Sediakan pembekal SAML 2.0 dengan Microsoft Entra ID
SOALAN LAZIM SAML 2.0