Настройване на доставчик на SAML 2.0 с AD FS
Active Directory Federation Services (AD FS) е един от доставчиците на самоличност на SAML 2.0, които можете да използвате за удостоверяване на посетители на вашия сайт на Power Pages. Можете да използвате всеки доставчик, който отговаря на спецификациите за SAML 2.0.
Тази статия описва следните стъпки:
- Настройване на AD FS в Power Pages
- Създаване на доверие на доверяващата страна на AD FS
- Завършете настройката на доставчика
Важно
Стъпките за настройване на AD FS може да варират в зависимост от версията на вашия AD FS сървър.
Настройване на AD FS в Power Pages
Настройте AD FS като доставчик на самоличност за вашия сайт.
Във вашия Power Pages сайт изберете Доставчици> на самоличност за сигурност.
Ако не се покажат доставчици на самоличност, се уверете, че Външен вход е зададен на Вкл. в общите настройки за удостоверяване на вашия сайт.
Изберете + Нов доставчик.
Под Избор на доставчик на вход изберете Друг.
В Протокол изберете SAML 2.0.
Въвеждане на име за доставчика.
Името на доставчика е текстът на бутона, който потребителите виждат, когато изберат своя доставчик на самоличност в страницата за вход.
Изберете Напред.
Под URL адрес на отговор изберете Копиране.
Не затваряйте раздела на браузъра си Power Pages. Скоро ще се върнете към него.
Създаване на довереност на проверяващата страна на AD FS
Можете също да използвате PowerShell скрипт, за да изпълните тези стъпки.
В Server Manager изберете Инструменти и след това изберете Управление на AD FS.
Разгънете Услуга.
В десния панел изберете Добавяне на описание на изявление.
Въведете стойностите по-долу:
Показвано име: Постоянен идентификатор
Идентификатор на заявлението: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Изберете и двете опции Публикуване на това описание на изявлението в метаданни на федерация… .
Изберете OK.
Изберете Взаимоотношения с довереност>Довереност на проверяваща страна.
Изберете Добавяне на довереност на проверяващата страна.
Изберете Старт.
Изберете Ръчно въвеждане на данни за проверяващата страна и след това изберете Напред.
Въведете име, например https://portal.contoso.com/.
Изберете Напред.
Изберете Профил на AD FS 2.0 и след това изберете Напред.
На страницата Конфигуриране на сертификат изберете Напред.
Изберете Активиране на поддръжка за SAML 2.0 WebSSO протокол.
Под URL на услугата SAML 2.0 SSO на разчитащата страна въведете URL адреса на отговора, който копирахте. AD FS изисква уеб сайтът да изпълнява HTTPS, а не HTTP.
Изберете Напред.
На страницата Конфигуриране на идентификатори въведете URL адреса на вашия сайт и след това изберете Добавяне.
Можете да добавите повече самоличности за всеки уеб сайт на допълнителна проверяваща страна, ако е необходимо. Потребителите могат да удостоверяват чрез всякакви налични самоличности.
Изберете Напред.
На страницата Конфигуриране на многофакторно удостоверяване сега? изберете Не искам да конфигурирам настройки за многофакторно удостоверяване за тази довереност на проверяваща страна в момента.
На страницата Избор на правила за удостоверяване на издаването изберете Да се разреши на всички потребители достъп до тази проверяваща страна и след това изберете Напред.
Прегледайте настройките за довереност, след което изберете Напред.
Изберете Затваряне.
В Редактиране на правила за иск изберете един от следните раздели в зависимост от довереността, която редактирате, и в кой набор от правила искате да създадете правилото:
- Правила за трансформиране на приемане
- Правила за преобразуване на издаване
- Правила за издаване на разрешение
- Правила за разрешаване на делегиране
Изберете Добавяне на правило.
В списъка Шаблон на правило за иск изберете Трансформиране на входящ иск и след това изберете Напред.
Въведете или изберете следните стойности:
Име на правило за заявяване: Трансформиране на името на акаунта в Windows в ИД на име
Тип на входящото заявление: Име на акаунт в Windows
Тип изходящ иск: ИД на името
Формат на идентификатора на изходящото име: Постоянен идентификатор
Изберете Преминаване през всички стойности на иск.
Изберете Завършване и след това OK.
Завършване на настройването на доставчика
След като настроите довереността на проверяващата страна AD FS:
Инициирано от доставчик на самоличност влизане
AD FS поддържа профила инициирана от доставчик на самоличност еднократна идентификация (SSO) на SAML 2.0 спецификацията. За да може уеб сайтът на доставчика на услуги да отговори правилно на SAML заявката на доставчика на самоличност, трябва да кодирате параметъра RelayState
.
Основната стойност на низ за кодиране в параметър на SAML RelayState
трябва да бъде във формат ReturnUrl=/content/sub-content/
, където /content/sub-content/
е пътят до страницата, на която искате да отидете в уеб сайта на доставчика на услуга. Можете да посочите пътя до всяка валидна страница на уеб сайта. Стойността на низа е кодирана и поставена в низ на контейнер с формат RPID=<URL encoded RPID>&RelayState=<URL encoded RelayState>
. Целият низ отново се кодира и се добавя към друг контейнер с формат <https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL> encoded RPID/RelayState>
.
Ако е подаден например път на доставчик на услуга /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
Добавете отпред пътя на иницииран от SSO доставчик на самоличност на AD FS, за да получите финалния 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 ИД
SAML 2.0 ЧЕСТО ЗАДАВАНИ ВЪПРОСИ