แชร์ผ่าน


ตั้งค่าผู้ให้บริการ SAML 2.0 กับ AD FS

Active Directory Federation Services (AD FS) เป็นหนึ่งในผู้ให้บริการข้อมูลประจำตัว SAML 2.0 ที่คุณสามารถใช้เพื่อ รับรองความถูกต้องของผู้เยี่ยมชม ไปยังไซต์ Power Pages ของคุณ คุณสามารถใช้ผู้ให้บริการรายใดๆ ที่เป็นไปตาม ข้อกำหนด SAML 2.0

บทความนี้อธิบายขั้นตอนต่อไปนี้:

สำคัญ

ขั้นตอนในการตั้งค่า AD FS อาจแตกต่างกันไป ขึ้นอยู่กับรุ่นของเซิร์ฟเวอร์ AD FS ของคุณ

ตั้งค่า AD FS ใน Power Pages

ตั้งค่า AD FS เป็นผู้ให้บริการข้อมูลประจำตัวสำหรับไซต์ของคุณ

  1. ในไซต์ Power Pages ของคุณ ให้เลือก ความปลอดภัย>ผู้ให้บริการข้อมูลประจำตัว

    หากไม่มีผู้ให้บริการข้อมูลประจำตัวปรากฏขึ้น ตรวจสอบให้แน่ใจว่าได้ตั้งค่า การเข้าสู่ระบบภายนอก เป็น เปิด ใน การตั้งค่าการรับรองความถูกต้องทั่วไป ของไซต์ของคุณ

  2. เลือก + ผู้ให้บริการใหม่

  3. ภายใต้ เลือกผู้ให้บริการเข้าสู่ระบบ เลือก อื่นๆ

  4. ภายใต้ โปรโตคอล เลือก SAML 2.0

  5. ป้อนชื่อของผู้ให้บริการ

    ชื่อผู้ให้บริการเป็นข้อความบนปุ่มที่ผู้ใช้เห็นเมื่อพวกเขาเลือกผู้ให้บริการข้อมูลประจำตัวของตนในหน้าลงชื่อเข้าใช้

  6. เลือก ถัดไป

  7. ภายใต้ URL ตอบกลับ เลือก คัดลอก

    อย่าปิดแท็บเบราว์เซอร์ Power Pages ของคุณ คุณจะต้องกลับมาในไม่ช้า

สร้าง AD FS ที่ขึ้นกับความน่าเชื่อถือของฝ่าย

นอกจากนี้คุณยังสามารถ ใช้สคริปต์ PowerShell เพื่อทำตามขั้นตอนเหล่านี้

  1. ในตัวจัดการเซิร์ฟเวอร์ เลือก เครื่องมือ จากนั้นเลือก การจัดการ AD FS

  2. ขยาย บริการ

  3. ในแผงด้านขวา เลือก เพิ่มคำอธิบายการอ้างสิทธิ์

  4. ป้อนค่าต่อไปนี้:

    • ชื่อที่ใช้แสดง: ตัวระบุแบบถาวร

    • ตัวระบุการอ้างสิทธิ์: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

    • เลือกตัวเลือก เผยแพร่คำอธิบายการอ้างสิทธิ์นี้ในเมตาดาต้าแบบรวม … ทั้งคู่

  5. เลือก ตกลง

  6. เลือก ความสัมพันธ์ที่น่าเชื่อถือ>ความเชื่อถือของผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตน

  7. เลือก เพิ่มการขึ้นกับทรัสต์ของฝ่าย

  8. เลือก เริ่มต้น

  9. เลือก ป้อนข้อมูลเกี่ยวกับผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตนด้วยตนเอง และจากนั้น เลือก ถัดไป

  10. ป้อนชื่อ ตัวอย่างเช่น https://portal.contoso.com/

  11. เลือก ถัดไป

  12. เลือก โปรไฟล์ AD FS 2.0 และจากนั้นเลือก ถัดไป

  13. บนหน้า กำหนดค่าใบรับรอง เลือก ถัดไป

  14. เลือก เปิดใช้งานการรองรับโปรโตคอล SAML 2.0 WebSSO

  15. ภายใต้ URL บริการแบบ SAML 2.0 SSO ผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตน ให้ป้อน URL ตอบกลับ ที่คุณคัดลอก AD FS ต้องการให้เว็บไซต์เรียกใช้ HTTPS ไม่ใช่ HTTP

  16. เลือก ถัดไป

  17. ในหน้า กำหนดค่าตัวระบุ ป้อน URL ของไซต์ของคุณ จากนั้นเลือก เพิ่ม

    คุณสามารถเพิ่มข้อมูลประจำตัวเพิ่มเติมได้สำหรับแต่ละเว็บไซต์ที่มีผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตนเพิ่มเติมหากจำเป็น ผู้ใช้สามารถรับรองความถูกต้องโดยใช้ข้อมูลประจำตัวที่มีอยู่

  18. เลือก ถัดไป

  19. ในหน้า กำหนดค่าการรับรองความถูกต้องโดยใช้หลายปัจจัยตอนนี้หรือไม่ ให้เลือก ฉันไม่ต้องการกำหนดค่าการตั้งค่าการรับรองความถูกต้องโดยใช้หลายปัจจัยสำหรับความเชื่อถือของผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตนในตอนนี้

  20. บนหน้า เลือกกฎการอนุมัติการออก เลือก อนุญาตให้ผู้ใช้ทั้งหมดสามารถเข้าถึงผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตนนี้ แล้วเลือก ถัดไป

  21. ตรวจสอบการตั้งค่าความน่าเชื่อถือ จากนั้นเลือก ถัดไป

  22. เลือก ปิด

  23. ใน แก้ไขกฎการอ้างสิทธิ์ เลือกแท็บต่อไปนี้หนึ่งแท็บ โดยขึ้นอยู่กับความน่าเชื่อถือที่คุณกำลังแก้ไขและชุดกฎที่คุณต้องการสร้างกฎ:

    • กฎการแปลงการยอมรับ
    • กฎการแปลงการออก
    • กฎการอนุญาตการออก
    • กฎการอนุญาตการมอบสิทธิ์
  24. เลือก เพิ่มกฎ

  25. ในรายการ เทมเพลตกฎการอ้างสิทธิ์ ให้เลือก แปลงการอ้างสิทธิ์ที่เข้ามา จากนั้นเลือก ถัดไป

  26. ป้อนหรือเลือกค่าต่อไปนี้:

    • ชื่อกฎการอ้างสิทธิ์: แปลงชื่อบัญชี Windows เป็นรหัสชื่อ

    • ชนิดการอ้างสิทธิ์ขาเข้า: ชื่อบัญชีผู้ใช้ Windows

    • ชนิดการอ้างสิทธิ์ขาออก: รหัสชื่อ

    • รูปแบบของรหัสชื่อขาออก: ตัวระบุแบบถาวร

  27. เลือก ส่งผ่านค่าการอ้างสิทธิ์ทั้งหมด

  28. เลือก เสร็จสิ้น และจากนั้นเลือก ตกลง

