首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Azure B2C -提供的令牌不包含有效的颁发者

Azure B2C -提供的令牌不包含有效的颁发者
EN

Stack Overflow用户
提问于 2021-02-26 13:36:30
回答 2查看 563关注 0票数 0

我正在使用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不包含有效的颁发者“。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-27 06:29:04

该错误意味着来自OIDC提供程序的id令牌具有一个颁发者(iss)声明,该声明与众所周知的OIDC配置端点中的颁发者不匹配。您可以将颁发者元素添加到TUO-OpenIdConnect技术配置文件的元数据中,以使用令牌中显示的值覆盖它。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/openid-connect-technical-profile#metadata

颁发者: OpenID连接身份提供者的唯一标识符。颁发者元数据的值优先于在OpenID熟知配置终结点中指定的颁发者。如果指定,Azure AD B2C将检查身份提供者返回的令牌中的iss声明是否等于颁发者元数据中指定的声明。

票数 1
EN

Stack Overflow用户

发布于 2021-02-26 15:58:02

我认为登录的技术配置文件配置不正确。中可以找到使用OpenIdConnect的工作示例初学者包..。

请在示例中参考,例如

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66380662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档