Порталдарға арналған 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. MSDN.
Authentication/SAML2/[provider]/AuthenticationType Талап етіледі. OWIN түпнұсқалық растама аралық бағдарламасының түрі. entityID төлсипатының мәнін федерация метадеректері XML файлының түбірінде көрсетіңіз. Мысалы: http://adfs.contoso.com/adfs/services/trust. MSDN.
Authentication/SAML2/[provider]/ServiceProviderRealm
немесе
Authentication/SAML2/[provider]/Wtrealm
Талап етіледі. AD FS сенімді тарап идентификаторы. Мысал: https://portal.contoso.com/. MSDN.
Authentication/SAML2/[provider]/AssertionConsumerServiceUrl
немесе
Authentication/SAML2/[provider]/Wreply
Талап етіледі. AD FS SAML тұтынушыны растау соңғы нүктесі. Мысалы: https://portal.contoso.com/signin-saml2. MSDN.
Authentication/SAML2/[provider]/Caption Ұсынылады. Пайдаланушының жүйеге кіру пайдаланушы интерфейсінде көрсете алатын мәтіні. Әдепкі: [провайдер]. MSDN.
Authentication/SAML2/[provider]/CallbackPath Түпнұсқалық растама кері қоңырауы өңделетін қосымша шектеулі жол. MSDN.
Authentication/SAML2/[provider]/BackchannelTimeout Кері арна байланыстарының кідіріс мәні. Мысал: 00:05:00 (5 мин). MSDN.
Authentication/SAML2/[provider]/UseTokenLifetime Түпнұсқалық растама сеансының қызмет мерзімі (мысалы, cookie файлдары) түпнұсқалық растама таңбалауышына сәйкес келуі керектігін көрсетеді. MSDN.
Authentication/SAML2/[provider]/AuthenticationMode OWIN түпнұсқалық растама аралық бағдарламасының режимі. MSDN.
Authentication/SAML2/[provider]/SignInAsAuthenticationType System.Security.Claims.ClaimsIdentity жасау кезінде пайдаланылатын AuthenticationType. MSDN.
Authentication/SAML2/[provider]/ValidAudiences Аудитория URL үтірмен бөлінген тізімі. MSDN.
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 үшін екі https://portal.contoso.com/ өрісіне арналған портал URL мекенжайын көрсетіңіз. Бұл ServiceProviderRealm (Wtrealm) сайт параметрінің мәніне сәйкес келеді
  5. Осы орайда жаңа бағдарлама жасалады. Мәзірдегі Теңшеу бөліміне өтіңіз

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

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

  6. Колонтитул мәзірінде Соңғы нүктелерді көру түймесін басып, Federation метадеректері құжаты өрісін ескеріңіз

Бұл 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 бағдарлама (бет қойыншасы) түпнұсқалық растамасы