เสร็จสิ้นการตั้งค่าผู้ให้บริการ

หลังจากที่คุณตั้งค่าความเชื่อถือของผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตนด้วย AD FS:

  1. สร้างการลงทะเบียนแอปใน Azure

  2. ป้อนการตั้งค่าไซต์ใน Power Pages

ผู้ให้บริการข้อมูลประจำตัว–เริ่มต้นการลงชื่อเข้าใช้

AD FS สนับสนุนโปรไฟล์ identity provider–initiated single sign-on (SSO) ของ ข้อกำหนด SAML 2.0 เพื่อให้เว็บไซต์ผู้ให้บริการตอบสนองต่อคำขอ SAML ของผู้ให้บริการข้อมูลประจำตัวได้อย่างถูกต้อง คุณต้องเข้ารหัสพารามิเตอร์ RelayState

ค่าสตริงพื้นฐานที่จะเข้ารหัสในพารามิเตอร์ SAML RelayState ต้องอยู่ในรูปแบบ ReturnUrl=/content/sub-content/ โดยที่ /content/sub-content/ เป็นพาธไปยังเพจที่คุณต้องการไปบนเว็บไซต์ผู้ให้บริการ คุณสามารถระบุพาธไปยังเพจที่ถูกต้องบนเว็บไซต์ ค่าสตริงที่ถูกเข้ารหัสและถูกจัดวางไว้ในสตริงคอนเทนเนอร์ของรูปแบบ RPID=&lt;URL encoded RPID&gt;&RelayState=&lt;URL encoded RelayState&gt; สตริงนี้ทั้งหมดนี้ถูกเข้ารหัสอีกครั้ง และถูกเพิ่มลงในคอนเทนเนอร์อีกรายการหนึ่งของรูปแบบ <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=&lt;URL> encoded RPID/RelayState&gt;

ตัวอย่างเช่น พาธผู้ให้บริการที่กำหนด /content/sub-content/ และรหัสผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตน https://portal.contoso.com/ ให้สร้าง URL ตามขั้นตอนต่อไปนี้:

  • เข้ารหัสค่า ReturnUrl=/content/sub-content/ เพื่อรับ ReturnUrl%3D%2Fcontent%2Fsub-content%2F

  • เข้ารหัสค่า https://portal.contoso.com/ เพื่อรับ https%3A%2F%2Fportal.contoso.com%2F

  • เข้ารหัสค่า RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F เพื่อรับ RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

  • เพิ่มผู้ให้บริการข้อมูลประจำตัว AD FS–เริ่มต้นพาธ SSO เพื่อรับ URL สุดท้าย https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F

คุณสามารถใช้สคริปต์ PowerShell ต่อไปนี้เพื่อสร้าง URL บันทึกสคริปต์ลงในไฟล์ที่ชื่อ 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

กำหนดค่า AD FS โดยใช้ PowerShell

แทนการเพิ่มความเชื่อถือของผู้ให้บริการที่ต้องการข้อมูลยืนยันตัวตนใน AD FS ด้วยตนเอง คุณสามารถเรียกใช้สคริปต์ PowerShell ต่อไปนี้บนเซิร์ฟเวอร์ AD FS บันทึกสคริปต์ลงในไฟล์ที่ชื่อ Add-AdxPortalRelyingPartyTrustForSaml.ps1 หลังจากเรียกใช้สคริปต์แล้ว ให้ดำเนินการ กำหนดการตั้งค่าไซต์ใน 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

ดูเพิ่มเติม

ตั้งค่าผู้ให้บริการ SAML 2.0
ตั้งค่าผู้ให้บริการ SAML 2.0 กับ Microsoft Entra ID
คำถามที่ถามบ่อยเกี่ยวกับ SAML 2.0