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:
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 , Application eller 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 true på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 true skickar 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 true skickar 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 SAML
innehå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 , Sha512 eller 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 , Sha512 eller 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 objectId
konfigureras 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 objectId
konfigureras 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>