AD FS ile SAML 2.0 sağlayıcısı ayarlama

Active Directory Federasyon Hizmetleri (AD FS), Power Pages sitenize gelen ziyaretçilerin kimliklerini doğrulamak için kullanabileceğiniz SAML 2.0 kimlik sağlayıcılarından biridir. SAML 2.0 belirtimine uyan herhangi bir sağlayıcıyı kullanabilirsiniz.

Bu makalede şu adımlar açıklanmıştır:

Önemli

AD FS'yi ayarlama adımları, AD FS sunucunuzun sürümünüze bağlı olarak değişebilir.

Power Pages'ta AD FS'yi ayarlama

AD FS'yi sitenizin kimlik sağlayıcısı olarak ayarlayın.

  1. Power Pages sitenizde, Güvenlik>Kimlik sağlayıcıları'nı seçin.

    Herhangi bir kimlik sağlayıcısı görüntülenmiyorsa, sitenizin genel kimlik doğrulama ayarlarındaharici oturum açma'nın Açık olarak ayarlandığından emin olun.

  2. Yeni sağlayıcı ekle'yi seçin.

  3. Oturum açma sağlayıcısı seç bölümünde Diğer'i seçin.

  4. Protokol altında, SAML 2.0'ı seçin.

  5. Sağlayıcı için bir ad girin.

    Sağlayıcı adı, düğmesinde, kullanıcıların oturum açma sayfasında kimlik sağlayıcısını seçdiklerinde gördükleri metindir.

  6. İleri'yi seçin.

  7. Yanıt URL'si altında Kopyala'yı seçin.

    Power Pages tarayıcı sekmesini kapatmayın. Yakında buraya geri döneceksiniz.

Bir AD FS bağımlı taraf güveni oluşturma

Bu adımları uygulamak için ayrıca bir PowerShell komut dosyası da kullanabilirsiniz.

  1. Sunucu Yöneticisi'nde Araçlar'ı ve sonra AD FS Yönetimi'ni seçin.

  2. Hizmet'i genişletin.

  3. Sağ taraftaki panelde Talep Açıklaması Ekle'yi seçin.

  4. Aşağıdaki değerleri girin:

    • Görünen ad: Kalıcı Tanımlayıcı

    • Talep Tanımlayıcı: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • Her iki Federasyon meta verilerinde bu talep açıklamasını yayımla… seçeneğini seçin.

  5. Tamam seçeneğini işaretleyin.

  6. Güven İlişkileri>Bağlı Olan Taraf Güvenleri'ni seçin.

  7. Bağımlı Taraf Güveni Ekle'yi seçin.

  8. Başlat'ı seçin.

  9. Bağlı olan tarafla ilgili verileri el ile gir'i ve ardından İleri'yi seçin.

  10. Bir ad girin; örneğin https://portal.contoso.com/.

  11. İleri'yi seçin.

  12. AD FS 2.0 profili'ni ve ardından İleri'yi seçin.

  13. Sertifikayı Yapılandır sayfasında İleri'yi seçin.

  14. SAML 2.0 WebSSO protokolü için desteği etkinleştir'i seçin.

  15. Bağlı olan taraf SAML 2.0 SSO hizmet URL'si altında, kopyaladığınız yanıt URL'sini girin. AD FS, web sitesinin HTTP değil, HTTPS çalıştırmasını gerektirir.

  16. İleri'yi seçin.

  17. Tanımlayıcıları Yapılandır sayfasında, sitenizin URL'sini girin ve Ekle'yi seçin.

    Gerekirse her bir bağlı olan taraf web sitesi için daha fazla kimlik ekleyebilirsiniz. Kullanıcılar mevcut kimliklerden herhangi birini kullanarak doğrulama yapabilir.

  18. İleri'yi seçin.

  19. Çok Faktörlü Kimlik Doğrulaması Şimdi Etkinleştirilsin mi? sayfasında, Şu anda bu bağlı olan taraf güveni için çok faktörlü kimlik doğrulama ayarlarını yapılandırmak istemiyorum seçeneğini belirleyin.

  20. Verme Yetkilendirme Kurallarını Seç sayfasında, Tüm kullanıcıların bu bağlı olan tarafa erişmesine izin ver'i seçin ve ardından İleri'yi seçin.

  21. Güven ayarlarını inceleyin ve sonra İleri'yi seçin.

  22. Kapat'ı seçin.

  23. Talep Kurallarını Düzenle'de, düzenlemekte olduğunuz güvene ve kuralı hangi kural kümesinin içinde oluşturmak istediğinize bağlı olarak aşağıdaki sekmelerden birini seçin:

    • Onay Dönüştürme Kuralları
    • Verme Dönüştürme Kuralları
    • Verme Yetkilendirme Kuralları
    • Temsilci Yetkilendirme Kuralları
  24. Kural Ekle'yi seçin.

  25. Talep kuralı şablonu listesinde, Gelen Talebi Dönüştür'ü ve ardından İleri'yi seçin.

  26. Aşağıdaki değerleri girin veya seçin.

    • Talep kuralı adı: Windows hesap adını Ad Kimliğine dönüştürme

    • Gelen talep türü: Windows hesap adı

    • Giden talep türü: Ad Kimliği

    • Giden adı kimliği biçimi: Kalıcı Tanımlayıcı

  27. Tüm talep değerlerini geçir'i seçin.

  28. Bitir'i ve sonra Tamam'ı seçin.

