Порталдарға арналған SAML 2.0 провайдерінің параметрлерін конфигурациялау

Ескерім

Бұл құжаттама Dynamics 365 порталдарына және кейінгі нұсқаларына қолданылады.

Сыртқы түпнұсқалық растама беру үшін бір немесе бірнеше SAML 2.0 үйлесімді Идентификация провайдерін (IdP) қосуға болады. Бұл құжатта қызмет провайдері (SP) ретінде әрекет ететін порталмен біріктіру үшін, түрлі идентификация провайдерлерін орнату жолы сипатталады.

AD FS (IdP)

AD FS сияқты IdP параметрлері.

AD FS тексеруші тарап сенімін жасау

Ескерім

Төмендегі PowerShell көмегімен AD FS теңшеу бөлімін PowerShell сценарийіндегі осы қадамдарды орындау туралы ақпаратты алу үшін қараңыз.

AD FS басқару құралы көмегімен Қызмет > Шағым сипаттамалары тармағына өтіңіз.

  1. Шағым сипаттамасын қосу пәрменін таңдаңыз.
  2. Шағымды көрсету:

Дисплей аты:Тұрақты идентификатор

  • Шағым идентификаторы::urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

-Іске қосу құсбелгісі: осы Федерация қызметі қабылдайтын шағым түрі ретінде федерация метадеректеріндегі осы шағым сипаттамасын жариялау

-Іске қосу құсбелгісі: осы Федерация қызметі жіберетін шағым түрі ретінде федерация метадеректеріндегі осы шағым сипаттамасын жариялау

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

AD FS басқарма құралымен Сенімді қатынастар >Тексеруші тарап сенімдері тармағын таңдаңыз.

  1. Тарап сенімін қосу пәрменін таңдаңыз.
  2. Қош келдіңіз: Бастау пәрменін таңдаңыз
  3. Деректер көзін таңдау: Сенетін тарап деректерін қолмен енгізу опциясын таңдап, содан кейін Келесі пәрменін таңдаңыз.
  4. Көрсетілетін атауды көрсету: Атау енгізіп, содан кейін Келесі пәрменін таңдаңыз. Мысалы: https://portal.contoso.com/
  5. Профиль таңдау: AD FS 2.0 профилі параметрін таңдаңыз, содан кейін Келесі пәрменін таңдаңыз.
  6. Куәлікті конфигурациялау: Келесі пәрменін таңдаңыз.
  7. URL мекенжайын конфигурациялау: SAML 2.0 WebSSO протоколы қолдауын қосу құсбелгісін қойыңыз. Сенетін тараптың SAML 2.0 SSO қызметінің URL мекенжайы: https://portal.contoso.com/signin-saml2 мекенжайын енгізіңіз

    • Ескертпе: AD FS порталдың HTTPS жүйесінде жүргізілуін талап етеді

    Ескерім

    Нәтижелі соңғы нүктеде келесі параметрлер бар:

  8. Сәйкестік куәліктерін конфигурациялау: https://portal.contoso.com/ мекенжайын көрсетіңіз, Қосу пәрменін таңдаңыз, содан кейін Келесі пәрменін таңдаңыз. Қолданылған жағдайда әрбір қосымша сенімді тарап порталына қосымша идентификаторлар қосуға болады. Пайдаланушылар кез келген немесе барлық қолжетімді сәйкестік куәліктерінде түпнұсқалығын растай алады.

  9. Беру өкілеттігі ережелерін таңдау: Барлық пайдаланушыларға осы сенетін тарапқа қатынасуға рұқсат беру параметрін таңдап, содан кейін Келесі пәрменін таңдаңыз.
  10. Сенім қосуға дайын: Келесі пәрменін таңдаңыз
  11. Жабу пәрменін таңдаңыз.

Ат ИД шағымын сенімді тарапқа қосыңыз:

Windows тіркелгі атауын Атау ИД шағымына түрлендіру (Кіріс шағымын түрлендіру):

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

  • Шығыс шағым түрі: Ат ИД

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

  • Барлық шағым мәндері бойынша өту

Торап параметрлерін жасау

Жоғарғы AD FS сенімді тарапына қатысты портал торабы параметрлерін қолданыңыз.

Ескерім

Стандартты AD FS (IdP) конфигурациясы ғана төмендегі параметрлерді (үлгі мәндері бар) пайдаланады: Authentication/SAML2/ADFS/MetadataAddress - https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml

  • Authentication/SAML2/ADFS/AuthenticationType - http://adfs.contoso.com/adfs/services/trust
    • Федерация метадеректерінің түбірлік элементінде entityID төлсипаты мәнін пайдаланыңыз (жоғарыдағы сайт параметрі мәні болып табылатын шолғыштан MetadataAddress URL ашыңыз)
  • Authentication/SAML2/ADFS/ServiceProviderRealm - https://portal.contoso.com/
  • Authentication/SAML2/ADFS/AssertionConsumerServiceUrl - https://portal.contoso.com/signin-saml2
    Federation метадеректері AD FS серверінде келесі сценарийді іске қосу арқылы PowerShell ішінен шығарылуы мүмкін: Import-Module adfs Get-ADFSEndpoint -AddressPath /FederationMetadata/2007-06/FederationMetadata.xml

Бірнеше IdP қызметін [провайдер] тегі белгісін ауыстыру арқылы конфигурациялауға болады. Әрбір бірегей белгі IdP қатысты параметрлер тобын құрастырады. Мысалдар: ADFS, AzureAD, MyIdP

Торап параметрі аты Сипаттама
Authentication/Registration/ExternalLoginEnabled Сыртқы тіркелгінің кірісін және тіркелуін қосады немесе өшіреді. Әдепкі: шын
Authentication/SAML2/[provider]/MetadataAddress Талап етіледі. AD FS (STS) серверінің WS-Federation метадеректерінің URL мекенжайы. Әдетте келесі жолмен аяқталады:/FederationMetadata/2007-06/FederationMetadata.xml . Мысал:https://adfs.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml. Қосымша ақпарат: WsFederationAuthenticationOptions.MetadataAddress.
Authentication/SAML2/[provider]/AuthenticationType Талап етіледі. OWIN түпнұсқалық растама аралық бағдарламасының түрі. entityID төлсипатының мәнін федерация метадеректері XML файлының түбірінде көрсетіңіз. Мысал:http://adfs.contoso.com/adfs/services/trust. Қосымша ақпарат: AuthenticationOptions.AuthenticationType.
Authentication/SAML2/[provider]/ServiceProviderRealm
немесе
Authentication/SAML2/[provider]/Wtrealm
Талап етіледі. AD FS сенімді тарап идентификаторы. Мысал:https://portal.contoso.com/. Қосымша ақпарат: WsFederationAuthenticationOptions.Wtrealm.
Authentication/SAML2/[provider]/AssertionConsumerServiceUrl
немесе
Authentication/SAML2/[provider]/Wreply
Талап етіледі. AD FS SAML тұтынушыны растау соңғы нүктесі. Мысалы: https://portal.contoso.com/signin-saml2. Қосымша ақпарат: WsFederationAuthenticationOptions.Wreply.
Authentication/SAML2/[provider]/Caption Ұсынылады. Пайдаланушының жүйеге кіру пайдаланушы интерфейсінде көрсете алатын мәтіні. Әдепкі: [провайдер]. Қосымша ақпарат: WsFederationAuthenticationOptions.Caption.
Authentication/SAML2/[provider]/CallbackPath Түпнұсқалық растама кері қоңырауы өңделетін қосымша шектеулі жол. Қосымша ақпарат: WsFederationAuthenticationOptions.CallbackPath.
Authentication/SAML2/[provider]/BackchannelTimeout Кері арна байланыстарының кідіріс мәні. Мысал: 00:05:00 (5 мин). Қосымша ақпарат: WsFederationAuthenticationOptions.BackchannelTimeout.
Authentication/SAML2/[provider]/UseTokenLifetime Түпнұсқалық растама сеансының қызмет мерзімі (мысалы, cookie файлдары) түпнұсқалық растама таңбалауышына сәйкес келуі керектігін көрсетеді. WsFederationAuthenticationOptions.UseTokenLifetime.
Authentication/SAML2/[provider]/AuthenticationMode OWIN түпнұсқалық растама аралық бағдарламасының режимі. Қосымша ақпарат: AuthenticationOptions.AuthenticationMode.
Authentication/SAML2/[provider]/SignInAsAuthenticationType System.Security.Claims.ClaimsIdentity жасау кезінде пайдаланылатын AuthenticationType. Қосымша ақпарат: WsFederationAuthenticationOptions.SignInAsAuthenticationType.
Authentication/SAML2/[provider]/ValidAudiences Аудитория URL үтірмен бөлінген тізімі. Қосымша ақпарат: TokenValidationParameters.AllowedAudiences.
Authentication/SAML2/[provider]/ClockSkew Тексеру уақытында қолданылатын фазалық ауысым.
Authentication/SAML2/[provider]/RequireExpirationTime Мән таңбалауыштарда "жарамдылық" мәні болуы керектігін көрсетеді.
Authentication/SAML2/[provider]/ValidateAudience Таңбалауышты тексеру барысында аудиторияның тексерілуін басқаратын логикалық мән.

