繁体   English   中英

Azure AD B2C -> OAuth2 -> Azure Function App Token Exchange

[英]Azure AD B2C -> OAuth2 -> Azure Function App Token Exchange

我对身份验证、令牌交换和 Azure AD B2C 还很陌生。

我在我的门户中构建了一个 Azure AD B2C 租户,并将重定向 URI 设置为本地主机(我在 Visual Studio 上本地运行的一个 Azure 函数)。 我知道在浏览器将您带到重定向 URI 后,它会通过 URI 传回 authorization_code,我可以将该代码作为变量保存在我的函数中,但恐怕我不知道在那之后该怎么做. 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 请求,但是当我传入 authorization_code 时,我在邮递员中得到了这个回复

{
    "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 端点? 任何帮助,将不胜感激。 最好。

该错误表明您使用的是 AAD 令牌端点,而不是 AAD B2C 令牌端点。

AAD B2C 的正确端点位于此处。 https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-oidc#send-authentication-requests

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM