แชร์ผ่าน


ตั้งค่าคอนฟิกผู้ให้บริการ SAML 2.0 สำหรับพอร์ทัลที่มี AD FS

หมายเหตุ

พอร์ทัล Power Apps คือ Power Pages โดยมีผลในวันที่ 12 ตุลาคม 2022 ข้อมูลเพิ่มเติม: Microsoft Power Pages มีให้ใช้งานทั่วไป (บล็อก)
ในไม่ช้าเราจะย้ายและรวมคู่มือพอร์ทัล Power Apps เข้ากับ คู่มือ Power Pages

ข้อสำคัญ

ขั้นตอนสำหรับการตั้งค่าคอนฟิกของ Active Directory Federation Services (AD FS) อาจแตกต่างกันไป โดยขึ้นอยู่กับรุ่นของเซิร์ฟเวอร์ AD FS ของคุณ

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

หมายเหตุ

ดู ตั้งค่าคอนฟิก AD FS โดยใช้ PowerShell สำหรับข้อมูลเกี่ยวกับวิธีการดำเนินการขั้นตอนเหล่านี้ในสคริปต์ PowerShell

  1. การใช้เครื่องมือการจัดการ AD FS ไปที่ บริการ > คำอธิบายการอ้างสิทธิ์

    1. เลือก เพิ่มคำอธิบายการอ้างสิทธิ์

    2. ระบุการอ้างสิทธิ์:

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

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

      • เปิดใช้งาน กล่องกาเครื่องหมายสำหรับ: เผยแพร่คำอธิบายการอ้างสิทธิ์นี้ในเมตาดาต้าของสหพันธรัฐ ให้เป็นชนิดการอ้างสิทธิ์ที่การบริการสหพันธรัฐนี้สามารถยอมรับได้

      • เปิดใช้งาน กล่องกาเครื่องหมายสำหรับ: เผยแพร่คำอธิบายการอ้างสิทธิ์นี้ในเมตาดาต้าของสหพันธรัฐ ให้เป็นชนิดการอ้างสิทธิ์ที่การบริการสหพันธรัฐนี้สามารถส่งได้

    3. เลือก ตกลง

  2. โดยใช้เครื่องมือการจัดการ AD FS เลือก ความสัมพันธ์ของความน่าเชื่อถือ >การขึ้นกับความน่าเชื่อถือของฝ่าย

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

    2. ยินดีต้อนรับ: เลือก เริ่มต้น

    3. เลือกแหล่งข้อมูล: เลือก ป้อนข้อมูลเกี่ยวกับฝ่ายที่พึ่งพาด้วยตนเองและจากนั้นเลือก ถัดไป

    4. ระบุชื่อที่ใช้แสดง: ป้อนชื่อและจากนั้นเลือก ถัดไป ตัวอย่าง: https://portal.contoso.com/

    5. เลือกโพรไฟล์: เลือก โพรไฟล์ AD FS 2.0แล้วเลือก ถัดไป

    6. ตั้งค่าคอนฟิก: เลือก ถัดไป

    7. ตั้งค่าคอนฟิก URL: เลือกกล่องกาเครื่องหมาย เปิดใช้งานการสนับสนุนสำหรับโพรโทคอล SAML 2.0 WebSSO การขึ้นอยู่กับ URL การบริการแบบ SAML 2.0 SSO: ป้อน https://portal.contoso.com/signin-saml2
      โปรดทราบว่า AD FS ต้องการให้พอร์ทัลรันบน HTTPS

      หมายเหตุ

      จุดสิ้นสุดที่แสดงผลลัพธ์มีการตั้งค่าต่อไปนี้:

      • ชนิดจุดสิ้นสุด:จุดสิ้นสุดที่ใช้การยืนยัน SAML
      • การผูกข้อมูล:โพสต์
      • ดัชนี: n/a (0)
      • URL: https://portal.contoso.com/signin-saml2
    8. ตั้งค่าคอนฟิกข้อมูลเอกลักษณ์: ป้อน https://portal.contoso.com/ เลือก เพิ่ม และจากนั้น เลือก ถัดไป ถ้าใช้ได้ คุณสามารถเพิ่มข้อมูลเฉพาะตัวเพิ่มเติมได้ สำหรับแต่ละพอร์ทัลของที่ขึ้นอยู่กับบริษัทเพิ่มเติม ผู้ใช้จะสามารถรับรองความถูกต้องผ่านข้อมูลเอกลักษณ์ใดๆ หรือทั้งหมดที่พร้อมใช้งาน

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

    10. พร้อมที่จะเพิ่มทรัสต์: เลือก ถัดไป

    11. เลือก ปิด

  3. เพิ่ม ชื่อรหัส ที่อ้างความน่าเชื่อถือของฝ่าย

    แปลงWindows ชื่อบัญชีผู้ใช้ เป็นการอ้างสิทธิ์ ชื่อรหัส (แปลงเป็นการอ้างสิทธิ์ขาเข้า):

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

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

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

    • ผ่านค่าการอ้างสิทธิ์ทั้งหมด

