Delen via


RelyingParty

Notitie

In Azure Active Directory B2C is aangepast beleid voornamelijk bedoeld om met complexe scenario's om te gaan. Voor de meeste scenario's wordt aangeraden ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.

Het element RelyingParty geeft aan welke gebruikersbeleving moet worden afgedwongen voor de huidige aanvraag bij Azure Active Directory B2C (Azure AD B2C). Ook wordt de lijst met claims opgegeven die de op claims gebaseerde toepassing nodig heeft als onderdeel van het gepubliceerde token. Een RP-toepassing, zoals een web-, mobiele of desktoptoepassing, roept het RP-beleidsbestand aan. Het RP-beleidsbestand voert een specifieke taak uit, zoals aanmelden, het opnieuw instellen van een wachtwoord of het bewerken van een profiel. Meerdere toepassingen kunnen hetzelfde RP-beleid gebruiken en één toepassing kan meerdere beleidsregels gebruiken. Alle RP-toepassingen ontvangen hetzelfde token met claims en de gebruiker doorloopt hetzelfde gebruikerstraject.

In het volgende voorbeeld ziet u een RelyingParty-element in het B2C_1A_signup_signin-beleidsbestand :

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

Het optionele RelyingParty-element bevat de volgende elementen:

Element Instanties Beschrijving
DefaultUserJourney 1:1 Het standaardgebruikerstraject voor de RP-toepassing.
Eindpunten 0:1 Een lijst met eindpunten. Zie UserInfo-eindpunt voor meer informatie.
UserJourneyBehaviors 0:1 Het bereik van het gedrag van de gebruikersbeleving.
TechnicalProfile 1:1 Een technisch profiel dat wordt ondersteund door de RP-toepassing. Het technische profiel biedt een contract voor de RP-toepassing om contact op te maken met Azure AD B2C.

U moet de onderliggende elementen relyingParty maken in de volgorde die in de voorgaande tabel wordt weergegeven.

Eindpunten

Het element Eindpunten bevat het volgende element:

Element Instanties Beschrijving
Eindpunt 1:1 Een verwijzing naar een eindpunt.

Het eindpuntelement bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
ID Ja Een unieke id van het eindpunt.
UserJourneyReferenceId Ja Een id van het gebruikerstraject in het beleid. Zie gebruikersbelevingen voor meer informatie

In het volgende voorbeeld ziet u een relying party met UserInfo-eindpunt:

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

DefaultUserJourney

Het DefaultUserJourney element geeft een verwijzing op naar de id van het gebruikerstraject dat is gedefinieerd in het beleid Basis of Extensies. In de volgende voorbeelden ziet u het aanmeldings- of aanmeldingsgebruikerstraject dat is opgegeven in het RelyingParty-element :

B2C_1A_signup_signin beleid:

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

B2C_1A_TrustFrameWorkBase of B2C_1A_TrustFrameworkExtensionPolicy:

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

Het element DefaultUserJourney bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
ReferenceId Ja Een id van het gebruikerstraject in het beleid. Zie gebruikersbelevingen voor meer informatie

UserJourneyBehaviors

Het element UserJourneyBehaviors bevat de volgende elementen:

Element Instanties Beschrijving
SingleSignOn 0:1 Het bereik van het gedrag van eenmalige aanmelding (SSO) van een gebruikersbeleving.
SessionExpiryType 0:1 Het verificatiegedrag van de sessie. Mogelijke waarden: Rolling of Absolute. De Rolling waarde (standaard) geeft aan dat de gebruiker aangemeld blijft zolang de gebruiker voortdurend actief is in de toepassing. De Absolute waarde geeft aan dat de gebruiker wordt gedwongen om opnieuw te verifiëren na de periode die is opgegeven door de levensduur van de toepassingssessie.
SessionExpiryInSeconds 0:1 De levensduur van de sessiecooky van Azure AD B2C die is opgegeven als een geheel getal dat is opgeslagen in de browser van de gebruiker na een geslaagde verificatie. De standaardwaarde is 86.400 seconden (24 uur). Het minimum is 900 seconden (15 minuten). Het maximum is 86.400 seconden (24 uur).
JourneyInsights 0:1 De Azure-toepassing Insights-instrumentatiesleutel die moet worden gebruikt.
ContentDefinitionParameters 0:1 De lijst met sleutel-waardeparen die moeten worden toegevoegd aan de URI voor het laden van inhoudsdefinities.
JourneyFraming 0:1 Hiermee kan de gebruikersinterface van dit beleid in een iframe worden geladen.
ScriptExecution 0:1 De ondersteunde JavaScript-uitvoeringsmodi . Mogelijke waarden: Allow of Disallow (standaard).

