RelyingParty

Anteckning

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

RelyingParty-elementet anger användarresan som ska tillämpas på aktuell begäran till Azure Active Directory B2C (Azure AD B2C). Den anger också listan med anspråk som den förlitande partens program behöver som en del av utfärdad token. Ett RP-program, till exempel ett webb-, mobil- eller skrivbordsprogram, anropar RP-principfilen. RP-principfilen kör en specifik uppgift, till exempel inloggning, återställning av ett lösenord eller redigering av en profil. Flera program kan använda samma RP-princip och ett enda program kan använda flera principer. Alla RP-program får samma token med anspråk och användaren genomgår samma användarresa.

I följande exempel visas ett RelyingParty-element i B2C_1A_signup_signin principfil:

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

Det valfria RelyingParty-elementet innehåller följande element:

Element Händelser Description
DefaultUserJourney 1:1 Standardanvändarresan för RP-programmet.
Slutpunkter 0:1 En lista över slutpunkter. Mer information finns i UserInfo-slutpunkten.
UserJourneyBehaviors 0:1 Omfånget för användarresans beteenden.
TechnicalProfile 1:1 En teknisk profil som stöds av RP-programmet. Den tekniska profilen tillhandahåller ett kontrakt för RP-programmet att kontakta Azure AD B2C.

Du måste skapa underordnade element för RelyingParty i den ordning som visas i föregående tabell.

Slutpunkter

Endpoints-elementet innehåller följande element:

Element Händelser Description
Slutpunkt 1:1 En referens till en slutpunkt.

Slutpunktselementet innehåller följande attribut:

Attribut Krävs Beskrivning
Id Ja En unik identifierare för slutpunkten.
UserJourneyReferenceId Ja En identifierare för användarens resa i principen. Mer information finns i användarresor

I följande exempel visas en förlitande part med UserInfo-slutpunkten:

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

DefaultUserJourney

Elementet DefaultUserJourney anger en referens till identifieraren för användarresan som definieras i bas- eller tilläggsprincipen. I följande exempel visas registrerings- eller inloggningsanvändarresan som anges i elementet RelyingParty :

B2C_1A_signup_signin princip:

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

B2C_1A_TrustFrameWorkBase eller B2C_1A_TrustFrameworkExtensionPolicy:

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

Elementet DefaultUserJourney innehåller följande attribut:

Attribut Krävs Beskrivning
ReferenceId Ja En identifierare för användarens resa i principen. Mer information finns i användarresor

UserJourneyBehaviors

Elementet UserJourneyBehaviors innehåller följande element:

Element Händelser Description
SingleSignOn 0:1 Omfattningen av sessionsbeteendet för enkel inloggning (SSO) för en användarresa.
SessionExpiryType 0:1 Autentiseringsbeteendet för sessionen. Möjliga värden: Rolling eller Absolute. Värdet Rolling (standard) anger att användaren förblir inloggad så länge användaren kontinuerligt är aktiv i programmet. Värdet Absolute anger att användaren tvingas autentisera igen efter den tidsperiod som anges av programsessionens livslängd.
SessionExpiryInSeconds 0:1 Livslängden för Azure AD B2C:s sessionscookie som anges som ett heltal som lagras i användarens webbläsare vid lyckad autentisering. Standardvärdet är 86 400 sekunder (24 timmar). Minst 900 sekunder (15 minuter). Maxvärdet är 86 400 sekunder (24 timmar).
JourneyInsights 0:1 Instrumentationsnyckeln Azure Application Insights som ska användas.
ContentDefinitionParameters 0:1 Listan över nyckelvärdepar som ska läggas till i innehållsdefinitionens inläsnings-URI.
JourneyFraming 0:1 Tillåter att användargränssnittet för den här principen läses in i en iframe.
ScriptExecution 0:1 JavaScript-körningslägen som stöds. Möjliga värden: Allow eller Disallow (standard).

När du använder elementen ovan behöver du lägga till dem i elementet UserJourneyBehaviors i den ordning som anges i tabellen. Till exempel måste JourneyInsights-elementet läggas till före (ovan) ScriptExecution-elementet .

SingleSignOn

SingleSignOn-elementet innehåller följande attribut:

Attribut Krävs Beskrivning
Omfång Ja Omfattningen av beteendet för enkel inloggning. Möjliga värden: Suppressed, Tenant, Applicationeller Policy. Värdet Suppressed anger att beteendet ignoreras och användaren uppmanas alltid att välja en identitetsprovider. Värdet Tenant anger att beteendet tillämpas på alla principer i klientorganisationen. En användare som navigerar i två principresor för en klientorganisation uppmanas till exempel inte att välja identitetsprovider. Värdet Application anger att beteendet tillämpas på alla principer för programmet som gör begäran. En användare som navigerar i två principresor för ett program uppmanas till exempel inte att välja identitetsprovider. Värdet Policy anger att beteendet endast gäller för en princip. Till exempel uppmanas en användare som navigerar genom två principresor för ett förtroenderamverk att välja en identitetsprovider vid växling mellan principer.
KeepAliveInDays Nej Styr hur länge användaren är inloggad. Om du ställer in värdet på 0 inaktiveras KMSI-funktioner. Standardvärdet är 0 (inaktiverat). Minimivärdet är 1 dag. Det maximala är 90 dagar. Mer information finns i Behåll mig inloggad.
EnforceIdTokenHintOnLogout Nej Tvinga att skicka en tidigare utfärdad ID-token till utloggningsslutpunkten som ett tips om slutanvändarens aktuella autentiserade session med klienten. Möjliga värden: false (standard) eller true. Mer information finns i Webbinloggning med OpenID Connect.

JourneyInsights

JourneyInsights-elementet innehåller följande attribut:

Attribut Krävs Beskrivning
TelemetriEngine Ja Värdet måste vara ApplicationInsights.
InstrumentationKey Ja Strängen som innehåller instrumentationsnyckeln för application insights-elementet.
DeveloperMode Ja Möjliga värden: true eller false. Om truepåskyndar Application Insights telemetrin via bearbetningspipelinen. Den här inställningen är bra för utveckling, men begränsad till höga volymer. De detaljerade aktivitetsloggarna är endast utformade för att underlätta utvecklingen av anpassade policyer. Använd inte utvecklingsläge i produktion. Loggar samlar in alla anspråk som skickas till och från identitetsprovidrar under utvecklingen. Om de används i produktion tar utvecklaren på sig ansvaret för personuppgifter som samlas in i App Insights-loggen som de äger. Dessa detaljerade loggar samlas bara in när det här värdet är inställt på true.
ClientEnabled Ja Möjliga värden: true eller false. Om trueskickar skickar Application Insights-skriptet på klientsidan för spårning av sidvisning och fel på klientsidan.
ServerEnabled Ja Möjliga värden: true eller false. Om trueskickar skickar den befintliga UserJourneyRecorder JSON som en anpassad händelse till Application Insights.
Telemetriversion Ja Värdet måste vara 1.0.0.

Mer information finns i Samla in loggar

ContentDefinitionParameters

Genom att använda anpassade principer i Azure AD B2C kan du skicka en parameter i en frågesträng. Genom att skicka parametern till HTML-slutpunkten kan du dynamiskt ändra sidinnehållet. Du kan till exempel ändra bakgrundsbilden på registrerings- eller inloggningssidan för Azure AD B2C baserat på en parameter som du skickar från ditt webb- eller mobilprogram. Azure AD B2C skickar frågesträngsparametrarna till din dynamiska HTML-fil, till exempel aspx-fil.

I följande exempel skickas en parameter med namnet campaignId med värdet hawaii i frågesträngen:

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

Elementet ContentDefinitionParameters innehåller följande element:

