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 , Application nebo 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 true služ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 true odeš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 true odeš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 SAML
protokol , 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 , Sha512 nebo 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 , Sha512 nebo 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: true nebo 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>