Wanneer u de bovenstaande elementen gebruikt, moet u deze toevoegen aan het element UserJourneyBehaviors in de volgorde die in de tabel is opgegeven. Het element JourneyInsights moet bijvoorbeeld worden toegevoegd vóór (boven) het Element ScriptExecution.

SingleSignOn

Het element SingleSignOn bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
Bereik Ja Het bereik van het gedrag voor eenmalige aanmelding. Mogelijke waarden: Suppressed, Tenant, , Applicationof Policy. De Suppressed waarde geeft aan dat het gedrag wordt onderdrukt en dat de gebruiker altijd wordt gevraagd om een id-provider te selecteren. De Tenant waarde geeft aan dat het gedrag wordt toegepast op alle beleidsregels in de tenant. Een gebruiker die bijvoorbeeld door twee beleidstrajecten voor een tenant navigeert, wordt niet gevraagd om een id-provider te selecteren. De Application waarde geeft aan dat het gedrag wordt toegepast op alle beleidsregels voor de toepassing die de aanvraag doet. Een gebruiker die bijvoorbeeld door twee beleidstrajecten voor een toepassing navigeert, wordt niet gevraagd om een id-provider te selecteren. De Policy waarde geeft aan dat het gedrag alleen van toepassing is op een beleid. Een gebruiker die door twee beleidstrajecten voor een vertrouwensframework navigeert, wordt bijvoorbeeld gevraagd om een id-providerselectie bij het schakelen tussen beleidsregels.
KeepAliveInDays Nee Hiermee bepaalt u hoe lang de gebruiker aangemeld blijft. Als u de waarde instelt op 0, wordt kmSI-functionaliteit uitgeschakeld. De standaardwaarde is 0 (uitgeschakeld). Het minimum is 1 dag. Het maximum is 90 dagen. Zie Aangemeld blijven voor meer informatie.
EnforceIdTokenHintOnLogout Nee Afdwingen dat een eerder uitgegeven id-token wordt doorgegeven aan het afmeldingseindpunt als hint over de huidige geverifieerde sessie van de eindgebruiker met de client. Mogelijke waarden: false (standaard) of true. Zie Web-aanmelding met OpenID Connect voor meer informatie.

JourneyInsights

Het element JourneyInsights bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
TelemetryEngine Ja De waarde moet zijn ApplicationInsights.
InstrumentationKey Ja De tekenreeks die de instrumentatiesleutel voor het Application Insights-element bevat.
DeveloperMode Ja Mogelijke waarden: true of false. Als trueApplication Insights de telemetrie versnelt via de verwerkingspijplijn. Deze instelling is geschikt voor ontwikkeling, maar beperkt op grote volumes. De gedetailleerde activiteitenlogboeken zijn alleen ontworpen om te helpen bij het ontwikkelen van aangepaste beleidsregels. Gebruik de ontwikkelingsmodus niet in productie. Logboeken verzamelen alle claims die tijdens de ontwikkeling naar en van de id-providers worden verzonden. Als deze wordt gebruikt in productie, neemt de ontwikkelaar de verantwoordelijkheid op voor persoonsgegevens die zijn verzameld in het App Insights-logboek dat ze bezitten. Deze gedetailleerde logboeken worden alleen verzameld wanneer deze waarde is ingesteld op true.
ClientEnabled Ja Mogelijke waarden: true of false. Als true, verzendt u het Script aan de clientzijde van Application Insights voor het bijhouden van paginaweergaven en fouten aan de clientzijde.
ServerEnabled Ja Mogelijke waarden: true of false. Als true, verzendt de bestaande UserJourneyRecorder JSON als een aangepaste gebeurtenis naar Application Insights.
TelemetryVersion Ja De waarde moet zijn 1.0.0.

Zie Logboeken verzamelen voor meer informatie

ContentDefinitionParameters

Met behulp van aangepaste beleidsregels in Azure AD B2C kunt u een parameter verzenden in een querytekenreeks. Door de parameter door te geven aan uw HTML-eindpunt, kunt u de pagina-inhoud dynamisch wijzigen. U kunt bijvoorbeeld de achtergrondafbeelding op de registratie- of aanmeldingspagina van Azure AD B2C wijzigen, op basis van een parameter die u doorgeeft vanuit uw web- of mobiele toepassing. Azure AD B2C geeft de queryreeksparameters door aan uw dynamische HTML-bestand, zoals aspx-bestand.

