繁体   English   中英

Azure Web 应用程序 - Azure AD - SPA - response_type 中缺少“令牌”

[英]Azure Web App - Azure AD - SPA - `token` missing from response_type

我们正在使用 Azure Web 应用程序并使用 Web 应用程序的身份验证来强制执行 Azure AD 身份验证。 我们让它有些工作,但正在尝试获取访问令牌,因为我们正在使用它来锁定 API 调用。 查看网络调用,对 MSFT 端点的授权调用只有响应类型的“open_id 代码”。 显然,我可以将响应的代码转换为访问令牌,但我也应该能够在回调中获得访问令牌。

我已经检查过清单上的 oauth2AllowImplicitFlow 设置为 true ,但这就是我能找到的全部内容。

知道如何将“令牌”添加到 response_type 列表中吗?

open_id :这是一个范围,而不是响应类型。 你可能是说id_token

code :表示应用服务正在执行授权代码流 它使用返回的代码将其交换为实际的访问令牌。

据我了解,您正在使用内置AppService 身份验证 您可能不需要更改 AppService 对您进行身份验证的方式。 有一个很好的教程,但基本上你需要做的就是在你的 SPA 中调用GET /.auth/me来接收令牌。 如果设置正确, GET /.auth/refresh刷新令牌。

GET https://xxx.azurewebsites.net/.auth/me


[
  {
    "access_token": "...",
    "expires_on": "2020-03-20T09:49:01.0000000Z",
    "id_token": "ey...",
    "provider_name": "aad",
    "refresh_token": "...",
    "user_claims": [
      {
        "typ": "foo",
        "val": "bar"
      },
      ...
    ],
    "user_id": "..."
  }
]

如果您真的想尝试弄乱内置身份验证,您可以尝试更改此设置(取自上述“刷新”说明)。 由于刷新功能,您可能需要执行部分操作。

Azure Active Directory :在https://resources.azure.com 中,执行以下步骤: 1. 在页面顶部,选择“读/写”。

  1. 在左侧浏览器中,导航到订阅 > 资源组 > > 提供者 > Microsoft.Web > 站点 > > 配置 > authsettings。

  2. 单击编辑。

  3. 修改以下属性。 替换为要访问的服务的 Azure Active Directory 应用程序 ID。

 "additionalLoginParams": ["response_type=code id_token", "resource=<app_id>"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM