【发布时间】:2020-05-10 05:26:39
【问题描述】:
我对身份验证、令牌交换和 Azure AD B2C 还很陌生。
我在我的门户中构建了一个 Azure AD B2C 租户,并将重定向 URI 设置为 localhost(我在 Visual Studio 上本地运行的一个 Azure 函数)。我知道在浏览器将您带到重定向 URI 后,它会通过 URI 将授权代码传回,我可以将该代码作为变量保存在我的函数中,但恐怕我不知道在那之后该怎么做. VS
[FunctionName("Login")]
public static string Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
string name = req.Query["code"];
return name;
}
我知道我必须向 /token 端点发出 POST 请求,但是当我传入授权码时,我会在邮递员中收到此响应
{
"error": "invalid_request",
"error_description": "AADSTS900144: The request body must contain the following parameter: 'grant_type'.\r\nTrace ID: a79790d9-5ab8-488e-bd5a-0e1feecd1d00\r\nCorrelation ID: 6f065d48-61d3-4193-99bf-e14f3a6951aa\r\nTimestamp: 2020-01-23 20:45:33Z",
"error_codes": [
900144
],
"timestamp": "2020-01-23 20:45:33Z",
"trace_id": "a79790d9-5ab8-488e-bd5a-0e1feecd1d00",
"correlation_id": "6f065d48-61d3-4193-99bf-e14f3a6951aa",
"error_uri": "https://login.microsoftonline.com/error?code=900144"
}
如何从我的函数将这些参数传递到主体到 /token 端点? 任何帮助,将不胜感激。最好的。
【问题讨论】:
-
您到底想要达到什么目的?使用 azure ad b2c 保护 azure 功能?验证azure函数并调用外部资源?
-
是的,完全正确。该应用程序的工作流程类似于通过 Azure AD B2C 的 new_user signInUp,ADB2C 生成一个 jwt 令牌并将其传递给 azure 函数
-
好的,但是 azure 函数会用这个令牌做什么?
-
如果你需要一个id_token,为什么不使用隐式流程,避免授权码步骤呢?登录后您将立即收到一个 id_token。
-
对不起,我不明白你的情况。你想达到什么目的?
标签: azure authentication active-directory azure-functions azure-ad-b2c