Element Händelser Description
ContentDefinitionParameter 0:n En sträng som innehåller nyckelvärdeparet som läggs till i frågesträngen för en innehållsdefinitionsbelastnings-URI.

Elementet ContentDefinitionParameter innehåller följande attribut:

Attribut Krävs Beskrivning
Name Ja Namnet på nyckelvärdeparet.

Mer information finns i Konfigurera användargränssnittet med dynamiskt innehåll med hjälp av anpassade principer

JourneyFraming

Elementet JourneyFraming innehåller följande attribut:

Attribut Krävs Description
Enabled Ja Gör att den här principen kan läsas in inom en iframe. Möjliga värden: false (standard) eller true.
Källor Ja Innehåller de domäner som ska läsas in som värd för iframe. Mer information finns i Läsa in Azure B2C i en iframe.

TechnicalProfile

Elementet TechnicalProfile innehåller följande attribut:

Attribut Krävs Beskrivning
Id Ja Värdet måste vara PolicyProfile.

TechnicalProfile innehåller följande element:

Element Händelser Description
DisplayName 1:1 Strängen som innehåller namnet på den tekniska profilen.
Description 0:1 Strängen som innehåller beskrivningen av den tekniska profilen.
Protokoll 1:1 Det protokoll som används för federationen.
Metadata 0:1 Samlingen av objekt av nyckel/värde-par som används av protokollet för kommunikation med slutpunkten under en transaktion för att konfigurera interaktion mellan den förlitande parten och andra community-deltagare.
InputClaims 1:1 En lista över anspråkstyper som tas som indata i den tekniska profilen. Vart och ett av dessa element innehåller en referens till en ClaimType som redan har definierats i avsnittet ClaimsSchema eller i en princip som den här principfilen ärver från.
OutputClaims 1:1 En lista över anspråkstyper som tas som utdata i den tekniska profilen. Vart och ett av dessa element innehåller en referens till en ClaimType som redan har definierats i avsnittet ClaimsSchema eller i en princip som den här principfilen ärver från.
SubjectNamingInfo 1:1 Ämnesnamnet som används i token.

Protocol-elementet innehåller följande attribut:

Attribut Krävs Beskrivning
Name Ja Namnet på ett giltigt protokoll som stöds av Azure AD B2C som används som en del av den tekniska profilen. Möjliga värden: OpenIdConnect eller SAML2. Värdet OpenIdConnect representerar OpenID Connect 1.0-protokollstandarden enligt OpenID Foundation-specifikationen. SAML2 Representerar SAML 2.0-protokollstandarden enligt OASIS-specifikationen.

Metadata

När protokollet är SAMLinnehåller ett metadataelement följande element. Mer information finns i Alternativ för att registrera ett SAML-program i Azure AD B2C.

Attribut Krävs Beskrivning
IdpInitiatedProfileEnabled Nej Anger om det IDP-initierade flödet stöds. Möjliga värden: true eller false (standard).
XmlSignatureAlgorithm Inga Den metod som Azure AD B2C använder för att signera SAML-svaret. Möjliga värden: Sha256, Sha384, Sha512eller Sha1. Se till att du konfigurerar signaturalgoritmen på båda sidor med samma värde. Använd bara den algoritm som certifikatet stöder. Information om hur du konfigurerar SAML-försäkran finns i METADATA för teknisk profil för SAML-utfärdare.
DataEncryptionMethod Nej Anger den metod som Azure AD B2C använder för att kryptera data med hjälp av AES-algoritmen (Advanced Encryption Standard). Metadata styr värdet för elementet <EncryptedData> i SAML-svaret. Möjliga värden: Aes256 (standard), Aes192, Sha512eller Aes128.
KeyEncryptionMethod Nej Anger den metod som Azure AD B2C använder för att kryptera kopian av nyckeln som användes för att kryptera data. Metadata styr värdet för elementet <EncryptedKey> i SAML-svaret. Möjliga värden: Rsa15 (standard) – RSA PKCS-algoritm (Public Key Cryptography Standard) Version 1.5– RsaOaep RSA Optimal Asymmetric Encryption Padding (OAEP) krypteringsalgoritm.
UseDetachedKeys Nej Möjliga värden: true, eller false (standard). När värdet är inställt på trueändrar Azure AD B2C formatet för krypterade intyg. Om du använder frånkopplade nycklar läggs den krypterade försäkran till som underordnad encrytedAssertion i stället för EncryptedData.
WantsSignedResponses Nej Anger om Azure AD B2C signerar Response avsnittet i SAML-svaret. Möjliga värden: true (standard) eller false.
RemoveMillisecondsFromDateTime Nej Anger om millisekunderna ska tas bort från datetime-värdena i SAML-svaret (dessa inkluderar IssueInstant, NotBefore, NotOnOrAfter och AuthnInstant). Möjliga värden: false (standard) eller true.
RequestContextMaximumLengthInBytes Nej Anger den maximala längden för parametern SAML-programRelayState . Standardvärdet är 1000. Maxvärdet är 2048.