In het volgende voorbeeld wordt een parameter met de naam campaignId doorgegeven met een waarde hawaii in de querytekenreeks:

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

Het element ContentDefinitionParameters bevat het volgende element:

Element Instanties Beschrijving
ContentDefinitionParameter 0:n Een tekenreeks die het sleutelwaardepaar bevat dat wordt toegevoegd aan de querytekenreeks van een URI voor het laden van inhoudsdefinities.

Het element ContentDefinitionParameter bevat het volgende kenmerk:

Kenmerk Vereist Description
Meting Ja De naam van het sleutelwaardepaar.

Zie De gebruikersinterface configureren met dynamische inhoud met behulp van aangepast beleid voor meer informatie

JourneyFraming

Het element JourneyFraming bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
Ingeschakeld Ja Hiermee kan dit beleid worden geladen binnen een iframe. Mogelijke waarden: false (standaard) of true.
Bronnen Ja Bevat de domeinen die als host voor het iframe worden geladen. Zie Azure B2C laden in een iframe voor meer informatie.

TechnicalProfile

Het element TechnicalProfile bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
ID Ja De waarde moet zijn PolicyProfile.

Het TechnicalProfile bevat de volgende elementen:

Element Instanties Beschrijving
DisplayName 1:1 De tekenreeks die de naam van het technische profiel bevat.
Beschrijving 0:1 De tekenreeks die de beschrijving van het technische profiel bevat.
Protocol 1:1 Het protocol dat wordt gebruikt voor de federatie.
Metagegevens 0:1 De verzameling item van sleutel-waardeparen die door het protocol worden gebruikt voor de communicatie met het eindpunt in de loop van een transactie om de interactie tussen de relying party en andere communitydeelnemers te configureren.
InputClaims 1:1 Een lijst met claimtypen die worden gebruikt als invoer in het technische profiel. Elk van deze elementen bevat verwijzingen naar een ClaimType dat al is gedefinieerd in de sectie ClaimsSchema of in een beleid waaruit dit beleidsbestand wordt overgenomen.
OutputClaims 1:1 Een lijst met claimtypen die als uitvoer in het technische profiel worden genomen. Elk van deze elementen bevat verwijzingen naar een ClaimType dat al is gedefinieerd in de sectie ClaimsSchema of in een beleid waaruit dit beleidsbestand wordt overgenomen.
SubjectNamingInfo 1:1 De onderwerpnaam die wordt gebruikt in tokens.

Het element Protocol bevat het volgende kenmerk:

Kenmerk Vereist Description
Meting Ja De naam van een geldig protocol dat wordt ondersteund door Azure AD B2C die wordt gebruikt als onderdeel van het technische profiel. Mogelijke waarden: OpenIdConnect of SAML2. De OpenIdConnect waarde vertegenwoordigt de Standaard van het OpenID Connect 1.0-protocol volgens de basisspecificatie van OpenID. Het SAML2 vertegenwoordigt de SAML 2.0-protocolstandaard volgens DE OASIS-specificatie.

Metagegevens

Wanneer het protocol is SAML, bevat een metagegevenselement de volgende elementen. Zie Opties voor het registreren van een SAML-toepassing in Azure AD B2C voor meer informatie.

