。NET C#中使用MSAL在Azure AD B2C中执行自定义策略流

问题描述 投票:0回答:1

我目前正在使用OpenIdConnect对我的Azure B2C自定义策略执行HTTP GET请求。例如,这是Unified SignInSignUp:

public static void Unified(HttpRequest Request, HttpResponse Response)
{
    string nonce = "defaultNonce";
    string clientID = ConfigurationManager.AppSettings["aad.clientid"];
    string authUrl = ConfigurationManager.AppSettings["aad.authUrl"];
    string redirectUri = ConfigurationManager.AppSettings["aad.redirecturi"];
    string unifiedPolicy = ConfigurationManager.AppSettings["aad.unifiedPolicy"];

    // build url for AAD auth and redirect to ourself 
    StringBuilder sb = new StringBuilder();
    sb.AppendFormat("{0}?", authUrl);
    sb.AppendFormat("p={0}", unifiedPolicy);
    sb.AppendFormat("&client_id={0}", clientID);
    sb.AppendFormat("&redirect_uri={0}", redirectUri);
    sb.AppendFormat("&nonce={0}", nonce);
    sb.AppendFormat("&scope=openid");
    sb.AppendFormat("&response_type=id_token");
    sb.AppendFormat("&prompt=login");
    sb.AppendFormat("&response_mode=form_post");

    // redirect to auth via AAD (and then redirect back to ourself)
    Response.Redirect(sb.ToString(), true);
}

我想改用MSAL,但是在查找执行HTTP GET请求的C#.NET示例时遇到了麻烦,就像我对OpenIdConnect所做的那样。我当前的技术可以很好地返回id_token,但是我想利用MSAL的功能(例如缓存等)。

周围有这样的样品吗?

c# openid-connect azure-ad-b2c msal policies
1个回答
0
投票

我想将此添加为注释,但是系统指示它太长。所以我想回答我的问题,因为我确实找到了一些示例代码(在上面的自我注释中提到),可以帮助我开始使用MSAL.net。但是,我遇到了许多问题(例如,当我调用编辑配置文件自定义策略时,我得到的声明集非常不完整,使用OpenIdConnect可以得到我的所有声明)和问题,并且可能还会发布另一个更具体的问题,列出我的要求。我真的只需要id_token(上面发布的OpenId Connect代码非常适合),而不是访问或刷新令牌,而我真正需要做的就是验证id_token并实施KMSI(保持登录状态)策略。我已在自定义登录策略中添加了B2C KMSI,但是看不到如何在我的Web(asp.net Web窗体)Web项目中查询它。当前(不使用Azure)(我不使用Azure),我的网站上有一个“记住我”复选框,并且我写了一个永久cookie,其中滚动数据的有效期为30天,并且其中包含加密数据,一切都可以正常进行;我正在尝试使用Azure B2C并保持所有功能正常运行。此外,为了验证令牌,我目前正在使用一些代码,该代码在本文中使用低级代码(System.Security.Cryptography命名空间)的地方找到,并且可以很好地验证,但我看不到如何验证我所看到的文档中推荐的一些主张。因此,我将创建一个新帖子,询问所有相关信息。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.