InputClaims

Elementet InputClaims innehåller följande element:

Element Händelser Description
InputClaim 0:n En förväntad typ av indataanspråk.

Elementet InputClaim innehåller följande attribut:

Attribut Krävs Beskrivning
ClaimTypeReferenceId Ja En referens till en ClaimType som redan har definierats i avsnittet ClaimsSchema i principfilen.
Standardvärde Nej Ett standardvärde som kan användas om anspråksvärdet är tomt.
PartnerClaimType Nej Skickar anspråket i ett annat namn som konfigurerats i ClaimType-definitionen.

OutputClaims

Elementet OutputClaims innehåller följande element:

Element Händelser Description
OutputClaim 0:n Namnet på en förväntad anspråkstyp i listan som stöds för principen som den förlitande parten prenumererar på. Det här anspråket fungerar som utdata för den tekniska profilen.

OutputClaim-elementet innehåller följande attribut:

Attribut Krävs Beskrivning
ClaimTypeReferenceId Ja En referens till en ClaimType som redan har definierats i avsnittet ClaimsSchema i principfilen.
Standardvärde Inga Ett standardvärde som kan användas om anspråksvärdet är tomt.
PartnerClaimType Inga Skickar anspråket i ett annat namn som konfigurerats i ClaimType-definitionen.

SubjectNamingInfo

Med elementet SubjectNameingInfo styr du värdet för tokenämnet:

  • JWT-token – anspråket sub . Det här är ett huvudnamn som token hävdar information om, till exempel användaren av ett program. Det här värdet är oföränderligt och kan inte omtilldelas eller återanvändas. Den kan användas för att utföra säkra auktoriseringskontroller, till exempel när token används för att komma åt en resurs. Som standard fylls ämnesanspråket i med objekt-ID för användaren i katalogen. Mer information finns i Konfiguration av token, session och enkel inloggning.
  • SAML-token – elementet <Subject><NameID> som identifierar ämneselementet. NameId-formatet kan ändras.

Elementet SubjectNamingInfo innehåller följande attribut:

Attribut Krävs Beskrivning
ClaimType Ja En referens till ett utdataanspråks PartnerClaimType. Utdataanspråken måste definieras i den förlitande partens princip OutputClaims-samling med en PartnerClaimType. Till exempel <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />, eller <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" />.
Format Inga Används för SAML-förlitande parter för att ange NameId-formatet som returneras i SAML-försäkran.

I följande exempel visas hur du definierar en OpenID Connect-förlitande part. Ämnesnamninformationen objectIdkonfigureras som :

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

JWT-token innehåller anspråket sub med user objectId:

{
  ...
  "sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
  ...
}

I följande exempel visas hur du definierar en SAML-förlitande part. Ämnesnamninformationen objectIdkonfigureras som , och NameId format har angetts:

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