Бөлісу құралы:


SAML 2.0 провайдерін AD FS көмегімен реттеу

Active Directory Federation Services (AD FS) — Power Pages сайтыңызға кірушілерді аутентификациялау үшін пайдалануға болатын SAML 2.0 идентификация провайдерлерінің бірі. SAML 2.0 сипаттамасына сәйкес келетін кез келген провайдерді пайдалануға болады.

Бұл мақалада келесі қадамдар сипатталады:

Маңызды

AD FS провайдерін реттеу қадамдары AD FS серверінің нұсқасына байланысты өзгеруі мүмкін.

Power Pages жүйесінде AD FS провайдерін реттеу

Сайтыңыз үшін 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

    • Екі опцияны да таңдаңыз: Осы шағым сипаттамасын федерация метадеректерінде жариялау… options.

  5. OK пәрменін таңдаңыз.

  6. Сенімді қатынастар>Тексеруші тарап сенімдері тармағын таңдаңыз.

  7. Тарап сенімін қосу пәрменін таңдаңыз.

  8. Бастау параметрін таңдаңыз.

  9. Тексеруші тарап деректерін қолмен енгізу параметрін таңдап, Келесі параметрін таңдаңыз.

  10. Атын енгізіңіз; мысалы, https://portal.contoso.com/.

  11. Келесі пәрменін таңдаңыз.

  12. AD FS 2.0 профилі параметрін таңдап, Келесі параметрін таңдаңыз.

  13. Куәлікті конфигурациялау бетінде Келесі опциясын таңдаңыз.

  14. SAML 2.0 WebSSO протоколы үшін қолдауды қосу опциясын таңдаңыз.

  15. Сенімді тараптың SAML 2.0 SSO қызметінің URL астында сіз көшірген жауаптың URL мекенжайын енгізіңіз. AD FS провайдері веб-сайтта HTTP емес HTTPS протоколын іске қосуды қажет етеді.

  16. Келесі пәрменін таңдаңыз.

  17. Идентификаторларды конфигурациялау бетінде сайтыңыздың URL мекенжайын енгізіп, Қосу параметрін таңдаңыз.

    Керек болса, әрбір қосымша тексеруші тарап веб-сайты үшін қосымша идентификаторларды қосуға болады. Пайдаланушылар кез келген қолжетімді идентификаторларды пайдаланып аутентификациялай алады.

  18. Келесі пәрменін таңдаңыз.

  19. Көп факторлы аутентификацияны қазір конфигурациялау керек пе? бетінде Мен бұл жолы осы тексеруші тарап сенімі үшін көп факторлы аутентификация параметрлерін конфигурациялауды қаламаймын параметрін таңдаңыз.

  20. Беру өкілеттігі ережелерін таңдау бетінде Барлық пайдаланушының осы тексеруші тарапқа қатынасуына рұқсат беру параметрін таңдап, Келесі параметрін таңдаңыз.

  21. Сенім параметрлерін қарап шығып, Келесі түймешігін таңдаңыз.

  22. Жабу пәрменін таңдаңыз.

  23. Шағым ережелерін өңдеу бөлімінде өңдеп жатқан сенім мен ережені қай ережелер жинағында жасағыңыз келетініне байланысты келесі қойыншалардың бірін таңдаңыз:

    • Қабылдауды түрлендіру ережелері
    • Беруді түрлендіру ережелері
    • Беруге рұқсат беру ережелері
    • Өкілеттеуге рұқсат беру ережелері
  24. Ереже қосу параметрін таңдаңыз.

  25. Шағым ережесінің үлгісі тізімінде Кіріс шағымды түрлендіру параметрін таңдап, Келесі параметрін таңдаңыз.

  26. Келесі мәндерді енгізіңіз немесе таңдаңыз:

    • Шағым ережесінің атауы: Windows тіркелгісінің атауын атау идентификаторына түрлендіру

    • Кіріс шағым түрі: Windows тіркелгісінің аты

    • Шығыс шағым түрі: атау идентификаторы

    • Шығыс аты ИД пішімі: тұрақты идентификатор

  27. Барлық шағым мәні бойынша өту параметрін таңдаңыз.

  28. Аяқтау параметрін таңдап, OK параметрін таңдаңыз.

Провайдерді реттеуді аяқтау

AD FS тексеруші тарап сенімін реттегеннен кейін:

  1. Azure жүйесінде бағдарлама тіркеуін жасаңыз.

  2. Power Pages жүйесінде сайт параметрлерін енгізіңіз.

Идентификация провайдері бастаған кіру әрекеті

AD FS қызметі SAML 2.0 сипаттамасының идентификация провайдері құпиясөзді бір рет енгізу арқылы кіру (SSO) профиліне қолдау көрсетеді. Қызмет провайдерінің веб-сайты сәйкестендіру провайдерінің 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%3D%2Fcontent%2Fsub-content%2F алу үшін ReturnUrl=/content/sub-content/ мәнін кодтау

  • https%3A%2F%2Fportal.contoso.com%2F алу үшін https://portal.contoso.com/ мәнін кодтау

  • RPID%3Dhttps%253A%252F%252Fportal.contoso.com%252F%26RelayState%3DReturnUrl%253D%252Fcontent%252Fsub-content%252F алу үшін RPID=https%3A%2F%2Fportal.contoso.com%2F&RelayState=ReturnUrl%3D%2Fcontent%2Fsub-content%2F мәнін кодтау

  • Соңғы 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 алу үшін AD FS идентификация провайдері бастаған SSO жолын алдын ала толтыру

URL мекенжайын құру үшін келесі PowerShell сценарийін пайдалануға болады. Сценарийді 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

PowerShell көмегімен AD FS теңшеу

AD FS жүйесіне сенімді тарап сенімін қолмен қосудың орнына, AD FS серверінде келесі PowerShell сценарийін іске қосуға болады. Сценарийді 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 провайдерін реттеу
ID көмегімен Microsoft Entra SAML 2.0 провайдері орнату
SAML 2.0 туралы ЖҚС