Sdílet prostřednictvím


RelyingParty

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

Element RelyingParty určuje cestu uživatele, která se má vynutit pro aktuální požadavek na Azure Active Directory B2C (Azure AD B2C). Určuje také seznam deklarací identity, které aplikace přijímající strany vyžaduje v rámci vystaveného tokenu. Aplikace rp, jako je web, mobilní nebo desktopová aplikace, volá soubor zásad rp. Soubor zásad rp provádí konkrétní úlohu, jako je přihlášení, resetování hesla nebo úprava profilu. Stejnou zásadu rp může používat více aplikací a jedna aplikace může používat více zásad. Všechny aplikace rp obdrží stejný token s deklaracemi identity a uživatel prochází stejnou cestou uživatele.

Následující příklad ukazuje element RelyingParty v souboru zásad B2C_1A_signup_signin :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="https://www.w3.org/2001/XMLSchema"
  xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
  PolicySchemaVersion="0.3.0.0"
  TenantId="your-tenant.onmicrosoft.com"
  PolicyId="B2C_1A_signup_signin"
  PublicPolicyUri="http://your-tenant.onmicrosoft.com/B2C_1A_signup_signin">

  <BasePolicy>
    <TenantId>your-tenant.onmicrosoft.com</TenantId>
    <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
  </BasePolicy>

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
    <UserJourneyBehaviors>
      <SingleSignOn Scope="Tenant" KeepAliveInDays="7"/>
      <SessionExpiryType>Rolling</SessionExpiryType>
      <SessionExpiryInSeconds>900</SessionExpiryInSeconds>
      <JourneyInsights TelemetryEngine="ApplicationInsights" InstrumentationKey="your-application-insights-key" DeveloperMode="true" ClientEnabled="false" ServerEnabled="true" TelemetryVersion="1.0.0" />
      <ContentDefinitionParameters>
        <Parameter Name="campaignId">{OAUTH-KV:campaignId}</Parameter>
      </ContentDefinitionParameters>
    </UserJourneyBehaviors>
    <TechnicalProfile Id="PolicyProfile">
      <DisplayName>PolicyProfile</DisplayName>
      <Description>The policy profile</Description>
      <Protocol Name="OpenIdConnect" />
      <Metadata>collection of key/value pairs of data</Metadata>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="loyaltyNumber" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>
  ...

Volitelný element RelyingParty obsahuje následující prvky:

Element (Prvek) Výskyty Popis
DefaultUserJourney 1:1 Výchozí cesta uživatele pro aplikaci rp.
Koncové body 0:1 Seznam koncových bodů Další informace najdete v tématu Koncový bod UserInfo.
UserJourneyBehaviors 0:1 Rozsah chování cesty uživatele.
TechnicalProfile 1:1 Technický profil, který podporuje aplikace rp. Technický profil poskytuje smlouvu pro aplikaci rp, aby kontaktovala Azure AD B2C.

Potřebujete vytvořit podřízené elementy RelyingParty v pořadí uvedeném v předchozí tabulce.

Koncové body

Element Endpoints obsahuje následující prvek:

Element (Prvek) Výskyty Popis
Koncový bod 1:1 Odkaz na koncový bod.

Element Endpoint obsahuje následující atributy:

Atribut Požadováno Popis
Id Ano Jedinečný identifikátor koncového bodu.
UserJourneyReferenceId Ano Identifikátor cesty uživatele v zásadách. Další informace najdete v tématu Cesty uživatelů.

Následující příklad ukazuje předávající stranu s koncovým bodem UserInfo:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <Endpoints>
    <Endpoint Id="UserInfo" UserJourneyReferenceId="UserInfoJourney" />
  </Endpoints>
  ...

DefaultUserJourney

Element DefaultUserJourney určuje odkaz na identifikátor cesty uživatele, který je definován v zásadách Base nebo Extensions. Následující příklady ukazují cestu uživatele registrace nebo přihlášení zadanou v elementu RelyingParty :

zásady B2C_1A_signup_signin:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn">
  ...

B2C_1A_TrustFrameWorkBase nebo B2C_1A_TrustFrameworkExtensionPolicy:

<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
  ...

Element DefaultUserJourney obsahuje následující atribut:

Atribut Požadováno Popis
ReferenceId Ano Identifikátor cesty uživatele v zásadách. Další informace najdete v tématu Cesty uživatelů.

UserJourneyBehaviors

Element UserJourneyBehaviors obsahuje následující prvky:

