Delen via


RelyingParty

Notitie

In Azure Active Directory B2C is een aangepast beleid voornamelijk bedoeld om complexe scenario's aan te pakken. Voor de meeste scenario's raden we u aan de 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 bureaubladtoepassing, 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 beleidsbestand 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>
  ...

Het optionele RelyingParty-element bevat de volgende elementen:

Element Instanties Description
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 het gebruikerstraject.
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 Azure AD B2C.

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

Eindpunten

Het element Eindpunten bevat het volgende element:

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

Het eindpuntelement bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
Id Yes Een unieke id van het eindpunt.
UserJourneyReferenceId Yes Een id van het gebruikerstraject in het beleid. Zie Gebruikerstrajecten voor meer informatie

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

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

DefaultUserJourney

Het DefaultUserJourney element geeft een verwijzing naar de id van het gebruikerstraject op die is gedefinieerd in het basis- of uitbreidingsbeleid. In de volgende voorbeelden ziet u het gebruikerstraject voor registratie of aanmelding dat is opgegeven in het element RelyingParty :

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 Yes Een id van het gebruikerstraject in het beleid. Zie Gebruikerstrajecten voor meer informatie

UserJourneyBehaviors

Het element UserJourneyBehaviors bevat de volgende elementen:

Element Instanties Description
Eenmalige aanmelding 0:1 Het bereik van het sessiegedrag voor eenmalige aanmelding (SSO) van een gebruikerstraject.
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 Azure AD de sessiecookie van B2C 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 sleutelwaardeparen die moeten worden toegevoegd aan de laad-URI van de inhoudsdefinitie.
JourneyFraming 0:1 Hiermee staat u toe dat de gebruikersinterface van dit beleid in een iframe wordt 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 scriptexecution-element .

Eenmalige aanmelding

Het element SingleSignOn bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
Bereik Yes 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 twee beleidstrajecten voor een tenant doorloopt, 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 indient. Een gebruiker die bijvoorbeeld twee beleidstrajecten voor een toepassing doorloopt, 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 bijvoorbeeld twee beleidstrajecten doorloopt voor een vertrouwensframework, wordt gevraagd om een id-provider te selecteren bij het schakelen tussen beleidsregels.
KeepAliveInDays No 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 No Forceer het doorgeven van een eerder uitgegeven id-token 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 Yes De waarde moet zijn ApplicationInsights.
InstrumentationKey Yes De tekenreeks die de instrumentatiesleutel voor het Element Application Insights bevat.
DeveloperMode Yes Mogelijke waarden: true of false. Als true, versnelt Application Insights de telemetrie via de verwerkingspijplijn. Deze instelling is geschikt voor ontwikkeling, maar beperkt bij grote volumes. De gedetailleerde activiteitenlogboeken zijn alleen ontworpen om te helpen bij het ontwikkelen van aangepaste beleidsregels. Gebruik de ontwikkelmodus 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 zich voor persoonsgegevens die worden verzameld in het App Insights-logboek waar hij eigenaar van is. Deze gedetailleerde logboeken worden alleen verzameld wanneer deze waarde is ingesteld op true.
ClientEnabled Yes Mogelijke waarden: true of false. Als true, verzendt het Application Insights-script aan de clientzijde voor het bijhouden van paginaweergaven en fouten aan de clientzijde.
ServerEnabled Yes Mogelijke waarden: true of false. Als true, verzendt de bestaande UserJourneyRecorder JSON als een aangepaste gebeurtenis naar Application Insights.
TelemetryVersion Yes De waarde moet zijn 1.0.0.

Zie Logboeken verzamelen voor meer informatie

ContentDefinitionParameters

Door aangepast beleid te gebruiken in Azure AD B2C, kunt u een parameter in een querytekenreeks verzenden. 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 de querytekenreeksparameters doorgegeven aan uw dynamische HTML-bestand, zoals het ASPX-bestand.

In het volgende voorbeeld wordt een parameter met de naam campaignId doorgegeven met de waarde van 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 Description
ContentDefinitionParameter 0:n Een tekenreeks die het sleutelwaardepaar bevat dat wordt toegevoegd aan de querytekenreeks van een laad-URI voor inhoudsdefinities.

