尝试实施 Azure Active Directory B2C 时出现 404 错误
Trying to implement Azure Active Directory B2C gives me a 404 error
我正在尝试在我正在开发的新页面中实施 Azure Active Directory B2C,但我在尝试从我的页面登录时遇到此 404 - File or directory not found
错误。
我做了租户,注册了我的应用程序,制定了我的政策,整个交易。我可以毫无问题地从 Azure 门户测试它们。但是,我按照 official tutorial 上的说明在我的页面中实施政策无济于事,我收到提到的 404 错误,好像缺少了什么。
我什至下载了那里发布的代码并且它有效!
我尝试比较这两种代码,但看不出有什么不同。不过,我将我的代码粘贴在这里,希望你能帮我解决这个问题。
WEB.CONFIG
<add key="ida:Tenant" value="PlataformaXXX.onmicrosoft.com" />
<add key="ida:ClientId" value="84d2a6e6-4cac-4c53-a5ff-XXXXXXXXXXXX" />
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1}" />
<add key="ida:RedirectUri" value="https://localhost:59744/" />
<add key="ida:SignUpPolicyId" value="B2C_1_Sign_Up" />
<add key="ida:SignInPolicyId" value="B2C_1_Sign_In" />
<add key="ida:UserProfilePolicyId" value="B2C_1_Edit" />
STARTUP.AUTH.CS
public partial class Startup
{
// App config settings
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
private static string aadInstance = ConfigurationManager.AppSettings["ida:AadInstance"];
private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"];
private static string redirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"];
// B2C policy identifiers
public static string SignUpPolicyId = ConfigurationManager.AppSettings["ida:SignUpPolicyId"];
public static string SignInPolicyId = ConfigurationManager.AppSettings["ida:SignInPolicyId"];
public static string ProfilePolicyId = ConfigurationManager.AppSettings["ida:UserProfilePolicyId"];
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
// Configure OpenID Connect middleware for each policy
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpPolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ProfilePolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignInPolicyId));
} ...
如果需要任何其他代码块,请告诉我。
真正的伙计们,任何帮助将不胜感激。
此致,Toño。
我也遇到了同样的问题。您可以检查的一些内容是:
确保您的 webconfig 和 Azure AD 中的策略名称
完全相同,包括正确的 upper/lower 案例
确保 AadInstance 有尾部斜杠 (/)
确保您拥有最新版本的 owin 和 microsoft.identitymodel.protocol.extensions 库(建议
从 NuGet 重新加载它们)
- 最后一个是我最难找到的问题。如果
结果 URL 在您的浏览器中包含 2 个问号,然后
这是修复。
如果您尝试使用 .auth/me,请确保您的商店令牌已在身份验证设置中启用。否则它会给你一个 404。:)
看起来你的参数 ida:AadInstance 是错误的。应该是:
https://{0}.b2clogin.com/{1}/v2.0/.well-known/openid-configuration?p={2}
{0}: tenantid
{1}: tenantid.onmicrosoft.com
{2}: policy name
如果您想保留 login.microsoftonline.com,url 必须是:
https://login.microsoftonline.com/tfp/{0}/{1}/v2.0/
{0}: tenantid.onmicrosoft.com
{1}: policy name
问候
康拉德
我正在尝试在我正在开发的新页面中实施 Azure Active Directory B2C,但我在尝试从我的页面登录时遇到此 404 - File or directory not found
错误。
我做了租户,注册了我的应用程序,制定了我的政策,整个交易。我可以毫无问题地从 Azure 门户测试它们。但是,我按照 official tutorial 上的说明在我的页面中实施政策无济于事,我收到提到的 404 错误,好像缺少了什么。
我什至下载了那里发布的代码并且它有效!
我尝试比较这两种代码,但看不出有什么不同。不过,我将我的代码粘贴在这里,希望你能帮我解决这个问题。
WEB.CONFIG
<add key="ida:Tenant" value="PlataformaXXX.onmicrosoft.com" />
<add key="ida:ClientId" value="84d2a6e6-4cac-4c53-a5ff-XXXXXXXXXXXX" />
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1}" />
<add key="ida:RedirectUri" value="https://localhost:59744/" />
<add key="ida:SignUpPolicyId" value="B2C_1_Sign_Up" />
<add key="ida:SignInPolicyId" value="B2C_1_Sign_In" />
<add key="ida:UserProfilePolicyId" value="B2C_1_Edit" />
STARTUP.AUTH.CS
public partial class Startup
{
// App config settings
private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
private static string aadInstance = ConfigurationManager.AppSettings["ida:AadInstance"];
private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"];
private static string redirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"];
// B2C policy identifiers
public static string SignUpPolicyId = ConfigurationManager.AppSettings["ida:SignUpPolicyId"];
public static string SignInPolicyId = ConfigurationManager.AppSettings["ida:SignInPolicyId"];
public static string ProfilePolicyId = ConfigurationManager.AppSettings["ida:UserProfilePolicyId"];
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
// Configure OpenID Connect middleware for each policy
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpPolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ProfilePolicyId));
app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignInPolicyId));
} ...
如果需要任何其他代码块,请告诉我。
真正的伙计们,任何帮助将不胜感激。
此致,Toño。
我也遇到了同样的问题。您可以检查的一些内容是:
确保您的 webconfig 和 Azure AD 中的策略名称 完全相同,包括正确的 upper/lower 案例
确保 AadInstance 有尾部斜杠 (/)
确保您拥有最新版本的 owin 和 microsoft.identitymodel.protocol.extensions 库(建议 从 NuGet 重新加载它们)
- 最后一个是我最难找到的问题。如果 结果 URL 在您的浏览器中包含 2 个问号,然后 这是修复。
如果您尝试使用 .auth/me,请确保您的商店令牌已在身份验证设置中启用。否则它会给你一个 404。:)
看起来你的参数 ida:AadInstance 是错误的。应该是:
https://{0}.b2clogin.com/{1}/v2.0/.well-known/openid-configuration?p={2}
{0}: tenantid
{1}: tenantid.onmicrosoft.com
{2}: policy name
如果您想保留 login.microsoftonline.com,url 必须是:
https://login.microsoftonline.com/tfp/{0}/{1}/v2.0/
{0}: tenantid.onmicrosoft.com
{1}: policy name
问候 康拉德