RelyingParty

Poznámka

V Azure Active Directory B2C jsou vlastní zásady navržené primárně tak, aby řešily složité scénáře. U většiny scénářů doporučujeme používat předdefinované toky uživatelů. Pokud jste to ještě neudělali, přečtěte si o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami v 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, například webová, mobilní nebo desktopová aplikace, volá soubor zásad RP. Soubor zásad rp provádí konkrétní úlohu, například přihlášení, resetování hesla nebo úpravu 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 projde 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:

Prvek Výskyty Description
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í na cestách uživatele.
TechnicalProfile 1:1 Technický profil, který podporuje aplikace rp. Technický profil poskytuje smlouvu pro aplikaci RP, aby kontaktovala Azure AD B2C.

Podřízené elementy RelyingParty musíte vytvořit v pořadí uvedeném v předchozí tabulce.

Koncové body

Element Endpoints obsahuje následující prvek:

Prvek Výskyty Description
Koncový bod 1:1 Odkaz na koncový bod.

Element Endpoint obsahuje následující atributy:

Atribut Povinné Popis
Id Yes Jedinečný identifikátor koncového bodu.
UserJourneyReferenceId Yes 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 k registraci 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 Povinné Popis
ReferenceId Yes 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:

Prvek Výskyty Description
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ý, dokud je uživatel v aplikaci neustále aktivní. Hodnota Absolute označuje, že uživatel je nucen znovu ověřit po uplynutí časového období určeného životností relace aplikace.
SessionExpiryInSeconds 0:1 Životnost souboru cookie relace Azure AD B2C určená 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). Minimální hodnota je 900 sekund (15 minut). Maximum je 86 400 sekund (24 hodin).
JourneyInsights 0:1 Instrumentační klíč Aplikace Azure Insights, který se má použít.
ContentDefinitionParameters 0:1 Seznam párů klíčových hodnot, které se mají připojit k identifikátoru URI načtení definice obsahu.
CestaFraming 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í).

Když 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 (výše) ScriptExecution element.

Jeden podpis

Element SingleSignOn obsahuje následující atributy:

Atribut Povinné Popis
Rozsah Yes 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 se chování použije na všechny zásady v tenantovi. Například uživatel, který prochází dvě cesty zásad pro tenanta, se nezobrazí výzva k výběru zprostředkovatele identity. Hodnota Application označuje, že se chování použije u všech zásad pro aplikaci, která žádost vytvořila. Například uživatel, který prochází dvě cesty 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ě cesty zásad pro architekturu důvěryhodnosti, se při přepínání mezi zásadami vyzve k výběru zprostředkovatele identity.
KeepAliveInDays No Určuje, jak dlouho uživatel zůstane přihlášený. Nastavením hodnoty 0 vypnete funkci KmSI. Výchozí hodnota je 0 (zakázáno). Minimální hodnota je 1 den. Maximální hodnota je 90 dny. Další informace najdete v tématu Zůstat přihlášeni.
EnforceIdTokenHintOnLogout No Vynutí 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 Povinné Popis
TelemetryEngine Yes Hodnota musí být ApplicationInsights.
Instrumentační klíč Yes Řetězec, který obsahuje instrumentační klíč pro element Application Insights.
DeveloperMode Yes Možné hodnoty: true nebo false. Pokud true, Služba Application Insights urychlí telemetrii prostřednictvím kanálu zpracování. Toto nastavení je vhodné pro vývoj, ale je omezené při velkých objemech. Podrobné protokoly aktivit jsou navržené jenom k tomu, aby pomáhaly 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 odesílané zprostředkovatelům identity a odesílané během vývoje. Pokud se vývojář použije v produkčním prostředí, 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 nastavená na truehodnotu .
ClientEnabled Yes Možné hodnoty: true nebo false. Pokud true, odešle skript Application Insights na straně klienta pro sledování zobrazení stránky a chyby na straně klienta.
ServerEnabled Yes Možné hodnoty: true nebo false. Pokud true, odešle existující userJourneyRecorder JSON jako vlastní událost do Application Insights.
TelemetryVersion Yes Hodnota musí být 1.0.0.

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

Parametry 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á parametry řetězce dotazu do dynamického souboru HTML, například do souboru 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=a415078a-0402-4ce3-a9c6-ec1947fcfb3f&nonce=defaultNonce&redirect_uri=http%3A%2F%2Fjwt.io%2F&scope=openid&response_type=id_token&prompt=login&campaignId=hawaii

Element ContentDefinitionParameters obsahuje následující element:

Prvek Výskyty Popis
Parametr ContentDefinitionParameter 0:n Řetězec, který obsahuje pár hodnoty klíče, který je připojen k řetězci dotazu identifikátoru URI načtení definice obsahu.

Element ContentDefinitionParameter obsahuje následující atribut:

Atribut Povinné Popis
Název Yes Název páru hodnot klíčů.

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 Povinné Description
Povoleno Yes Umožňuje načtení této zásady v rámci prvku iframe. Možné hodnoty: false (výchozí) nebo true.
zdroje Yes Obsahuje domény, které budou načítat hostitele prvku iframe. Další informace najdete v tématu Načítání Azure B2C v elementu iframe.

