Postman Azure AD B2C邮递员中的请求访问令牌

Postman Azure AD B2C邮递员中的请求访问令牌,postman,azure-ad-b2c,Postman,Azure Ad B2c,如何针对租户请求访问令牌 我尝试从Azure门户中的runnow获取url,并将其放入Auth url中,但这会产生以下错误: 更新 按照克里斯的回答,我现在已经克服了上述错误。我可以登录,但仍然无法获取访问令牌: AADB2C90085:服务遇到内部错误。请重新验证并重试。 相关ID:45c56d47-4739-465f-8e02-49ba5b3a1b86 时间戳:2017-11-16 15:27:52Z 对于Auth URL字段,您只需输入授权端点URL,而无需输入查询字符串参数:

如何针对租户请求
访问令牌


我尝试从Azure门户中的
runnow
获取url,并将其放入
Auth url
中,但这会产生以下错误:


更新

按照克里斯的回答,我现在已经克服了上述错误。我可以登录,但仍然无法获取访问令牌:

AADB2C90085:服务遇到内部错误。请重新验证并重试。 相关ID:45c56d47-4739-465f-8e02-49ba5b3a1b86 时间戳:2017-11-16 15:27:52Z


对于Auth URL字段,您只需输入授权端点URL,而无需输入查询字符串参数:

https://login.microsoftonline.com/te/{tenant}/{policy}/oauth2/v2.0/authorize
对于访问令牌URL字段:

https://login.microsoftonline.com/te/{tenant}/{policy}/oauth2/v2.0/token
对于回调URL字段,您必须输入在Azure AD B2C应用程序中注册的回复URL,例如:

https://www.getpostman.com/oauth2/callback
在Scope字段中,输入“openid”以及任何API访问范围

对于客户端身份验证字段,选择“在正文中发送客户端凭据”。

使用,我能够使用
隐式授予类型使其工作(无法使用授权代码格兰类型使其工作)


授予类型:
隐式

回调URL:我的B2C应用程序中定义的任何URL

验证URL:
https://login.microsoftonline.com/te/{tenant}/{policy}/oauth2/v2.0/authorize

客户端ID:
应用程序ID
来自我的B2C应用程序

作用域:
https://{tenant}.onmicrosoft.com/{web api应用程序id uri}/{Scope name}


客户端身份验证:
任何一个,都不重要

我只是想为繁荣添加一些额外的信息,因为我最近花了太长时间试图解决与错误AADB2C90085相关的问题,这个问题是Google上为数不多的结果之一

更新

按照克里斯的回答,我现在已经克服了上述错误。我可以登录,但仍然无法获取访问令牌:

AADB2C90085:服务遇到内部错误。请重新验证并重试。相关ID:45c56d47-4739-465f-8e02-49ba5b3a1b86时间戳:2017-11-16 15:27:52Z

以及:

使用@Chris Padgett的答案,我能够使用隐式授权类型使其工作(无法使用授权代码Gran Type使其工作)

我在使用授权代码流时收到此错误,因为我的B2C_1A_令牌SigningKeyContainer和B2C_1A_令牌EncryptionKeyContainer生成错误。一旦我按照指南中的错误停止发生

链接的相关摘录:

创建签名密钥

  • 选择策略键,然后选择添加
  • 对于选项,选择“生成”
  • 在名称中,输入TokenSigningKeyContainer。前缀B2C_1A_可能会自动添加
  • 对于密钥类型,选择RSA
  • 对于密钥用法,选择签名
  • 单击创建
  • 创建加密密钥

  • 选择策略键,然后选择添加
  • 对于选项,选择“生成”
  • 在名称中,输入TokenEncryptionKeyContainer。前缀B2C_1A_可能会自动添加
  • 对于密钥类型,选择RSA
  • 对于密钥使用,请选择加密
  • 单击创建

  • 我可以在Postman中获得B2C请求访问令牌,用于两种授权类型:
    grant\u type=implicit
    以及
    grant\u type=authorization\u code
    。我已经相应地打开了一个关于以下内容的问题:

    • 更新文档并提及也可以使用
      grant\u type=authorization\u code>(参见说明):
    有必要进行以下修改:

    grant\u type=implicit
    grant\u type=authorization\u code
    之间的唯一区别在于
    grant\u type=authorization\u code
    需要更多参数,如下所示:

    • 访问令牌(访问令牌请求)URL:“租户名称”。onmicrosoft.com/oauth2/v2.0/Token?p=B2C_1_“您的注册登录流的名称”

    • 客户端密码:为您的应用程序生成密钥:Azure门户->Azure AD B2C->应用程序->密钥->生成密钥


      • 2020-05-26更新

        如您所见,Microsoft更改了Azure Active Directory B2C的登录URL

        因此必须更新为:

        授予类型:
        隐式

        回调URL:我的B2C应用程序中定义的任何URL

        验证URL:
        https://{tenant}.b2clogin.com/te/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize

        客户端ID:我的B2C应用程序中的应用程序ID

        作用域:
        https://{tenant}.onmicrosoft.com/{web api应用程序id uri}/{Scope name}


        客户端身份验证:不管是哪一种,都没关系。

        获取此设置有点让人头疼。以下是我根据此线程中的答案拼凑而成的内容,经过更新以利用Postman的
        授权类型:授权码(带PKCE)

        信用也被用来作为起点

        使用:Azure B2C租户、JS SPA前端、Azure功能后端

        Azure门户(Azure广告B2C)
        • SPA和后端的设置或多或少如本MS文档所述(请小心,某些部分已过时!):

        • @SPA应用程序注册>身份验证刀片>将此值添加到“单页应用程序重定向URI”
          https://oauth.pstmn.io/v1/callback

        • @Azure AD B2C |应用程序注册,点击“端点”(蓝色地球图标@top)

        • 记录Azure AD B2C OAuth 2.0令牌端点(v2)和Azure AD B2C 2.0授权端点(v2)

        邮递员
        • 授权:Oauth 2.0
        • 将身份验证数据添加到:请求头
        配置新令牌