2017-11-10 155 views
2

我們有3個不同的應用程序需要不同的擴展聲明集。 應用A - 如權利要求A1,如權利要求A2,權利要求A3 應用B - 如權利要求B1,如權利要求B2,如權利要求B3Azure AD中的應用程序限制聲明B2C

我們定義在TrustFrameworkExtensions六個權利要求,更新了各種TechnicalProfiles採取從用戶的輸入和以及寫它到目錄。

爲了支持各個應用程序的需求,我們創建了2個RP文件,每個應用程序都有一個文件,並定義了特定於應用程序的用戶旅程。

這6個索賠都顯示爲這兩個應用程序,我們希望通過應用程序限制索賠。

試圖複製一切從TrustFrameworkExtensions到RP文件時,RP不會加載和如下

無法上傳的政策引發錯誤。原因:驗證失敗:在租戶「XXXXXXXXX.onmicrosoft.com」的策略「B2C_1A_1182017SIGNUP_SIGNIN」中找到3個驗證錯誤。

在租戶「XXXXXXXXX.onmicrosoft.com」的策略「B2C_1A_1182017signup_signin」的TechnicalProfile中標識爲「AAD-UserWriteUsingAlternativeSecurityId」的密鑰爲「ApplicationObjectId」的必需元數據項未找到。

租戶「XXXXXXXXX.onmicrosoft.com」的策略「B2C_1A_1182017signup_signin」中的技術配置文件中標識爲「AAD-UserWriteUsingLogonEmail」的技術配置文件中找不到具有鍵「ApplicationObjectId」的必需元數據項目。

一個必需的元數據項與鍵「ApplicationObjectId」未在ID爲「AAD-UserWriteProfileUsingObjectId」的TechnicalProfile政策找到租客「B2C_1A_1182017signup_signin」「XXXXXXXXX.onmicrosoft.com」。

欣賞意見和指導,以支持具有不同聲明的多個應用程序。

回答

0

使用<RelyingParty><TechnicalProfile><OutputClaims>來控制返回的索賠。

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

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

謝謝你spottedman。當我製作RP文件時,我確實在各個RP文件中放入了特定於應用程序的聲明,類似於該建議。它仍然沒有工作。我有2個索賠和2個RP ......一個RP有兩個索賠,另一個RP只有一個索賠。聲明在本地帳戶註冊時顯示。 –

+0

嗯......我在發帖之前測試了上面所以也許你不打電話給RP你認爲你是? – spottedmahn

0

要在您的自定義策略擴展屬性,你需要一些配置添加到您的文件涉及自動爲每個創建並註冊在門戶網站的B2C的擴展,應用程序B2C租戶。

在你的情況,你似乎缺少了B2C的擴展應用程序內的ApplicationObjectID和可能ClientIdAAD-Common技術簡介的Metadata關鍵部分。

Create Custom Attribute文檔的Next Steps部分介紹瞭如何執行此配置。