我正在使用Azure B2C连接到外部OpenID连接身份提供商,我在B2C中创建了一个基本用户流,它可以工作,但只带回了少量声明,因此我需要创建一个自定义策略来将自定义输入参数传递到我的IDP并收集其他声明。
我从SocialAndLocalAccount示例开始,并使用我的IDP的详细信息进行了修改:
TrustFrameworkBase.xml(缩短至技术简介+用户体验)
...
Subject
string
UI Locales
string
Special parameter passed for account authentication to Tell Us Once.
Given Name
string
Your given name (also known as first name).
TextBox
Surname
string
Your surname (also known as family name or last name).
TextBox
Date Of Birth
string
Your date of birth.
TextBox
...
tellusonce
Tell Us Once
Tell Us Once Login
Login through Tell Us Once
this is where i put my client id
Tell Us Once
this is where my metadata is
code
form_post
openid
POST
false
...
objectId
SkipThisOrchestrationStep
TrustFrameworkExtensions.xml
itpauthdev.onmicrosoft.com
B2C_1A_TrustFrameworkBase
tellusonce
Tell Us Once
Tell Us Once Login
Login through Tell Us Once
this is where i put my client id
Tell Us Once
this is where my metadata is
code
form_post
openid
POST
false
objectId
SkipThisOrchestrationStep
签名_注册_oidc.xml
itpauthdev.onmicrosoft.com
B2C_1A_TrustFrameworkExtensions
PolicyProfile
当我点击"B2C“时_1A_签名_注册_然后选择Run User Flow我会看到我的IDP的登录屏幕,一旦我成功登录,我的IDP就会收到来自IDP的授权码响应,我的IDP已经配置了"/authresp“重定向uri根据微软documentation(底部的“重定向Uri”部分),但是看起来"/authresp“并没有将代码交换为id_令牌,因为当它重定向到jwt.ms时,我得到"token不包含有效的颁发者“。
Fiddler代码响应
通过使用fiddler的检查器,我可以看到IDP的端点正在响应如下所示的代码(而不是实际的代码):
OIDC Form_Post Response
JavaScript is disabled. We strongly recommend to enable it. Click the button below to continue .
小提琴手AuthResp响应
再次使用Fiddler,我可以看到AuthResp不会将代码交换为id_令牌使用IDP的令牌端点(或者遇到错误,我没有得到任何有用的信息)。取而代之的是,我回来了:
Object moved
Object moved to here.
问题
我在文档中读到"OpenIDConnect“技术概要文件会自动将代码交换为id令牌,但我似乎找不到文档,我的配置是否遗漏了一个步骤,或者我是否必须通过额外的用户旅程手动完成此操作?
如果"/authresp“和令牌端点之间存在错误通信,是否可以在哪里获得更具描述性的错误消息?jwt.ms和审计日志都显示"Token不包含有效的颁发者“。
发布于 2021-02-27 06:29:04
该错误意味着来自OIDC提供程序的id令牌具有一个颁发者(iss)声明,该声明与众所周知的OIDC配置端点中的颁发者不匹配。您可以将颁发者元素添加到TUO-OpenIdConnect技术配置文件的元数据中,以使用令牌中显示的值覆盖它。
颁发者: OpenID连接身份提供者的唯一标识符。颁发者元数据的值优先于在OpenID熟知配置终结点中指定的颁发者。如果指定,Azure AD B2C将检查身份提供者返回的令牌中的iss声明是否等于颁发者元数据中指定的声明。
发布于 2021-02-26 15:58:02
我认为登录的技术配置文件配置不正确。中可以找到使用OpenIdConnect的工作示例初学者包..。
请在示例中参考,例如
login-NonInteractive
login-NonInteractive
https://stackoverflow.com/questions/66380662
复制相似问题