Element (Prvek) Výskyty Popis
SingleSignOn 0:1 Rozsah chování relace jednotného přihlašování (SSO) na cestě uživatele.
SessionExpiryType 0:1 Chování ověřování relace. Možné hodnoty: Rolling nebo Absolute. Hodnota Rolling (výchozí) označuje, že uživatel zůstane přihlášený, pokud je uživatel v aplikaci neustále aktivní. Hodnota Absolute označuje, že uživatel je nucen znovu ověřit po časovém období určeném životností relace aplikace.
SessionExpiryInSeconds 0:1 Životnost souboru cookie relace Azure AD B2C zadaná jako celé číslo uložené v prohlížeči uživatele po úspěšném ověření. Výchozí hodnota je 86 400 sekund (24 hodin). Minimum je 900 sekund (15 minut). Maximum je 86 400 sekund (24 hodin).
JourneyInsights 0:1 Instrumentační klíč Aplikace Azure lication Insights, který se má použít.
ContentDefinitionParameters 0:1 Seznam párů klíč-hodnota, které se mají připojit k identifikátoru URI načtení definice obsahu.
JourneyFraming 0:1 Umožňuje načtení uživatelského rozhraní této zásady do prvku iframe.
ScriptExecution 0:1 Podporované režimy spouštění JavaScriptu . Možné hodnoty: Allow nebo Disallow (výchozí).

Pokud použijete výše uvedené prvky, musíte je přidat do elementu UserJourneyBehaviors v pořadí uvedeném v tabulce. Například Element JourneyInsights musí být přidán před (nad) ScriptExecution element.

SingleSignOn

Element SingleSignOn obsahuje následující atributy:

Atribut Požadováno Popis
Obor Ano Rozsah chování jednotného přihlašování. Možné hodnoty: Suppressed, Tenant, Applicationnebo Policy. Hodnota Suppressed označuje, že chování je potlačeno a uživatel je vždy vyzván k výběru zprostředkovatele identity. Hodnota Tenant označuje, že chování se použije na všechny zásady v tenantovi. Například uživatel, který prochází dvěma cestami zásad pro tenanta, se nezobrazí výzva k výběru zprostředkovatele identity. Hodnota Application označuje, že chování se použije na všechny zásady pro aplikaci, která vytváří požadavek. Například uživatel, který prochází dvěma cestami zásad pro aplikaci, se nezobrazí výzva k výběru zprostředkovatele identity. Hodnota Policy označuje, že chování se vztahuje pouze na zásadu. Například uživatel, který prochází dvěma cestami zásad pro architekturu důvěryhodnosti, se při přepínání mezi zásadami zobrazí výzva k výběru zprostředkovatele identity.
KeepAliveInDays No Určuje, jak dlouho uživatel zůstane přihlášený. Nastavení hodnoty na 0 vypne funkce KmSI. Výchozí hodnota je 0 (zakázaná). Minimum je 1 den. Maximální počet dní je 90 . Další informace najdete v tématu Zůstat přihlášeni.
EnforceIdTokenHintOnLogout No Vynucení předání dříve vydaného tokenu ID koncovému bodu odhlášení jako nápovědu k aktuální ověřené relaci koncového uživatele s klientem. Možné hodnoty: false (výchozí) nebo true. Další informace najdete v tématu Přihlášení k webu pomocí OpenID Connect.

JourneyInsights

Element JourneyInsights obsahuje následující atributy:

Atribut Požadováno Popis
TelemetryEngine Ano Hodnota musí být ApplicationInsights.
InstrumentationKey Ano Řetězec, který obsahuje instrumentační klíč pro element Application Insights.
DeveloperMode Ano Možné hodnoty: true nebo false. Pokud trueslužba Application Insights telemetrii urychlila prostřednictvím kanálu zpracování. Toto nastavení je vhodné pro vývoj, ale omezené při vysokých objemech. Podrobné protokoly aktivit jsou navržené pouze tak, aby pomohly při vývoji vlastních zásad. Nepoužívejte vývojový režim v produkčním prostředí. Protokoly shromažďují všechny deklarace identity odeslané do zprostředkovatelů identity a od zprostředkovatelů identity během vývoje. Pokud se používá v produkčním prostředí, vývojář přebírá odpovědnost za osobní údaje shromážděné v protokolu App Insights, který vlastní. Tyto podrobné protokoly se shromažďují pouze v případě, že je tato hodnota nastavena na true.
ClientEnabled Ano Možné hodnoty: true nebo false. Pokud trueodešle skript na straně klienta Application Insights pro sledování zobrazení stránky a chyby na straně klienta.
ServerEnabled Ano Možné hodnoty: true nebo false. Pokud trueodešle existující userJourneyRecorder JSON jako vlastní událost do Application Insights.
TelemetryVersion Ano Hodnota musí být 1.0.0.

