[英]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. 在页面顶部,选择“读/写”。
在左侧浏览器中,导航到订阅 > 资源组 > > 提供者 > Microsoft.Web > 站点 > > 配置 > authsettings。
单击编辑。
修改以下属性。 替换为要访问的服务的 Azure Active Directory 应用程序 ID。
"additionalLoginParams": ["response_type=code id_token", "resource=<app_id>"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.