AAD B2C UI 自定义 - MS 内容未出现
AAD B2C UI Customization - MS content not appearing
我正在尝试使用 AAD B2C 页面 UI 自定义以及此处所述的自定义策略:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-ui-customization-custom。我可以显示我的内容,但标准 B2C 内容似乎没有按预期合并。
我的 Extensions.xml 文件中有这个用户旅程:
<UserJourney Id="SignInB2CLocal">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
我有这个 ContentDefinition,也在我的 Extensions.xml 文件中:
<BuildingBlocks>
<ContentDefinitions>
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://kdesteasidmcustom.blob.core.windows.net/LocalSignUI.html</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0</DataUri>
<Metadata>
<Item Key="DisplayName">Idp selection page</Item>
<Item Key="language.intro">Sign in</Item>
</Metadata>
</ContentDefinition>
</ContentDefinitions>
</BuildingBlocks>
我的 UI 自定义文件 (LocalSignUI.html) 上面引用的非常简单:
<!DOCTYPE html>
<html>
<body>
<h1>It worked!</h1>
<div id="api"></div>
</body>
</html>
www.test-cors.org 似乎认为我的内容文件的 CORS 设置正确。当我尝试 运行 userjourney(使用 Azure AADB2C 门户的路径)时,我得到一个页面显示 "It worked!"(来自我的 html 内容文件),"Sign in"(不确定这是从哪里开始的,但可能来自 ContentDefinition "language.intro" 键),仅此而已 - 页面的其余部分是空白的。如果我检查页面源代码,有很多 javascript 和一些标签来涵盖无 cookie 和无-javascript 场景,但没有表单或输入标签。我查看了 application insights 中的日志信息并看到了对我的内容文件的引用,但没有明显的错误。
有什么想法吗?
谢谢!
马丁
我认为你至少需要一个 <head><title></title></head>
否则格式不正确 HTML 并且可能无法工作。
感谢@spottedmahn 的提示解决了!在我的 TrustFrameworkExtensions.xml 文件中,我创建了一个 ContentDefinition(在 BuildingBlocks -> ContentDefinitions 中),如下所示:
<ContentDefinition Id="api.signuporsignin">
<LoadUri>URL-OF-MY-CUSTOMIZATON-FILE</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0</DataUri>
<Metadata>
<Item Key="DisplayName">Signin and Signup</Item>
</Metadata>
</ContentDefinition>
UserJourney 的第一个编排步骤是 CombinedSignInAndSignUp
类型和 api.signuporsignin
的 ContentDefinitionReferenceID。看起来
ContentDefinition 中 DataUri 的 urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0
值是关键。我的自定义文件中的 Div 标签仅包含 id="api"
.
谢谢!
马丁
我正在尝试使用 AAD B2C 页面 UI 自定义以及此处所述的自定义策略:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-ui-customization-custom。我可以显示我的内容,但标准 B2C 内容似乎没有按预期合并。
我的 Extensions.xml 文件中有这个用户旅程:
<UserJourney Id="SignInB2CLocal">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
我有这个 ContentDefinition,也在我的 Extensions.xml 文件中:
<BuildingBlocks>
<ContentDefinitions>
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://kdesteasidmcustom.blob.core.windows.net/LocalSignUI.html</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:idpselection:1.0.0</DataUri>
<Metadata>
<Item Key="DisplayName">Idp selection page</Item>
<Item Key="language.intro">Sign in</Item>
</Metadata>
</ContentDefinition>
</ContentDefinitions>
</BuildingBlocks>
我的 UI 自定义文件 (LocalSignUI.html) 上面引用的非常简单:
<!DOCTYPE html>
<html>
<body>
<h1>It worked!</h1>
<div id="api"></div>
</body>
</html>
www.test-cors.org 似乎认为我的内容文件的 CORS 设置正确。当我尝试 运行 userjourney(使用 Azure AADB2C 门户的路径)时,我得到一个页面显示 "It worked!"(来自我的 html 内容文件),"Sign in"(不确定这是从哪里开始的,但可能来自 ContentDefinition "language.intro" 键),仅此而已 - 页面的其余部分是空白的。如果我检查页面源代码,有很多 javascript 和一些标签来涵盖无 cookie 和无-javascript 场景,但没有表单或输入标签。我查看了 application insights 中的日志信息并看到了对我的内容文件的引用,但没有明显的错误。
有什么想法吗?
谢谢!
马丁
我认为你至少需要一个 <head><title></title></head>
否则格式不正确 HTML 并且可能无法工作。
感谢@spottedmahn 的提示解决了!在我的 TrustFrameworkExtensions.xml 文件中,我创建了一个 ContentDefinition(在 BuildingBlocks -> ContentDefinitions 中),如下所示:
<ContentDefinition Id="api.signuporsignin">
<LoadUri>URL-OF-MY-CUSTOMIZATON-FILE</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0</DataUri>
<Metadata>
<Item Key="DisplayName">Signin and Signup</Item>
</Metadata>
</ContentDefinition>
UserJourney 的第一个编排步骤是 CombinedSignInAndSignUp
类型和 api.signuporsignin
的 ContentDefinitionReferenceID。看起来
ContentDefinition 中 DataUri 的 urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0
值是关键。我的自定义文件中的 Div 标签仅包含 id="api"
.
谢谢!
马丁