IdP басталған кіріс

AD FS SAML 2.0 сипаттамасы IdP басталған SSO профиліне қолдау көрсетеді. IdP бастаған SAML сұрауына портал (SP) дұрыс жауап беруі үшін, RelayState параметрі дұрыс кодталуы қажет.

SAML RelayState параметріне кодталатын негізгі жол мәні келесі пішімде болуы қажет: ReturnUrl=/content/sub-content/ where /content/sub-content/ – портал (SP) арқылы өткіңіз келетін веб-бет жолы. Жолды порталдағы жарамды веб-бетпен ауыстыруға болады. Жол мәні кодталады және контейнердің пішім жолына салынады: RPID=<URL кодталған RPID>&RelayState=<URL кодталған RelayState>. Осы толық жол тек бір рет кодталады және басқа пішім контейнеріне қосылады: https://adfs.contoso.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=<URL кодталған RPID/RelayState>.

Мысалы, SP жолы берілген: /content/sub-content/ және сенімді тарап ИД: https://portal.contoso.com/, келесі қадамдар арқылы URL мекенжайын құрыңыз:

ReturnUrl=/content/sub-content/ мәнін кодтаңыз

  • ReturnUrl%3D%2Fcontent%2Fsub-content%2F алу үшін
  • 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 алу үшін
  • Соңғы URL мекенжайын алу үшін, ADFS IdP бастаған SSO жолын алдын ала толтыру

Келесі PowerShell сценарийін URL мекенжайын құру үшін пайдалануға болады (Get-IdPInitiatedUrl.ps1 файлына сақтаңыз).

<#

.SYNOPSIS 

Constructs an IdP initiated SSO URL to access a portal page on the SP.

.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

Azure Active Directory үшін SAML 2.0 параметрлері

