【问题标题】:Azure AD B2C -> OAuth2 -> Azure Function App Token ExchangeAzure AD B2C -> OAuth2 -> Azure Function App 令牌交换
【发布时间】: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


【解决方案1】:

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

AAD B2C 的正确端点在这里。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-oidc#send-authentication-requests

【讨论】:

    猜你喜欢
    • 2018-08-24
    • 2021-03-03
    • 1970-01-01
    • 2017-11-23
    • 2018-01-08
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多