Het element ContentDefinitionParameter bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
Naam Yes 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 Yes Hiermee kan dit beleid worden geladen binnen een iframe. Mogelijke waarden: false (standaard) of true.
Bronnen Yes 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 Yes De waarde moet zijn PolicyProfile.

Het TechnicalProfile bevat de volgende elementen:

Element Instanties Description
DisplayName 1:1 De tekenreeks die de naam van het technische profiel bevat.
Description 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/waarde-paren die door het protocol worden gebruikt voor communicatie met het eindpunt in de loop van een transactie om 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 een verwijzing naar een ClaimType die al is gedefinieerd in de sectie ClaimsSchema of in een beleid waarvan 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 een verwijzing naar een ClaimType die al is gedefinieerd in de sectie ClaimsSchema of in een beleid waarvan dit beleidsbestand wordt overgenomen.
SubjectNamingInfo 1:1 De onderwerpnaam die wordt gebruikt in tokens.

Het element Protocol bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
Naam Yes De naam van een geldig protocol dat wordt ondersteund door Azure AD B2C dat wordt gebruikt als onderdeel van het technische profiel. Mogelijke waarden: OpenIdConnect of SAML2. De OpenIdConnect waarde vertegenwoordigt de OpenID Connect 1.0-protocolstandaard volgens de OpenID-basisspecificatie. De 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 No Geeft aan of de door IDP geïnitieerde stroom wordt ondersteund. Mogelijke waarden: true of false (standaard).
XmlSignatureAlgorithm No 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. Zie Metagegevens van het technische profiel van SAML-verlener om de SAML-assertie te configureren.
DataEncryptionMethod No 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, Sha512of Aes128.
KeyEncryptionMethod No Geeft de methode aan die Azure AD B2C gebruikt voor het versleutelen van de kopie 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) - PKCS-algoritme (Public Key Cryptography Standard) rsa versie 1.5, RsaOaep - RSA Optimal Asymmetric Encryption Padding (OAEP) versleutelingsalgoritmen.
UseDetachedKeys No 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 No Geeft aan of Azure AD B2C de Response sectie van het SAML-antwoord ondertekent. Mogelijke waarden: true (standaard) of false.
RemoveMillisecondsFromDateTime No Geeft aan of de milliseconden worden verwijderd uit datum/tijd-waarden in het SAML-antwoord (zoals IssueInstant, NotBefore, NotOnOrAfter en AuthnInstant). Mogelijke waarden: false (standaard) of true.
RequestContextMaximumLengthInBytes No Geeft de maximale lengte van de parameter SAML-toepassingen aanRelayState . De standaardwaarde is 1000. Het maximum is 2048.

InputClaims

Het element InputClaims bevat het volgende element:

Element Instanties Description
InputClaim 0:n Een verwacht type invoerclaim.

Het element InputClaim bevat de volgende kenmerken:

Kenmerk Vereist Beschrijving
ClaimTypeReferenceId Yes Een verwijzing naar een ClaimType dat al is gedefinieerd in de sectie ClaimsSchema in het beleidsbestand.
Standaardwaarde No Een standaardwaarde die kan worden gebruikt als de claimwaarde leeg is.
PartnerClaimType No Hiermee verzendt u de claim in een andere naam zoals geconfigureerd in de ClaimType-definitie.

OutputClaims

Het element OutputClaims bevat het volgende element:

Element Instanties Description
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 Yes Een verwijzing naar een ClaimType dat al is gedefinieerd in de sectie ClaimsSchema in het beleidsbestand.
Standaardwaarde No Een standaardwaarde die kan worden gebruikt als de claimwaarde leeg is.
PartnerClaimType No Hiermee verzendt u de claim in een andere naam zoals geconfigureerd in de ClaimType-definitie.

OnderwerpNaaminfo

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 Token, sessie en configuratie van 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 Yes Een verwijzing naar het PartnerClaimType van een uitvoerclaim. De uitvoerclaims moeten worden gedefinieerd in de OutputClaims-verzameling van relying party-beleid met een PartnerClaimType. Bijvoorbeeld <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" /> of <OutputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="signInName" />.
Indeling No 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 de 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>

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>