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

Ескерім

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

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

AD FS (IdP)

Active Directory Federation Services (AD FS) сияқты сәйкестік куәліктері провайдерінің параметрлері.

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

Ескерім

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

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

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

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

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

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

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

  3. 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
    Федерация метадеректерін 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 [спецификациясының](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.1.4.IdP-Initiated SSO: POST Binding|outline) IdP бастаған құпия сөзді бір рет енгізу арқылы кіру (SSO) профилін қолдайды. IdP бастаған SAML сұрауына портал (қызметті қамтамасыз етуші) дұрыс жауап беруі үшін, RelayState параметрі дұрыс кодталуы қажет.

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

Мысалы, /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 мекенжайын алу үшін AD FS IdP бастаған SSO жолын алдын ала толтыру

Келесі 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

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. Төменгі деректеме мәзірінде Соңғы нүктелерді көру пәрменін таңдап, Федерация метадеректері құжаты өрісін жазып алыңыз.

Бұл 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 доменінде орналастырылған деп болжанады.

Федерация метадеректерінің 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 орнатумен қызмет провайдерлерін (сенімді тараптар) конфигурациялаңыз.

  • Әрбір қызметті қамтамасыз етуші федерациясы метадеректерінде (<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) параметріне сәйкес.

  • Қызметті қамтамасыз етуші федерациясының метадеректері 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 [сипаттамасы](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.1.4.IdP-Initiated SSO: POST Binding|outline) IdP бастаған SSO профиліне қолдау көрсетеді. IdP бастаған SAML сұрауына портал (қызметті қамтамасыз етуші) дұрыс жауап беруі үшін, RelayState параметрі дұрыс кодталуы қажет.

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

Мысалы, /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 service provider.

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