Сонымен қатар AD FS сипаттайтын алдыңғы бөлім Azure AD жүйесіне қолданылуы мүмкін, себебі Azure AD стандартты SAML 2.0 сәйкес IdP қызметі сияқты әрекет етеді. Іске кірісу үшін Azure басқару порталы жүйесіне кіріп, бар каталогты жасаңыз немесе таңдаңыз. Каталог қолжетімді кезде, бағдарламаны каталогке қосу нұсқауларын орындаңыз.

  1. Каталогтың Бағдарламалар мәзірінде Қосу пәрменін таңдаңыз.
  2. Менің ұйымым әзірлеген бағдарламаны қосу опциясын таңдаңыз.
  3. Бағдарлама үшін теңшелетін атау көрсетіңіз, содан кейін веб-бағдарлама және/немесе веб API түрін таңдаңыз.
  4. Кіру URL және Бағдарлама идентификаторының URI мекенжайы үшін өрістердің екеуі де үшін порталдың URL мекенжайын көрсетіңіз: https://portal.contoso.com/. Бұл ServiceProviderRealm (Wtrealm) сайт параметрі мәніне сәйкес.
  5. Осы орайда жаңа бағдарлама жасалады. Мәзірдегі Конфигурациялау бөліміне өтіңіз.

    Құпия сөзді бір рет енгізу арқылы кіру бөлімінде келесі URL мекенжайына жол қосу үшін, бірінші Жауап URL жазбасын жаңартыңыз: http://portal.contoso.com/signin-azure-ad.

    Бұл AssertionConsumerServiceUrl (Wreply) сайт параметрі мәніне сәйкес.

  6. Төменгі деректеме мәзірінде Соңғы нүктелерді көру пәрменін таңдап, Федерация метадеректері құжаты өрісін жазып алыңыз.

Бұл MetadataAddress сайт параметрі мәніне сәйкес.

  • Федерация метадеректері XML көру үшін браузер терезесіне осы URL қойып, түбірлік элементтің entityID төлсипатын ескеріңіз.
  • Бұл AuthenticationType сайт параметрі мәніне сәйкес.

Ескерім

Стандартты Azure AD конфигурациясы ғана келесі параметрлерді (үлгі мәндері бар)пайдаланады: Authentication/SAML2/AzureAD/MetadataAddress - https://login.microsoftonline.com/01234567-89ab-cdef-0123-456789abcdef/federationmetadata/2007-06/federationmetadata.xml

Shibboleth идентификатор провайдері 3

Shibboleth идентификатор провайдері IdP қызметі ретінде дұрыс теңшеу үшін, келесі нұсқауларды пайдаланыңыз. Келесіде доменге орналастырылған IdP болжалады: https://idp.contoso.com.

Federation метадеректерінің URL мекенжайы: https://idp.contoso.com/idp/shibboleth

<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"

Location="https://idp.contoso.com/idp/profile/SAML2/Redirect/SSO"/>

metadata-providers.xml орнатумен қызмет провайдерлерін (сенімді тараптар) теңшеңіз.

  • Әрбір SP федерациясы метадеректерінде (<SPSSODescriptor>) тұтынушы қызметтік хабары байланысын растау болуы қажет. Бір опция — FilesystemMetadataProvider пайдалану және төмендегілерді қамтитын конфигурация файлын көрсетіңіз:
<AssertionConsumerService index="1" isDefault="true"

Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"

Location="https://portal.contoso.com/signin-saml2"/>

Орын төлсипаты AssertionConsumerServiceUrl (Wreply) параметріне сәйкес.

  • SP федерация метадеректері AuthenticationType параметріне сәйкес келетін EntityDescriptor үшін entityID төлсипатын көрсетуі керек.

<EntityDescriptor entityID="https://portal.local.contoso.com/">;...

Ескерім

Стандартты Shibboleth конфигурациясында тек келесі параметрлер пайдаланылады (мысал мәндермен):
Authentication/SAML2/Shibboleth/MetadataAddress - https://idp.contoso.com/idp/shibboleth

  • Authentication/SAML2/Shibboleth/AuthenticationType - https://idp.contoso.com/idp/shibboleth
  • Федерация метадеректерінің түбірлік элементінде entityID төлсипаты мәнін пайдаланыңыз (жоғарыдағы сайт параметрі мәні болып табылатын шолғыштан MetadataAddress URL ашыңыз)
  • Authentication/SAML2/Shibboleth/ServiceProviderRealm - https://portal.contoso.com/
  • Authentication/SAML2/Shibboleth/AssertionConsumerServiceUrl - https://portal.contoso.com/signin-saml2

