2017-11-10 3 views
2

Wir haben 3 verschiedene Anwendungen, die unterschiedliche Sätze von Verlängerungsansprüchen erfordern. Anwendung A - Anspruch A1, Anspruch A2, anspruch A3 Anwendung B - Anspruch B1, Anspruch B2, Anspruch B3Beschränken von Ansprüchen durch App in Azure AD B2C

Wir definierten die sechs Ansprüche in TrustFrameworkExtensions, die verschiedene TechnicalProfiles aktualisiert, um die Eingabe vom Benutzer zu übernehmen und auch schreiben es zum Verzeichnis.

Um die Bedürfnisse der einzelnen Anwendungen zu unterstützen, haben wir 2 RP-Dateien erstellt, eine für jede Anwendung und die für die Apps spezifische Benutzerreise definiert.

Die 6 Ansprüche erscheinen für beide Apps, und wir wollen die Ansprüche per App einschränken.

Versuchte alles von TrustFrameworkExtensions in RP-Datei zu kopieren, die RP nicht und wirft folgt einen Fehler nicht geladen als

kann nicht Politik laden. Grund: Validierung fehlgeschlagen: 3 Validierungsfehler in der Richtlinie "B2C_1A_1182017SIGNUP_SIGNIN" des Mandanten "XXXXXXXXX.onmicrosoft.com" gefunden.

Ein erforderliches Metadatenelement mit dem Schlüssel "ApplicationObjectId" wurde im TechnicalProfile mit der ID "AAD-UserWriteUsingAlternativeSecurityId" in der Richtlinie "B2C_1A_1182017signup_signin" des Mandanten "XXXXXXXXX.onmicrosoft.com" nicht gefunden.

Ein erforderlicher Metadateneintrag mit dem Schlüssel "ApplicationObjectId" wurde im TechnicalProfile mit der ID "AAD-UserWriteUsingLogonEmail" in der Richtlinie "B2C_1A_1182017signup_signin" des Mandanten "XXXXXXXXX.onmicrosoft.com" nicht gefunden.

A erforderlich Metadatum mit der Taste "ApplicationObjectId" wurde in der TechnicalProfile mit der ID "AAD-UserWriteProfileUsingObjectId" in der Politik "B2C_1A_1182017signup_signin" des Mieters "XXXXXXXXX.onmicrosoft.com" nicht gefunden.

Schätzen Sie Rat und Anleitung zur Unterstützung mehrerer Apps mit unterschiedlichen Ansprüchen.

Antwort

0

Verwenden Sie <RelyingParty><TechnicalProfile><OutputClaims>, um die zurückgegebenen Ansprüche zu steuern.

<RelyingParty> 
    <DefaultUserJourney ReferenceId="SignInAppA" /> 
    <TechnicalProfile Id="PolicyProfile"> 
     <DisplayName>PolicyProfile</DisplayName> 
     <Protocol Name="OpenIdConnect" /> 
     <OutputClaims> 
     <OutputClaim ClaimTypeReferenceId="ClaimA1" /> 
     </OutputClaims> 
     <SubjectNamingInfo ClaimType="sub" /> 
    </TechnicalProfile> 
</RelyingParty> 

und

<RelyingParty> 
    <DefaultUserJourney ReferenceId="SignInAppB" /> 
    <TechnicalProfile Id="PolicyProfile"> 
     <DisplayName>PolicyProfile</DisplayName> 
     <Protocol Name="OpenIdConnect" /> 
     <OutputClaims> 
     <OutputClaim ClaimTypeReferenceId="ClaimB1" /> 
     </OutputClaims> 
     <SubjectNamingInfo ClaimType="sub" /> 
    </TechnicalProfile> 
</RelyingParty> 
+1

Danke spottedman. Als ich die RP-Dateien erstellt habe, habe ich die App-spezifischen Ansprüche in die einzelnen RP-Dateien geschrieben, ähnlich wie der Vorschlag. Trotzdem hat es nicht funktioniert. Ich habe 2 Claims und 2 RPs ... Ein RP mit beiden Claims und der andere RP mit nur einem Claim. Die Ansprüche erscheinen zum Zeitpunkt der lokalen Kontoanmeldung. –

+0

Hmmm ... Ich habe die oben genannten Tests vor dem Posten durchgeführt, also rufst du vielleicht nicht das RP an, du denkst du bist? – spottedmahn

0

verwenden Erweiterung in Ihren benutzerdefinierten Richtlinienattribute müssen Sie einige Konfiguration zu Ihrer Datei hinzufügen Einbeziehung des b2c-extensions-App, die für jeden im Portal automatisch erstellt und registriert B2C Mieter.

In Ihrem Fall, Sie scheinen die ApplicationObjectID und möglicherweise die ClientId des b2c-extensions-App im Metadata Schlüssel Abschnitt Ihres AAD-Common technischen Profils zu fehlen.

Der Abschnitt Next Steps der Create Custom Attribute-Dokumentation beschreibt, wie diese Konfiguration durchgeführt wird.