Technický profil

Element TechnicalProfile obsahuje následující atribut:

Atribut Povinné Popis
Id Yes Hodnota musí být PolicyProfile.

TechnicalProfile obsahuje následující prvky:

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žitý pro federaci.
Metadata 0:1 Kolekce položek párů klíč/hodnota, které protokol využívá pro komunikaci s koncovým bodem v průběhu transakce za účelem konfigurace interakce mezi předávající stranou a dalšími účastníky komunity.
InputClaims 1:1 Seznam typů deklarací identity, které se považují za vstup v technickém profilu. Každý z těchto prvků obsahuje odkaz na ClaimType již definovaný v části ClaimsSchema nebo v zásadách , ze kterých tento soubor zásad dědí.
OutputClaims 1:1 Seznam typů deklarací identity, které jsou považovány za výstup v technickém profilu. Každý z těchto prvků obsahuje odkaz na ClaimType již definovaný v části ClaimsSchema nebo v zásadách , ze kterých tento soubor zásad dědí.
SubjectNamingInfo 1:1 Název subjektu použitý v tokenech.

Element Protocol obsahuje následující atribut:

Atribut Povinné Popis
Název Yes Název platného protokolu podporovaného 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 openID foundation. Představuje SAML2 standard protokolu SAML 2.0 podle specifikace OASIS.

Metadata

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

Atribut Povinné Popis
IdpInitiatedProfileEnabled No Určuje, jestli se podporuje tok iniciovaný protokolem IDP. Možné hodnoty: true nebo false (výchozí).
XmlSignatureAlgorithm No Metoda, která 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žívejte pouze algoritmus, který váš certifikát podporuje. Informace o konfiguraci kontrolního výrazu SAML najdete v tématu 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, který byl použit k šifrování dat. Metadata řídí hodnotu elementu <EncryptedKey> v odpovědi SAML. Možné hodnoty: Rsa15 (výchozí) – algoritmus RSA Public Key Cryptography Standard (PKCS) verze 1.5, RsaOaep - RSA Optimal Asymetric Encryption Padding (OAEP) šifrovací algoritmus.
PoužitíDetachedKeys No Možné hodnoty: true, nebo false (výchozí). Když 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.
RemoveMillisecondsFromDateTime No Určuje, jestli se milisekundy odeberou z hodnot datetime v rámci odpovědi SAML (mezi ně patří IssueInstant, NotBefore, NotOnOrAfter a AuthnInstant). Možné hodnoty: false (výchozí) nebo true.
RequestContextMaximumLengthInBytes No Označuje maximální délku parametru aplikací RelayStateSAML. Výchozí hodnota je 1 000. Maximum je 2048.

InputClaims

Element InputClaims obsahuje následující prvek:

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

Element InputClaim obsahuje následující atributy:

Atribut Povinné Popis
ClaimTypeReferenceId Yes Odkaz na typ ClaimType , který je již definován v části ClaimsSchema v souboru zásad.
Defaultvalue No Výchozí hodnota, kterou lze použít, pokud je hodnota deklarace identity prázdná.
Typ PartnerClaimType No Odešle deklaraci identity v jiném názvu, jak je nakonfigurováno v definici ClaimType.

OutputClaims

Element OutputClaims obsahuje následující 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řijímající strana přihlašuje. Tato deklarace identity slouží jako výstup pro technický profil.

Element OutputClaim obsahuje následující atributy:

Atribut Povinné Popis
Id deklarace identity Yes Odkaz na typ ClaimType , který je již definován v části ClaimsSchema v souboru zásad.
Defaultvalue No Výchozí hodnota, kterou lze použít, pokud je hodnota deklarace identity prázdná.
Typ PartnerClaimType No Odešle deklaraci identity v jiném názvu, jak je nakonfigurováno v definici ClaimType.

SubjectNamingInfo

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

  • Token JWTsub deklarace identity. Jedná se o objekt zabezpečení, o kterém token potvrzuje informace, jako je například 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 autorizačních kontrol, například při použití tokenu pro přístup k prostředku. Ve výchozím nastavení se deklarace subjektu vyplní ID objektu uživatele v adresáři. Další informace najdete v tématu Konfigurace tokenu, relace a jednotného přihlašování.
  • Token SAML<Subject><NameID> element, který identifikuje prvek předmětu. Formát NameId lze změnit.

Element SubjectNamingInfo obsahuje následující atribut:

Atribut Povinné Popis
Typ deklarace identity Yes Odkaz na typ PartnerClaimType výstupní deklarace identity. Výstupní deklarace identity musí být definované v kolekci OutputClaims zásad předávající strany s parametrem PartnerClaimType. Například <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />, nebo <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" />.
Formát No Používá se pro přijímají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 nakonfigurované 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": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
  ...
}

Následující příklad ukazuje, jak definovat předávající stranu SAML. Informace o názvu subjektu jsou nakonfigurované jako objectIda bylo zadáno Id_názvu format :

<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>