- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Azure B2C 中,以编程方式创建用户后,我想通过电子邮件向用户发送一个链接,以便他们可以设置密码。为此,我使用自己的电子邮件提供商,而不是 B2C - 因此我只需要一个可以包含在“欢迎”电子邮件中的 URI。
该链接需要专门针对他们,这样当他们点击该链接时,就不必重新输入电子邮件地址并执行整个电子邮件验证过程。
我正在使用 B2C 自定义策略,根据文档,它应该允许我向名为 id_token_hint
的 URL 添加查询字符串。 。这是一个自签名的 JWT token ,其中包含我想要传递给我的策略的声明(在我的例子中为 email
)。
我正在遵循这两个链接的指导/说明:
我正在主持 .well-known
我的自签名证书的端点 - 并且可以在测试时看到 B2C 正在调用这两个端点。
我的问题是我无法获得使用我嵌入的电子邮件的策略 id_token_hint
JWT token 。
我有一个可以使用它的技术配置文件...
<TechnicalProfile Id="IdTokenHint_ExtractClaims">
<DisplayName>My ID Token Hint TechnicalProfile</DisplayName>
<Protocol Name="None" />
<Metadata>
<Item Key="METADATA">https://<my-domain>/.well-known/openid-configuration</Item>
<Item Key="issuer">https://localhost/</Item>
</Metadata>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>
</TechnicalProfile>
我从我的用户旅程中引用了它......
<OrchestrationStep Order="1" Type="GetClaims" CpimIssuerTechnicalProfileReferenceId="IdTokenHint_ExtractClaims" />
引用这样的用户旅程(即使用 CpimIssuerTechnicalProfileReferenceId
),这就是上面文档所说的,不允许我将该电子邮件添加为 <InputClaim>
在下一个技术简介中。然后在尝试上传时会出现此验证错误...
“声明类型“电子邮件”是依赖方技术配置文件的输出声明,但它不是用户旅程“DanTest”的任何步骤中的输出声明。”
尽管如此,它是 IdTokenHint_ExtractClaims
的输出声明!
如果我将编排步骤更改为如下所示...
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="IdTokenHint_ExtractClaims" TechnicalProfileReferenceId="IdTokenHint_ExtractClaims" />
</ClaimsExchanges>
</OrchestrationStep>
然后就成功上传了。但是,然后我收到一个运行时错误,说明了这一点...
“已尝试为 ID 为“mytenant.onmicrosoft.com”的租户的 ID 为“B2C_1A_dantest”的策略中 ID 为“IdTokenHint_ExtractClaims”的技术配置文件中不支持的协议(protocol)“None”解析协议(protocol)处理程序。”
我正在努力寻找下一步该尝试什么。你知道我做错了什么吗?
最佳答案
除了指定 ID token 提示技术配置文件之外,您还需要将声明作为输入声明添加到依赖方技术配置文件中:
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUp" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" PartnerClaimType="userId" />
</InputClaims>
<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>
文档:https://learn.microsoft.com/en-us/azure/active-directory-b2c/id-token-hint#configure-your-policy
关于Azure B2C `id_token_hint` 和自定义策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76395311/
在 Azure B2C 中,以编程方式创建用户后,我想通过电子邮件向用户发送一个链接,以便他们可以设置密码。为此,我使用自己的电子邮件提供商,而不是 B2C - 因此我只需要一个可以包含在“欢迎”电子
我正在使用规范“https://openid.net/specs/openid-connect-session-1_0.html#RPLogout” ' 为了实现该功能,RP 发起注销。我需要知道的是
Keycloak 18 是否可以通过直接 API 调用 Keycloak 服务器获取注销 url 所需的 id_token_hint 值?如果是这样,你能告诉我怎么做吗? 此外,在客户端保留 id_t
Keycloak 18 是否可以通过直接 API 调用 Keycloak 服务器获取注销 url 所需的 id_token_hint 值?如果是这样,你能告诉我怎么做吗? 此外,在客户端保留 id_t
我是一名优秀的程序员,十分优秀!