Dela via


RelyingParty

Kommentar

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 att logga in, återställa ett lösenord eller redigera 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 principfilen:

<?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 beskrivning
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 att RP-programmet ska 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 beskrivning
Slutpunkt 1:1 En referens till en slutpunkt.

Slutpunktselementet innehåller följande attribut:

Attribut Obligatoriskt 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 principen Bas eller Tillägg. 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 Obligatoriskt 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 beskrivning
SingleSignOn 0:1 Omfattningen för 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 är kontinuerligt 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 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 för 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 måste 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

Elementet SingleSignOn innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
Definitionsområde Ja Omfånget för beteendet för enkel inloggning. Möjliga värden: Suppressed, Tenant, Applicationeller Policy. Värdet Suppressed anger att beteendet undertrycks och att användaren alltid uppmanas att välja identitetsprovider. Värdet Tenant anger att beteendet tillämpas på alla principer i klientorganisationen. En användare som navigerar genom 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 genom 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 identitetsprovider när de växlar mellan principer.
KeepAliveInDays Nej Styr hur länge användaren förblir inloggad. Om värdet anges till 0 inaktiveras KMSI-funktioner. Standardvärdet är 0 (inaktiverat). Minimivärdet är 1 dag. Maximalt ä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 Obligatoriskt 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 principer. 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 att spåra sidvyn 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.
TelemetryVersion 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 en 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=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

Elementet ContentDefinitionParameters innehåller följande element:

Element Händelser beskrivning
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 Obligatoriskt 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

JourneyFraming-elementet innehåller följande attribut:

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

TechnicalProfile

TechnicalProfile-elementet innehåller följande attribut:

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

TechnicalProfile innehåller följande element:

Element Händelser beskrivning
DisplayName 1:1 Strängen som innehåller namnet på den tekniska profilen.
beskrivning 0:1 Strängen som innehåller beskrivningen av den tekniska profilen.
Protokoll 1:1 Protokollet 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.

Protokollelementet innehåller följande attribut:

Attribut Obligatoriskt 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 Obligatoriskt Beskrivning
IdpInitiatedProfileEnabled Nej Anger om det IDP-initierade flödet stöds. Möjliga värden: true eller false (standard).
XmlSignatureAlgorithm Nej 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 endast den algoritm som certifikatet stöder. Information om hur du konfigurerar SAML-försäkran finns i SAML-utfärdarens tekniska profilmetadata.
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) – algoritmen RSA Public Key Cryptography Standard (PKCS) Version 1.5– RsaOaep RSA Optimal Asymmetric Encryption Padding (OAEP).
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 de krypterade försäkran. Med hjälp av frånkopplade nycklar läggs den krypterade försäkran till som underordnad till 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 på SAML-programparameternRelayState. Standardvärdet är 1000. Maxvärdet är 2048.

InputClaims

Elementet InputClaims innehåller följande element:

Element Händelser beskrivning
InputClaim 0:n En förväntad indataanspråkstyp.

Elementet InputClaim innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
ClaimTypeReferenceId Ja En referens till en ClaimType som redan har definierats i avsnittet ClaimsSchema i principfilen.
DefaultValue 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 beskrivning
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 Obligatoriskt Beskrivning
ClaimTypeReferenceId Ja En referens till en ClaimType som redan har definierats i avsnittet ClaimsSchema i principfilen.
DefaultValue 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.

SubjectNamingInfo

Med elementet SubjectNamingInfo kontrollerar 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 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 Obligatoriskt 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 Nej 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 Förlitande Part för OpenID Connect. Information om ämnesnamn har konfigurerats som 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>

JWT-token innehåller anspråket sub med användaren objectId:

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

I följande exempel visas hur du definierar en SAML-förlitande part. Ämnesnamninformationen objectIdhar konfigurerats 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>