Sağlayıcıyı ayarlamayı bitirme

AD FS bağlı olan taraf güvenini ayarladıktan sonra:

  1. Azure'da uygulama kaydı oluşturma.

  2. Power Pages'de site ayarlarını girme.

Kimlik sağlayıcısı tarafından başlatılan oturum açma işlemi

AD FS, SAML 2.0 belirtimininkimlik sağlayıcısı tarafından başlatılan çoklu oturum açma (SSO) profilini destekler. Hizmet sağlayıcı web sitesinin kimlik sağlayıcının SAML isteğine uygun şekilde yanıt verebilmesi için, RelayState parametresini kodlamanız gerekir.

SAML RelayState parametresinde kodlanacak temel dize değeri, ReturnUrl=/content/sub-content/ biçiminde olmalıdır; burada /content/sub-content/, hizmet sağlayıcı web sitesinde gitmek istediğiniz sayfanın yoludur. Web sitesindeki geçerli herhangi bir sayfanın yolunu belirtebilirsiniz. Dize değeri kodlanır ve RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt; biçiminde kapsayıcı dizesine yerleştirilir. Bu tüm dize tekrar kodlanır ve şu biçimdeki başka bir kapsayıcıya eklenir: <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;.

Örneğin, hizmet sağlayıcı yolu /content/sub-content/ ve bağlı olan taraf kimliği https://portal.contoso.com/ göz önüne alındığında, URL'yi oluşturmak için aşağıdaki adımları uygulayın:

  • ReturnUrl%3D%2Fcontent%2Fsub-content%2F değerini almak için ReturnUrl=/content/sub-content/ değerini kodlayın

  • https%3A%2F%2Fportal.contoso.com%2F değerini almak için https://portal.contoso.com/ değerini kodlayın

  • RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F değerini almak için RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F değerini kodlayın

  • Nihai URL'yi https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F almak için AD FS kimlik sağlayıcısı tarafından başlatılan SSO yolunu önceden gönderin

URL'yi oluşturmak için aşağıdaki PowerShell komut dosyasını kullanabilirsiniz. Komut dosyasını Get-IdPInitiatedUrl.ps1 adlı bir dosyaya kaydedin.


<#
.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

PowerShell kullanarak AD FS'yi yapılandırma

AD FS'ye bağlı olan taraf güvenini el ile eklemek yerine, AD FS sunucusunda aşağıdaki PowerShell komut dosyasını çalıştırabilirsiniz. Komut dosyasını Add-AdxPortalRelyingPartyTrustForSaml.ps1 adlı bir dosyaya kaydedin. Komut dosyası yürütüldükten sonra, Power Pages'ta site ayarlarını yapılandırmaya devam edin.

<# 
.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

Ayrıca bkz.

SAML 2.0 sağlayıcısı ayarlama
Microsoft Entra ID ile SAML 2.0 sağlayıcısı ayarlama
SAML 2.0 ile ilgili SSS