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 , , Application of 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 true Application 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=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
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. |
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 , , Sha512 of 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 SubjectNamingInfo 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 objectId
volgende:
<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": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
...
}
In het volgende voorbeeld ziet u hoe u een SAML-relying party definieert. De informatie over de onderwerpnaam is geconfigureerd als de objectId
en 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>