【问题标题】:Azure Web App - Azure AD - SPA - `token` missing from response_typeAzure Web App - Azure AD - SPA - response_type 中缺少“令牌”
【发布时间】:2020-07-01 15:49:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: azure azure-active-directory implicit-flow


    【解决方案1】:

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

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

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

    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 > 站点 > > 配置 > 身份验证设置。

    2. 点击编辑。

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

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

    【讨论】:

    • 谢谢你的信息,亚历克斯。为了看看我是否可以在不进行额外调用的情况下让它工作,我去了资源页面并做了"additionalLoginParams": ["response_type=token", "resource=&lt;app_id&gt;"]这开始给我错误'The application requested an unsupported response type 'UnknownTokenType,BrowserIdToken,SessionToken,SignInStateToken,SharedSignInStateCachedCredentialService' when requesting a token.所以我去了“F it,我就打 /me 电话“我恢复了我的改变。现在我无法摆脱错误。现在授权请求代码、令牌和 id_token
    • 原来设置additionalLoginParams为null不为null;您必须设置为空数组[],它会为您将其转换为null。现在我又回到了原点,但是你知道为什么我在请求令牌时会出现这个错误吗?
    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 2018-02-07
    • 2020-05-10
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多