Další informace najdete v tématu Shromažďování protokolů.

ContentDefinitionParameters

Pomocí vlastních zásad v Azure AD B2C můžete odeslat parametr v řetězci dotazu. Předáním parametru do vašeho koncového bodu HTML můžete dynamicky měnit obsah stránky. Můžete například změnit obrázek pozadí na registrační nebo přihlašovací stránce Azure AD B2C na základě parametru, který předáte z vašeho webu nebo mobilní aplikace. Azure AD B2C předává parametry řetězce dotazu do vašeho dynamického souboru HTML, jako je například soubor aspx.

Následující příklad předá parametr s názvem campaignId s hodnotou hawaii v řetězci dotazu:

https://login.microsoft.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?pB2C_1A_signup_signin&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=http%3A%2F%2Fjwt.io%2F&scope=openid&response_type=id_token&prompt=login&campaignId=hawaii

ContentDefinitionParameters element obsahuje následující prvek:

Element (Prvek) Výskyty Popis
ContentDefinitionParameter 0:n Řetězec, který obsahuje dvojici klíč-hodnota, která je připojena k řetězci dotazu identifikátoru URI načtení definice obsahu.

Element ContentDefinitionParameter obsahuje následující atribut:

Atribut Požadováno Popis
Name Ano Název páru klíč-hodnota.

Další informace najdete v tématu Konfigurace uživatelského rozhraní s dynamickým obsahem pomocí vlastních zásad.

JourneyFraming

Element JourneyFraming obsahuje následující atributy:

Atribut Požadováno Popis
Povoleno Ano Umožňuje načtení této zásady v rámci prvku iframe. Možné hodnoty: false (výchozí) nebo true.
Zdroje Ano Obsahuje domény, které budou načítat hostitele prvku iframe. Další informace najdete v tématu Načítání Azure B2C v prvku iframe.

TechnicalProfile

Element TechnicalProfile obsahuje následující atribut:

Atribut Požadováno Popis
Id Ano Hodnota musí být PolicyProfile.

TechnicalProfile obsahuje následující prvky:

Element (Prvek) Výskyty Popis
DisplayName 1:1 Řetězec, který obsahuje název technického profilu.
Popis 0:1 Řetězec, který obsahuje popis technického profilu.
Protokol 1:1 Protokol používaný pro federaci.
Metadata 0:1 Kolekce položek párů klíč/hodnota využívaná protokolem pro komunikaci s koncovým bodem v průběhu transakce ke konfiguraci interakce mezi předávající stranou a dalšími účastníky komunity.
InputClaims 1:1 Seznamtypůch Každý z těchto prvků obsahuje odkaz na ClaimType již definovaný v oddílu ClaimsSchema nebo v zásadě, ze které tento soubor zásad dědí.
OutputClaims 1:1 Seznam typů deklarací identity, které jsou převzaty jako výstup v technickém profilu. Každý z těchto prvků obsahuje odkaz na ClaimType již definovaný v oddílu ClaimsSchema nebo v zásadě, ze které tento soubor zásad dědí.
SubjectNamingInfo 1:1 Název subjektu použitý v tokenech.

Element Protocol obsahuje následující atribut:

Atribut Požadováno Popis
Name Ano Název platného protokolu podporovaného Službou Azure AD B2C, který se používá jako součást technického profilu. Možné hodnoty: OpenIdConnect nebo SAML2. Hodnota OpenIdConnect představuje standard protokolu OpenID Connect 1.0 podle specifikace základu OpenID. Představuje SAML2 standard protokolu SAML 2.0 podle specifikace OASIS.

Metadata

Pokud je SAMLprotokol , metadata element obsahuje následující prvky. Další informace najdete v tématu Možnosti registrace aplikace SAML v Azure AD B2C.

