【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!

这篇具有很好参考价值的文章主要介绍了【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

使用 Azure AD 注册应用 Oauth2 v2.0的终结点(OAuth 2.0 token endpoint (v2): https://login.partner.microsoftonline.cn/<your tenant id>/oauth2/v2.0/token ) 获取Token,解析出来依旧为v1.0,如何解决呢?

请求Method:

POST

请求URL

https://login.partner.microsoftonline.cn/<your tenant id>/oauth2/v2.0/token

请求的Body

tenant:<your tenant id>
client_id:AAD注册应用的Application ID
scope:api://<AAD注册应用的 Expose an API -- Application ID URI>/.default
grant_type:client_credentials
client_secret:<密码>

执行后的结果为:
{
    "token_type": "Bearer",
    "expires_in": 3599,
    "ext_expires_in": 3599,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIs... ...4ei78w"
}

 Postman执行截图:

【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!

但是,对生成的Access_Token内容进行解码(Decode)时,结果发现version 为 1.0 :

JWT 解析地址:https://jwt.ms/

【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!

 文章来源地址https://www.toymoban.com/news/detail-433602.html

问题解答

经过对Azure AD的应用注册的了解,它的程序清单中,存在一个属性值来控制生成的令牌版本(Token Version)。这个属性值就是 accessTokenAcceptedVersion 

它的解释是:https://docs.azure.cn/zh-cn/active-directory/develop/reference-app-manifest#accesstokenacceptedversion-attribute

指定资源的访问令牌版本。 此参数会更改 JWT 的版本和格式。

accesstokenAcceptedVersion 的可能值为 1、2 或为 null。 如果值为 null,则此参数默认为 1,这对应于 v1.0 终结点。

使用的端点 v1.0 或 v2.0 由客户端选择,仅影响 id_tokens 的版本。 资源需要显式配置 accesstokenAcceptedVersion 以指示受支持的访问令牌格式。

根据以上说明,返回到Azure AD的注册应用页面,查看程序清单,检查 accessTokenAcceptedVersion 的值

【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!

基于以上发现,确定解决方案为:修改 accessTokenAcceptedVersion 的值为 2 .

 

操作演示动画

第一部分:修改 accessTokenAcceptedVersion 

【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!

 

第二部分:验证 Access Token

【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!

 

参考资料

Azure Active Directory 应用清单:https://docs.azure.cn/zh-cn/active-directory/develop/reference-app-manifest#accesstokenacceptedversion-attribute

【Azure API 管理】在 Azure API 管理中使用 OAuth 2.0 授权和 Azure AD 保护 Web API 后端,在请求中携带Token访问后报401的错误 : https://www.cnblogs.com/lulight/p/14378218.html

【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate() : https://www.cnblogs.com/lulight/p/16365869.html

 

到了这里,关于【Azure Developer】Azure AD 注册应用的 OAuth 2.0 v2 终结点获取的 Token 解析出来依旧为v1, 这是什么情况!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OAuth 2.0 授权认证详解

    1.1 OAuth 2.0 应用场景 OAuth 2.0 标准目前被广泛应用在第三方登录场景中,以下是虚拟出来的角色,阐述 OAuth2 能帮我们干什么,引用阮一峰这篇理解OAuth 2.0中的例子: 有一个\\\"云冲印\\\"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让\\\"云冲印\\\"读取

    2024年02月04日
    浏览(31)
  • OAuth 2.0(Open Authorization 2.0)授权框架入门介绍

    OAuth 2.0-01-Overview OAuth2-02-java 整合 OAuth2-03-springboot 整合 OAuth 2.0(Open Authorization 2.0)是一种授权框架,允许第三方应用程序访问用户在另一个服务提供者上托管的资源,而无需共享用户的凭据(例如用户名和密码)。 它已成为许多网络服务的标准授权协议,包括社交媒体平台

    2024年04月08日
    浏览(43)
  • 【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例

    查看官方文档“ Get a user ” , 产生了一个操作示例的想法,在中国区Azure环境中,演示如何获取AAD User信息。   使用Microsoft Graph API,演示如何获取AAD User信息,因参考文档是针对Global Azure,所以文档种的URL为:  需要修改为   那么:如何来获取Access Token呢?    1) 设置登录

    2023年04月13日
    浏览(48)
  • Spring Security OAuth 2.0

    1 概念 OAuth 2.0 到底是什么呢?我们先从字面上来分析下。OAuth 2.0 一词中的字母 “O” 是 Open 的简称,表示 “开放” , “Auth” 表示 “授权”,连在一起就表示 “开放授权”。 OAuth 2.0是一种授权框架,提供了一套规范和协议,用于实现授权流程和访问令牌的管理,而非单个

    2024年02月16日
    浏览(50)
  • 05 - 如何安全、快速地接入OAuth 2.0?

    在第 3 节,已经讲了授权服务的流程,如果还记得的话,当时特意强调了一点,就是 授权服务将 OAuth 2.0 的复杂性都揽在了自己身上 ,这也是授权服务为什么是 OAuth 2.0 体系的核心的原因之一。 虽然授权服务做了大部分工作,但是呢,在 OAuth 2.0 的体系里面,除了资源拥有者

    2024年03月27日
    浏览(62)
  • Azure AD认证和Azure AD B2C的token获取

    工作当中使用过Azure AD认证和B2C的认证,今天抽时间再回顾一下。 个人理解比较浅显,我认为Azure AD和Azure AD B2C都可作为用户管理的系统,他们提供了自己的登录认证画面,统一使用Graph API对自己的用户和其他功能做管理。 Azure AD功能强大,微软的老牌认证方式,可以很方便

    2024年02月07日
    浏览(47)
  • Azure基础:什么是Azure AD ?(23)

    在谈论标识和访问时,你需要了解两个基本概念: 身份验证 (AuthN) 和 授权 (AuthZ) 。 身份验证和授权支持出现的其他一切情况。 它们在标识和访问过程中按顺序发生。 让我们简单了解一下身份验证和授权。 什么是身份验证? 身份验证是确定要访问资源的个人或服务的标识的

    2024年02月05日
    浏览(42)
  • Java实现Google授权登录,OAuth 2.0登录

    首先创建OAuth 2.0 客户端 ID 配置url,必须是 https 的,同时复制好客户端id 和密钥 配置回调url 回调接口

    2024年02月14日
    浏览(49)
  • 微信小程序——单点登录,OAuth 2.0,openid

    单点登录 (Single Sign-On,简称SSO)是一种身份认证的机制,允许用户在多个应用程序之间只需进行一次登录,即可访问所有相互信任的应用程序,而无需再次输入用户名和密码。SSO可以提供更好的用户体验和简化的身份验证流程。 OAuth 2.0 是一种开放标准的授权协议,用于授

    2024年02月07日
    浏览(45)
  • 【授权与认证】OAuth 2.0 和 OIDC 的异同点

    开发者谈 | OAuth 2.0 和 OIDC 协议的关系?(内含必看案例) 【Web 安全】CSRF 攻击详解 OAuth 2.0 的一个简单解释 OAuth 2.0 的四种方式 什么是Oauth2.0,Oauth2.0的四种授权模式 简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系

    2024年01月17日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包