自定义Azure B2C登录UI

时间:2018-12-16 21:29:55

标签: azure azure-active-directory azure-web-sites azure-ad-b2c

我已经在演示中创建了一个简单的模板:

<!DOCTYPE html>
<html>
<head>
    <title>Add your title here</title>
</head>
<body>
<h1>My B2C Application</h1>
<div id="api"></div>   <!-- Leave this element empty because Azure AD B2C will insert content here. -->
</body>
</html>

这是我的应用服务上托管的文件,位于:

https://<mydomain>.azurewebsites.net/html.signin.html

我已经创建了一个B2C租户,并且一切正常。在我的注册登录策略(B2C_1_aa-signup-signin

我已将自定义页面网址设置为:

https://<mydomain>.azurewebsites.net/html.signin.html

但是,即使只是单击我网站上的“注册”按钮也会返回错误:

  

错误。处理您的请求时出错。

     

请求ID:| 258cfa9e-4dab035257ed702a。开发模式

     

切换到开发环境将显示更多详细信息   有关发生的错误的信息。

     

不应在已部署的环境中启用开发环境   应用程序,因为它可能会导致来自   向最终用户显示异常。对于本地调试,   可以通过设置开发环境来启用   ASPNETCORE_ENVIRONMENT环境变量为Development,并且   重新启动应用程序。

我已在.NET Core 2.1应用程序中使用以下命令设置了CORS:

services.AddCors();

并且:

app.UseCors(opt =>
{
    opt.WithOrigins("https://<b2c-tennent-name>.b2clogin.com")
        .AllowAnyHeader()
        .AllowAnyMethod();
});

从我已阅读的全部内容来看,这是我应该做的所有事情。我一直在尝试在我的网站App Service上找到任何CORS设置,但看不到任何相关信息。

我的网站配置是:

"AzureAdB2C": {
  "Instance": "https://<b2c-tennent-name>.b2clogin.com/tfp/",
  "ClientId": "<my id>",
  "CallbackPath": "/signin-oidc",
  "Domain": "<b2c-tennent-name>.onmicrosoft.com",
  "SignUpSignInPolicyId": "B2C_1_aa-signup-signin",
  "ResetPasswordPolicyId": "B2C_1_aa-password-reset",
  "EditProfilePolicyId": "B2C_1_aa-profile-edit"
},

我还在我的Web应用程序上启用了App Insights,但我什至无法解决错误消息。

我想我有两个问题。

接下来我该如何检查配置?

如何找出错误所在? Azure在此主题上似乎完全不透明。我根本不知道该错误。

直到我确定我完全在黑暗中拍摄的问题。据我所知,我偏离the docs的唯一方法是我的html文件托管在我的App Service上,从此文档中托管它是一个完全合法的地方。

write up准确描述了我所做的一切,但我的登录名完全被破坏了。

在仔细研究了请求之后,我发现它隐藏在OK 200响应中:

AADB2C90006: The redirect URI &#39;http://<my-app-service>.azurewebsites.net/signin-oidc&#39; provided in the request is not registered for the client id &#39;b850cee0-f723-47fd-8f2e-c1fa1ec21038&#39;.

但是您只能注册https答复URL,那么我该如何解决?

1 个答案:

答案 0 :(得分:0)

使用HTTPS注册您的回复网址:https://<my-app-service>.azurewebsites.net/signin-oidc。在azurewebsites.net域下托管的Azure应用服务提供了内置的SSL证书。

相关问题