Kenmerk Vereist Beschrijving
IdpInitiatedProfileEnabled Nee Geeft aan of de door IDP geïnitieerde stroom wordt ondersteund. Mogelijke waarden: true of false (standaard).
XmlSignatureAlgorithm Nee De methode die Azure AD B2C gebruikt om het SAML-antwoord te ondertekenen. Mogelijke waarden: Sha256, Sha384, , Sha512of Sha1. Zorg dat u het handtekeningalgoritmen aan beide zijden met dezelfde waarde configureert. Gebruik slechts het algoritme dat door uw certificaat wordt ondersteund. Als u de SAML Assertion wilt configureren, raadpleegt u de metagegevens van het technische profiel van de SAML-uitgever.
DataEncryptionMethod Nee Geeft de methode aan die azure AD B2C gebruikt om de gegevens te versleutelen met behulp van het AES-algoritme (Advanced Encryption Standard). De metagegevens bepalen de waarde van het <EncryptedData> element in het SAML-antwoord. Mogelijke waarden: Aes256 (standaard), Aes192, of Sha512 Aes128.
KeyEncryptionMethod Nee Geeft de methode aan die azure AD B2C gebruikt om de kopie te versleutelen van de sleutel die is gebruikt om de gegevens te versleutelen. De metagegevens bepalen de waarde van het <EncryptedKey> element in het SAML-antwoord. Mogelijke waarden: Rsa15 (standaard) - RSA PKCS-algoritme (Public Key Cryptography Standard) versie 1.5, RsaOaep - RSA Optimal Asymmetric Encryption Padding (OAEP) versleutelingsalgoritmen.
UseDetachedKeys Nee Mogelijke waarden: true of false (standaard). Wanneer de waarde is ingesteld op true, wijzigt Azure AD B2C de indeling van de versleutelde asserties. Als u losgekoppelde sleutels gebruikt, wordt de versleutelde assertie toegevoegd als een onderliggend element van de EncrytedAssertion in plaats van de EncryptedData.
WantsSignedResponses Nee Hiermee wordt aangegeven of Azure AD B2C de Response sectie van het SAML-antwoord ondertekent. Mogelijke waarden: true (standaard) of false.
RemoveMillisecondsFromDateTime Nee Hiermee wordt aangegeven of de milliseconden worden verwijderd uit datum/tijd-waarden in het SAML-antwoord (dit zijn IssueInstant, NotBefore, NotOnOrAfter en AuthnInstant). Mogelijke waarden: false (standaard) of true.
RequestContextMaximumLengthInBytes Nee Hiermee wordt de maximale lengte van de parameter SAML-toepassingen RelayState aangegeven. De standaardwaarde is 1000. Het maximum is 2048.

InputClaims

Het element InputClaims bevat het volgende element:

Element Instanties Beschrijving
InputClaim 0:n Een verwacht invoerclaimtype.

Het element InputClaim bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
ClaimTypeReferenceId Ja Een verwijzing naar een ClaimType dat al is gedefinieerd in de sectie ClaimsSchema in het beleidsbestand.
DefaultValue Nee Een standaardwaarde die kan worden gebruikt als de claimwaarde leeg is.
PartnerClaimType Nee Hiermee wordt de claim in een andere naam verzonden zoals geconfigureerd in de definitie claimtype.

OutputClaims

Het element OutputClaims bevat het volgende element:

Element Instanties Beschrijving
OutputClaim 0:n De naam van een verwacht claimtype in de ondersteunde lijst voor het beleid waarop de relying party zich abonneert. Deze claim fungeert als uitvoer voor het technische profiel.

Het Element OutputClaim bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
ClaimTypeReferenceId Ja Een verwijzing naar een ClaimType dat al is gedefinieerd in de sectie ClaimsSchema in het beleidsbestand.
DefaultValue Nee Een standaardwaarde die kan worden gebruikt als de claimwaarde leeg is.
PartnerClaimType Nee Hiermee wordt de claim in een andere naam verzonden zoals geconfigureerd in de definitie claimtype.

SubjectNamingInfo

Met het element SubjectNameingInfo bepaalt u de waarde van het tokenonderwerp:

  • JWT-token - de sub claim. Dit is een principal waarover het token informatie bevestigt, zoals de gebruiker van een toepassing. Deze waarde is onveranderbaar en kan niet opnieuw worden toegewezen of opnieuw worden gebruikt. Het kan worden gebruikt om veilige autorisatiecontroles uit te voeren, bijvoorbeeld wanneer het token wordt gebruikt voor toegang tot een resource. De onderwerpclaim wordt standaard gevuld met de object-id van de gebruiker in de map. Zie De configuratie van token, sessies en eenmalige aanmelding voor meer informatie.
  • SAML-token : het <Subject><NameID> element dat het onderwerpelement identificeert. De NameId-indeling kan worden gewijzigd.

Het element SubjectNamingInfo bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
ClaimType Ja Een verwijzing naar het PartnerClaimType van een uitvoerclaim. De uitvoerclaims moeten worden gedefinieerd in de relying party policy OutputClaims-verzameling met een PartnerClaimType. Bijvoorbeeld <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> of <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" />.
Notatie Nee Wordt gebruikt voor SAML Relying Party's om de NameId-indeling in te stellen die wordt geretourneerd in de SAML-assertie.

In het volgende voorbeeld ziet u hoe u een OpenID Connect-relying party definieert. De informatie over de onderwerpnaam is geconfigureerd als het objectIdvolgende:

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

Het JWT-token bevat de sub claim met de objectId van de gebruiker:

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

In het volgende voorbeeld ziet u hoe u een SAML-relying party definieert. De informatie over de onderwerpnaam is geconfigureerd als de objectIden de NameId format is opgegeven:

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