IdP бастаған кіріс

Shibboleth SAML 2.0 сипаттамасы IdP бастаған SSO профиліне қолдау көрсетеді. IdP бастаған SAML сұрауына портал (SP) дұрыс жауап беруі үшін, RelayState параметрі дұрыс кодталуы қажет.

SAML RelayState параметріне кодталатын негізгі жол мәні келесі пішімде болуы қажет: ReturnUrl=/content/sub-content/ where /content/sub-content/ – портал (SP) арқылы өтуге қажет веб-бет жолы. Жолды порталдағы жарамды веб-бетпен ауыстыруға болады. Толық IdP бастаған SSO URL мекенжайы келесі пішімде болуы тиіс: https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO?providerId=<URL кодталған провайдер ИД>&target=<URL кодталған қайту жолы>.

Мысалы, берілген SP жолы: /content/sub-content/ және сенімді тарап ИД: https://portal.contoso.com/, соңғы URL мекенжайы: https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO?providerId=https%3A%2F%2Fportal.contoso.com%2F&target=ReturnUrl%3D%2Fcontent%2Fsub-content%2F

Келесі PowerShell сценарийін URL мекенжайын құру үшін пайдалануға болады (Get-ShibbolethIdPInitiatedUrl.ps1 файлына сақтаңыз).

<# 

.SYNOPSIS

Constructs an IdP initiated SSO URL to access a portal page on the SP.

.PARAMETER path

The path to the portal page.

.PARAMETER providerId

The relying party identifier.

.PARAMETER shibbolethPath

The Shibboleth IdP initiated SSO page.

.EXAMPLE

PS C:\\> .\\Get-ShibbolethIdPInitiatedUrl.ps1 -path "/content/sub-content/" -providerId "https://portal.contoso.com/" -shibbolethPath "https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO"

#>

param

(

[parameter(mandatory=$true,position=0)]

$path,

[parameter(mandatory=$true,position=1)]

$providerId,

[parameter(position=2)]

$shibbolethPath = "https://idp.contoso.com/idp/profile/SAML2/Unsolicited/SSO"

)

$state = "ReturnUrl=$path"

$encodedPath = [uri]::EscapeDataString($state)

$encodedRpid = [uri]::EscapeDataString($providerId)

$idpInitiatedUrl = "{0}?providerId={1}&target={2}" -f $shibbolethPath, $encodedRpid, $encodedPath

Write-Output $idpInitiatedUrl

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

Сонымен қатар, AD FS серверінде келесі PowerShell сценарийін іске қосумен орындалатын AD FS серверінде сенімді тарап қосу процесі (Add-AdxPortalRelyingPartyTrustForSaml.ps1 атты файлға мазмұнды сақтаңыз). Сценарий іске қосқаннан кейін портал торабы параметрлерін теңшеуді жалғастырыңыз.

<# 

.SYNOPSIS

Adds a SAML 2.0 relying party trust entry for a Dynamics CRM portals 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 == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]

=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://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 == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]

=> issue(store = "[!INCLUDE[pn-active-directory](../includes/pn-active-directory.md)]", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query = ";givenName,sn,mail;{{0}}", param = c.Value);

'@ -f $identityProviderValue

$issuanceAuthorizationRules = @'

@RuleTemplate = "AllowAllAuthzRule"

=> issue(Type = "http://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

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

Add-CrmRelyingPartyTrust $domain

Сонымен қатар, қараңыз

Dynamics 365 порталы түпнұсқалық растамасын конфигурациялау
Порталға арналған түпнұсқалық растама сәйкестік куәлігін орнату
Порталдарға арналған OAuth2 провайдері параметрлері
Порталдарға арналған Open ID Connect провайдері параметрлері
Порталдарға арналған WS-Federation провайдерінің параметрлері
Порталдарға арналған Facebook бағдарлама (бет қойыншасы) түпнұсқалық растамасы