尝试将Azure AD身份验证添加到具有. net核心2.1后端的Angular 7 webapp。
然而,我在请求过程中收到了CORS错误。
“访问位于的XMLHttpRequest”https://login.microsoftonline.com/.......“(重定向自”https://localhost:5001/api/auth/login“)起源”https://localhost:5001'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'头。"
所以我试着在启动管道中添加一些CORS策略。
创业。反恐精英
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(config => config
.AddPolicy("SiteCorsPolicy", builder => builder
.AllowAnyHeader()
.AllowAnyMethod()
.AllowAnyOrigin()
.AllowCredentials()
)
); // <--- CORS policy - allow all for now
services.AddAuthentication(options =>
{
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddOpenIdConnect(options =>
{
options.Authority = "https://login.microsoftonline.com/MY_AD_DOMAIN.onmicrosoft.com"; // ad domain
options.ClientId = "my_client_id"; // client guid
options.ResponseType = OpenIdConnectResponseType.IdToken;
options.CallbackPath = "/auth/signin-callback";
options.SignedOutRedirectUri = "https://localhost:5000";
options.TokenValidationParameters.NameClaimType = "name";
}).AddCookie();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
// In production, the Angular files will be served from this directory
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseCors("SiteCorsPolicy"); // <--- CORS policy
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
}
}
角度身份验证服务
login() {
const url = this.baseUrl + "api/auth/login";
this._http.get(url).subscribe(response => {
console.log(response);
});
}
还是我走错了方向?我应该使用第三方的“ADAL”npm软件包吗(https://www.npmjs.com/package/adal-angular)从客户端提取令牌,然后将令牌传递给服务器进行验证?
如果我导航到登录URL,例如:localhost:5000/api/auth/login--
你的做法有点不对。您已经配置了OIDC Cookies,但想要使用XHR调用它。
典型的方法是:
一些可能有帮助的样本/文章:
请记住,ADAL只能用于AAD v1终结点,MSAL只能用于v2终结点。
问题与Azure相关,即使用户正在积极使用应用程序,也会出现Easy Auth过期的情况。根据分享的解释,简单的身份验证机制似乎并不适合Azure Web应用上托管的SPA?MS是否可以在官方文档下添加提到的选项-“https://docs.microsoft.com/en-in/Azure/app-service/app-service-authentication-overview?toc=%
我试图在我的rails应用程序中使用LinkedIn的api进行身份验证。我对rails很陌生,所以我遵循了以下指南http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/ 耙中止!NameError:main的未定义局部变量或方法'/users/AlexanderKehaya/.rvm
我已经安装了OpenLDAP服务器。 如何在LDAP服务器中添加用户(条目)?以及如何打开该服务器的命令窗口,以便在其上运行ldap命令: :我的要求是:在我的应用程序中,我想对Openldap服务器中添加的用户进行身份验证,但我只能在windows os上安装Openldap服务器,但如何添加用户我无法获得方法。在Windows7操作系统上安装openLDAP whic时添加用户的方法是什么?这
我想添加只允许经过身份验证的用户在Jitsi会议中创建会议的功能。我看到了外部API的jwt参数、config.tokenAuthUrl和lib-jitsi-met令牌文档,但我对如何将它们放在一起感到非常困惑。 现在,我的工作流程如下: 用户通过自定义应用程序登录谷歌。 用户被重定向到一个新的Jitsi会议,使用从Google登录信息派生的jwt参数。 我遇到的问题是验证这个令牌,以及如何设置它
我正在尝试将SASL_PLAINTEXT身份验证配置为kafka代理,下面是我的配置。 在开始动物园管理员和Kafka之后,我得到了以下例外 kafka.Kafka.main:要求失败:Kafka.scala必须是在advertised.listeners.中定义的侦听器名称基于当前配置的侦听器的有效选项是PLAINTEXTjava.lang.IllegalArgumentException:要求
问题内容: 因为在AngularJS中使用CORS和http身份验证可能会比较棘手,所以我编辑了问题以分享一个经验教训。首先,我要感谢igorzg。他的回答对我很有帮助。场景如下:您想使用AngularJS $ http服务将POST请求发送到另一个域。获取AngularJS和服务器设置时,需要注意一些棘手的事情。 第一:在您的应用程序配置中,您必须允许跨域调用 第二:您必须指定withCrede