我有一个静态网络应用程序,它具有谷歌身份验证登录并且可以工作。
我有 azure 功能 - 开箱即用 - HttpExample。
无需身份验证即可访问 azure 功能。
在 GCP 客户端/oauth 配置中
授权的 JavaScript 起源
http://localhost:3000
https://i***.5.azurestaticapps.net
https://l***ons.azurewebsites.net
授权重定向 URI
http://localhost:3000
https://i***.5.azurestaticapps.net/.auth/login/google/callback
https://l***ons.azurewebsites.net
使用链接 - 配置提供程序我在 Azure 函数中配置了提供程序
我不确定要使用的重定向网址。
问题: 通过邮递员进行测试 - 使用承载令牌和使用静态 Web 应用程序获取的粘贴令牌来“获取”azure 功能的请求。
错误:410 未经授权
疑问:
如何解决这个问题?是不是设置有问题?
(以及如何调试/跟踪)
编辑2:
使用授权标头(使用邮递员的令牌)在 Azure 函数内进行代码 + 测试
错误:
安全问题:请求将身份验证令牌发送到不受信任的域“blah.azurewebsites.net”。仅应配置一组固定的域来接收身份验证令牌。命令名称:
编辑:
csharp 示例:(不知道如何在 java 中翻译/复制) https://github.com/stuartleeks/AzureFunctionsEasyAuth/
我已按照以下步骤访问受身份验证保护的功能应用程序。
创建一个函数应用程序并在身份验证中添加身份提供者。
导航到上面创建的 Entra ID 应用程序,打开 API 权限,添加权限=>我的 API=> 选择 API 并添加
user_impersonation
权限。
打开Expose API,可以看到暴露的API如下。
在应用程序 => 身份验证中添加重定向 URL
转到概述,注意“证书和机密”中提供的 Client_ID、租户 ID 和客户端机密。
使用凭据生成新的访问令牌:
GET https://functionapp.azurewebsites.net/api/HttpTrigger1
Grant_Type : Authorization Code
Auth URL : https://login.microsoftonline.com/<Tenant_ID>/oauth2/v2.0/authorize
Access Token URL : https://login.microsoftonline.com/<Tenant_ID>/oauth2/v2.0/token
Callback URL : <RedirectURL>
ClientID : <ClientID>
Client Secret : <Client_secret>
Scope : api://xxx/user_impersonation
点击 Generate Token 生成访问令牌,令牌将被保存,然后您就可以运行该函数了。
能够访问经过身份验证的函数应用程序并成功运行该函数。