gpt4 book ai didi

azure - 如何调试 B2C 权限不足的 Azure 应用程序?

转载 作者:行者123 更新时间:2023-12-03 18:27:05 29 4
gpt4 key购买 nike

环境

我有一个 Azure B2C 租户,用于管理简单的用户名/密码注册和登录,遵循此处找到的示例:https://github.com/Azure-Samples/active-directory-b2c-javascript-hellojs-singlepageapp

租户管理前端 javascript/html 应用程序的身份验证,然后该前端应用程序与后端的 WebAPI 应用程序通信以获取其数据。

后端 WebAPI 取自此处的示例:https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi

这两个应用程序均已向租户注册,并且需要身份验证才能运行。

什么有效

直接从 Azure 门户进行测试时,身份验证效果非常好。

成功的授权请求:

Request URL:https://login.microsoftonline.com/dhzb2c.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_SiUpIn&client_id=2bb37577-246c-48a7-b047-2ce2a748dfda&nonce=defaultNonce&redirect_uri=http%3A%2F%2Flocalhost%3A65328%2Fredirect.html&scope=openid&response_type=id_token&prompt=login
Request Method:GET

什么不起作用

当尝试通过前端登录并在租户中注册后端时,我得到以下信息:

Correlation ID: 4ac6f519-0949-42e0-96a7-d84d14454bbb
Timestamp: 2017-07-10 23:07:48Z
AADB2C90205: This application does not have sufficient permissions against this web resource to perform the operation.

而且 API 后端永远无法到达。

不成功的授权请求:

Request URL:https://login.microsoftonline.com/tfp/dhzb2c.onmicrosoft.com/B2C_1_SiUpIn/oauth2/v2.0/authorize?client_id=2bb37577-246c-48a7-b047-2ce2a748dfda&response_type=token%20id_token&redirect_uri=http%3A%2F%2Flocalhost%3A65328%2Fredirect.html&state=%7B%22client_id%22%3A%222bb37577-246c-48a7-b047-2ce2a748dfda%22%2C%22network%22%3A%22adB2CSignInSignUp%22%2C%22display%22%3A%22page%22%2C%22callback%22%3A%22_hellojs_cprxketk%22%2C%22state%22%3A%22%22%2C%22redirect_uri%22%3A%22http%3A%2F%2Flocalhost%3A65328%2Fredirect.html%22%2C%22scope%22%3A%22openid%2Chttps%3A%2F%2Fdhzb2c.onmicrosoft.com%2Ftestb2capi%22%2C%22page_uri%22%3A%22http%3A%2F%2Flocalhost%3A65328%2Findex.html%22%7D&scope=openid%20https://dhzb2c.onmicrosoft.com/testb2capi
Request Method:GET

我尝试过的

我尝试查找日志,例如权限错误日志,它可以告诉您问题的具体情况,但没有找到。

问题

也许我需要在另一个地方寻找日志?

我还能做什么?

身份验证错误消息旨在限制它们提供的信息,因此必须有某种方法可以更详细地了解错误。我不知道什么?

最佳答案

首先,这没有回答我原来的问题,所以我不会将其标记为答案。我会让其他人给出真正的答案,也许相关性ID很重要?然而,这个答案确实解决了我的问题。

<小时/>

在 Azure B2C 中,权限称为“范围”。

这意味着为了在没有给定权限错误的情况下成功进行身份验证,需要以下内容:

(1) 后端应用程序必须发布范围

enter image description here

(2) 前端应用程序必须订阅该范围

enter image description here

(3) 授权请求必须在 scope 字段中包含范围。

Request URL:https://login.microsoftonline.com/tfp/dhzb2c.onmicrosoft.com/B2C_1_SiUpIn/oauth2/v2.0/authorize?client_id=2bb37577-246c-48a7-b047-2ce2a748dfda&response_type=token%20id_token&redirect_uri=http%3A%2F%2Flocalhost%3A65328%2Fredirect.html&state=%7B%22client_id%22%3A%222bb37577-246c-48a7-b047-2ce2a748dfda%22%2C%22network%22%3A%22adB2CSignInSignUp%22%2C%22display%22%3A%22page%22%2C%22callback%22%3A%22_hellojs_bb3gzjb8%22%2C%22state%22%3A%22%22%2C%22redirect_uri%22%3A%22http%3A%2F%2Flocalhost%3A65328%2Fredirect.html%22%2C%22scope%22%3A%22openid%2Chttps%3A%2F%2Fdhzb2c.onmicrosoft.com%2Ftestb2capi%2Fread%22%2C%22page_uri%22%3A%22http%3A%2F%2Flocalhost%3A65328%2F%22%7D&scope=openid%20https://dhzb2c.onmicrosoft.com/testb2capi/read
Request Method:GET

注意

认为您发布的范围名称并不重要,唯一重要的是至少使用一个范围。

关于azure - 如何调试 B2C 权限不足的 Azure 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023433/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com