Atribut Požadováno Popis
IdpInitiatedProfileEnabled No Určuje, jestli je podporovaný tok iniciovaný protokolem IDP. Možné hodnoty: true nebo false (výchozí).
XmlSignatureAlgorithm No Metoda, kterou Azure AD B2C používá k podepsání odpovědi SAML. Možné hodnoty: Sha256, Sha384, Sha512nebo Sha1. Ujistěte se, že jste na obou stranách nakonfigurovali algoritmus podpisu se stejnou hodnotou. Použijte pouze algoritmus, který váš certifikát podporuje. Pokud chcete nakonfigurovat kontrolní výraz SAML, podívejte se na metadata technického profilu vystavitele SAML.
DataEncryptionMethod No Označuje metodu, kterou Azure AD B2C používá k šifrování dat pomocí algoritmu AES (Advanced Encryption Standard). Metadata řídí hodnotu elementu <EncryptedData> v odpovědi SAML. Možné hodnoty: Aes256 (výchozí), Aes192, Sha512nebo Aes128.
KeyEncryptionMethod No Označuje metodu, kterou Azure AD B2C používá k šifrování kopie klíče použitého k šifrování dat. Metadata řídí hodnotu elementu <EncryptedKey> v odpovědi SAML. Možné hodnoty: Rsa15 (výchozí) – šifrovací algoritmus PKCS (Public Key Cryptography Standard) RSA Verze 1.5, RsaOaep – Algoritmus šifrování OAEP (Optimal Asymetrické šifrování RSA).
UseDetachedKeys No Možné hodnoty: truenebo false (výchozí). Pokud je hodnota nastavena na true, Azure AD B2C změní formát šifrovaných kontrolních výrazů. Použití odpojených klíčů přidá šifrovaný kontrolní výraz jako podřízený EncrytedAssertion na rozdíl od EncryptedData.
WantsSignedResponses No Určuje, jestli Azure AD B2C podepíše Response část odpovědi SAML. Možné hodnoty: true (výchozí) nebo false.
OdebratMillisecondsFromDateTime No Určuje, jestli se z hodnot data a času v odpovědi SAML odeberou milisekundy (patří sem IssueInstant, NotBefore, NotOnOrAfter a AuthnInstant). Možné hodnoty: false (výchozí) nebo true.
RequestContextMaximumLengthInBytes No Určuje maximální délku parametru aplikace RelayState SAML. Výchozí hodnota je 1 000. Maximum je 2048.

InputClaims

Element InputClaims obsahuje následující prvek:

Element (Prvek) Výskyty Popis
InputClaim 0:n Očekávaný typ vstupní deklarace identity.

Element InputClaim obsahuje následující atributy:

Atribut Požadováno Popis
ClaimTypeReferenceId Ano Odkaz na Typ deklarace identity již definovaný v oddílu ClaimsSchema v souboru zásad.
DefaultValue No Výchozí hodnota, kterou lze použít, pokud je hodnota deklarace prázdná.
PartnerClaimType No Odešle deklaraci identity v jiném názvu, jak je nakonfigurováno v definici ClaimType.

OutputClaims

OutputClaims element obsahuje následující prvek:

Element (Prvek) Výskyty Popis
OutputClaim 0:n Název očekávaného typu deklarace identity v seznamu podporovaných zásad, ke kterým se předávající strana přihlašuje. Tato deklarace identity slouží jako výstup pro technický profil.

Element OutputClaim obsahuje následující atributy:

Atribut Požadováno Popis
ClaimTypeReferenceId Ano Odkaz na Typ deklarace identity již definovaný v oddílu ClaimsSchema v souboru zásad.
DefaultValue No Výchozí hodnota, kterou lze použít, pokud je hodnota deklarace prázdná.
PartnerClaimType No Odešle deklaraci identity v jiném názvu, jak je nakonfigurováno v definici ClaimType.

SubjectNamingInfo

Pomocí SubjectNamingInfo elementu řídíte hodnotu předmětu tokenu:

  • Token JWT – deklarace sub identity. Jedná se o objekt zabezpečení, o kterém token určuje informace, jako je uživatel aplikace. Tato hodnota je neměnná a nelze ji znovu přiřadit ani znovu použít. Dá se použít k provádění bezpečných kontrol autorizace, například při použití tokenu pro přístup k prostředku. Ve výchozím nastavení se deklarace identity subjektu naplní ID objektu uživatele v adresáři. Další informace naleznete v tématu Token, relace a konfigurace jednotného přihlašování.
  • Token SAML – <Subject><NameID> element, který identifikuje prvek předmětu. Formát NameId lze upravit.

Element SubjectNamingInfo obsahuje následující atribut:

Atribut Požadováno Popis
ClaimType Ano Odkaz na výstupní deklaraci identity PartnerClaimType. Výstupní deklarace identity musí být definovány v kolekci OutputClaims zásad předávající strany s typem PartnerClaimType. Například , <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />nebo <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" />.
Formát No Používá se pro předávající strany SAML k nastavení formátu NameId vráceného v kontrolním výrazu SAML.

Následující příklad ukazuje, jak definovat předávající stranu OpenID Connect. Informace o názvu subjektu jsou nakonfigurovány jako objectId:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

Token JWT zahrnuje sub deklaraci identity s ID objektu uživatele:

{
  ...
  "sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  ...
}

Následující příklad ukazuje, jak definovat předávající stranu SAML. Informace o názvu subjektu se konfigurovaly jako objectId"NameId format " a bylo zadáno:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="SAML2" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
  </TechnicalProfile>
</RelyingParty>