我尝试在 B2C 租户中配置 SSO,但未成功。
目前,我的 B2C 租户设置为通过使用自定义策略来验证用户对我的 Web 应用程序的访问。用户信息和凭据存储在租户的本地帐户中。身份验证后,JWT 将返回到我的 Web 应用程序,并且我的 Web 应用程序会创建一个 cookie 来维护会话。
由于需要向我们的业务合作伙伴生成 SAML 断言,我希望在我的租户中配置 SSO。我观察到,在调用登录自定义策略并成功登录 SSO cookie x-ms-cpim-sso:cbiab2c..... 后,已创建。但是,当我在同一浏览器上打开新选项卡并再次调用相同的登录自定义策略时,系统会提示我再次使用我的用户名和密码登录。我希望被带到 returnURI,因为我已经在第一个选项卡中进行了身份验证。就在此时,SSO cookie x-ms-cpim-sso:cbiab2c...已经消失了!
我已将以下内容添加到我的 RP XML 中
<UserJourneyBehaviors>
<SingleSignOn Scope="Tenant" KeepAliveInDays="1" />
<SessionExpiryType>Rolling</SessionExpiryType>
<SessionExpiryInSeconds>1800</SessionExpiryInSeconds>
<ScriptExecution>Allow</ScriptExecution>
</UserJourneyBehaviors>
我已在步骤 1 之前将以下内容添加到 UserJourney 中
<UserJourney Id="SignInSSO" DefaultCpimIssuerTechnicalProfileReferenceId="JwtIssuer">
<Authorization>
<AuthorizationTechnicalProfiles>
<AuthorizationTechnicalProfile ReferenceId="UserInfoAuthorization" />
</AuthorizationTechnicalProfiles>
</Authorization>
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signinUsername">
技术简介“UserInfoAuthorization”如下:
<TechnicalProfile Id="UserInfoAuthorization">
<DisplayName>UserInfo authorization</DisplayName>
<Protocol Name="None" />
<InputTokenFormat>JWT</InputTokenFormat>
<Metadata>
<Item Key="issuer">https://cbiab2cdev.b2clogin.com/042d9ae4-38a5-4443-9281-1234567890/v2.0/</Item>
<Item Key="audience">[ "0bc2ac13-bx10-3e4b-976f-1234567890" ]</Item>
<Item Key="client_assertion_type">urn:ietf:params:oauth:client-assertion-type:jwt-bearer</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
</OutputClaims>
</TechnicalProfile>
请指出我遗漏了什么以及做错了什么。
谢谢, 山姆
如果我已经在另一个选项卡中登录,我希望不会在浏览器的另一个选项卡上再次登录。
我已经通过从调用 URL 中删除“prompt=login”解决了该问题