กำหนดค่าผู้ให้บริการ SAML 2.0

หลังจากตั้งค่า AD FS โดยอาศัยความน่าเชื่อถือของฝ่ายแล้ว คุณสามารถทำตามขั้นตอนใน ตั้งค่าคอนฟิกผู้ให้บริการ SAML 2.0 สำหรับพอร์ทัล

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

AD FS สนับสนุนโปรไฟล์ ผู้ให้บริการข้อมูลประจำตัว–เริ่มต้นการลงชื่อเข้าระบบครั้งเดียว (SSO) ของ ข้อมูลจำเพาะ ของ SAML 2.0 เพื่อให้พอร์ทัล (ผู้ให้บริการ) ตอบสนองต่อคำขอ SAML ที่เริ่มต้นโดยผู้ให้บริการข้อมูลประจำตัวได้อย่างถูกต้อง พารามิเตอร์ RelayState ต้องถูกเข้ารหัสอย่างถูกต้อง

ค่าสตริงพื้นฐานที่จะถูกเข้ารหัสในพารามิเตอร์ RelayState ของ SAML ต้องอยู่ในรูปแบบ 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 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 โดยใช้ PowerShell

นอกจากนี้ กระบวนการในการเพิ่มการขึ้นกับความน่าเชื่อถือของฝ่ายใน AD FS ยังสามารถทำได้โดยการรันสคริปต์ PowerShell ต่อไปนี้บนเซิร์ฟเวอร์ AD FS บันทึกสคริปต์ลงในไฟล์ที่ชื่อ Add-AdxPortalRelyingPartyTrustForSaml.ps1 หลังจากการดำเนินการสคริปต์ ดำเนินการต่อด้วยการตั้งค่าคอนฟิกการตั้งค่าไซต์ของพอร์ทัล

<# 

.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

หลังจากตั้งค่า AD FS โดยอาศัยความน่าเชื่อถือของฝ่ายแล้ว คุณสามารถทำตามขั้นตอนใน ตั้งค่าคอนฟิกผู้ให้บริการ SAML 2.0 สำหรับพอร์ทัล

ดูเพิ่มเติม

กำหนดค่าผู้ให้บริการ SAML 2.0 สำหรับพอร์ทัลที่มี Azure AD
คำถามที่พบบ่อยสำหรับการใช้ SAML 2.0 ในพอร์ทัล
กำหนดค่าผู้ให้บริการ SAML 2.0 สำหรับพอร์ทัล

หมายเหตุ

บอกให้เราทราบเกี่ยวกับภาษาที่คุณต้องการในคู่มือ ทำแบบสำรวจสั้นๆ (โปรดทราบว่าแบบสำรวจนี้เป็นภาษาอังกฤษ)

แบบสำรวจนี้ใช้เวลาทำประมาณเจ็ดนาที ไม่มีการเก็บข้อมูลส่วนบุคคล (คำชี้แจงสิทธิ์ส่วนบุคคล)