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 , Application eller 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 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 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 true skickar 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 true skickar 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 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 | 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 , Sha512 eller 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 , 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) – 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 objectId
har 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>