繁体   English   中英

asp.net 核心的 Azure AD 身份验证问题

[英]Azure AD authentication issue with asp.net core

如何在 ASP.NET Core Web 应用程序Azure AD 授权中获取 ID 令牌和访问令牌? 我想将该令牌传递给客户端应用程序以进行 API 访问。 这是正确的场景吗?

可以使用 MSAL 库登录用户并请求用于访问受 Azure AD 保护的 API 的令牌。

以下代码片段显示了如何登录用户:

// Add scopes for the id token to be used at Microsoft identity platform endpoints.
const loginRequest = {
    scopes: ["api://your_api_applicationid/.default"],
};

myMSALObj.loginPopup(loginRequest)
    .then((loginResponse) => {
    //Login Success callback code here
}).catch(function (error) {
    console.log(error);
});

静默获取用户令牌

const tokenRequest = {
    scopes: ["api://your_api_applicationid/.default"]
};

    myMSALObj.acquireTokenSilent(tokenRequest)
        .then((tokenResponse) => {
            // Callback code here
            console.log(tokenResponse.accessToken);
        }).catch((error) => {
            console.log(error);
        });

参考:

快速入门:在 JavaScript SPA 中登录用户并获取访问令牌

您可以对在无法安全管理客户端机密的 Web 浏览器上下文中运行的 spa 应用程序使用隐式流 是 React 的代码示例。

在 MSAL 中,您可以获取应用程序需要调用的 API 的访问令牌,该方法使用acquireTokenSilent方法向 Azure AD 发出静默请求(不使用 UI 提示用户)以获取访问令牌。 然后,Azure AD 服务返回一个包含用户同意范围的访问令牌,以允许你的应用安全地调用 API。 您可以参考AuthProvider.js 代码

另一种更安全的方法是将Authorization Code Flow with PKCE一起使用。 MSAL.js 2.0.0支持该流程并且目前是 Alpha 版本,请参阅此处的文档了解更多详细信息。

暂无
暂无

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

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