当前位置: 首页 > 知识库问答 >
问题:

无法从OAuth 2.0授权代码流获取访问令牌

廉博赡
2023-03-14

我正在尝试在多租户应用程序中实现 OAuth 2.0 授权代码流。

我首先在 login.microsoftonline.com/organizations/oauth2/v2.0/authorize 请求了“openid 配置文件电子邮件”范围的授权,然后使用我获得的代码以及 grant_type=authorization_code、client_id、client_secret redirect_uri 作为访问令牌 login.microsoftonline.com/organizations/oauth2/v2.0/token

我得到的响应只包含< code>id_token和< code>token_type=Bearer。为什么没有给我< code>access_token和< code>expired_at字段?

我尝试在令牌调用中再次提供范围,但响应返回相同。规范说它应该包含访问令牌。我也尝试了/常见endpoint,但事情是一样的。

共有1个答案

邢晗日
2023-03-14

您正在使用Azure AD v2.0终结点。您可以通过您的url中包含v2.0这一事实来判断这一点。

在v2.0endpoint中,如果您仅请求id_token中包含的范围(即openid配置文件电子邮件),而不请求任何其他范围(即https://outlook.office.com/contacts.read),您将仅获得一个id_token。这是因为你基本上是在告诉Azure AD你只想要个人资料信息,而不是和任何API对话,因此不需要访问令牌。

另一方面,如果你包含一个 api 的范围(即 https://outlook.office.com/contacts.read),你会得到一个access_code。

 类似资料:
  • 我遇到了使用文档签名 API 的第一个障碍,需要一些帮助。 我将docusignrestapi集合导入到Postman中。我设置了iKey、iSec、encodedKeys和codeFromUrl变量。 当尝试发送'01-授权代码授予访问令牌'post API时,我每次都得到以下响应。 我尝试从Postman中删除所有内容,包括环境,并从DocuSign中删除该应用程序,然后重新开始,以便我的所有

  • 密钥锁留档中写到,令牌endpoint可用于在授权代码流中获取临时代码,或通过隐式流、直接授权或客户端授权获取令牌。 但是即使使用response_type=code,我也无法获得授权码:只能获得令牌。我该怎么做呢? 我的测试请求: 资料来源:https://www.keycloak.org/docs/latest/server_admin/index.html#keycloak-服务器oidc-

  • 我试图使用以下所需信息从API生成访问令牌: 授权endpoint:https://api.paylocity.com/identityserver/connect/token 其他值请求必须在请求正文中发布以下表单编码值: grant_type=client_credentials范围=WebLinkAPI 我尝试使用Python'requests'包,但没有成功,请参见下面: 我已经验证了我的

  • 我正在尝试使用spotipy向特定用户验证我的python应用程序。我以前和其他一些用户做过这件事,没有任何问题。然而,每当我尝试使用这个用户时,我总是得到“{”错误“:“无效的授权”,“错误描述“:“无效的授权码”}” 我还尝试了几种手动方式,包括卷曲: curl-H“授权:基本OTQxNDliNjI3…WRhMzk5YTY2ZTliZWY=“-d授权类型=授权代码-d代码=AQByvdq4Vr

  • 接口说明 获取授权代码 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/access/v1.0.0/getHardWareCode 是否需要登录 否 请求字段说明 无 响应字段说明 无 响应成功示例 { "code": 0, "data": "134305892", "message":

  • 接口说明 获取授权代码 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/access/v1.0.0/get