我正在使用MSAL进行一些测试,但是很遗憾,它没有按预期工作。
我已经全部配置为使用ADAL和ADAL Angular的ASP.NET MVC(.net 4.6)+ Angular 1.6 SPA应用程序。一切正常,但后来我决定尝试MSAL
。
在OnValidateIdentity
中正确配置了我在Startup.Auth.cs
中配置的提供程序的ADAL
处理程序,我可以添加其他声明:
Provider = new OAuthBearerAuthenticationProvider
{
OnValidateIdentity = async context =>
{
现在,我将Angular JS更改为MSAL
,我得到了ID Token
和Access Token
,但是我的OnValidateIdentity
处理程序不再受到攻击。>
使用app.UseWindowsAzureActiveDirectoryBearerAuthentication
时使用MSAL
仍然有效吗?
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
.
.
.
答案 0 :(得分:1)
MSAL应该与融合/v2.0应用程序注册一起使用,而ADAL通常与v1.0应用程序注册一起使用,
如果要迁移到v2端点,则应使用portal.azure.com中的新门户创建新应用程序。除此之外,这些文档还介绍了创建v2.0应用注册:https://docs.microsoft.com/en-us/graph/auth-register-app-v2
有关从v1迁移到v2端点的更多信息,请参考此资源。 https://azure.microsoft.com/en-gb/resources/samples/active-directory-dotnet-v1-to-v2/
关于使用应用程序的细节。UseWindowsAzureActiveDirectoryBearerAuthentication
//注意:通常 WindowsAzureActiveDirectoryBearerAuthenticaitonMiddleware使用 // v2.0端点不支持的元数据端点。相反,这 // OpenIdConenctCachingSecurityTokenProvider可用于获取和使用OpenIdConnect //元数据文档。
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions { AccessTokenFormat = new JwtFormat(tvps, new OpenIdConnectCachingSecurityTokenProvider("https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration")), });
可以在这里找到一些更好的阅读材料,可以对v1 / v2示例应用程序进行一些比较:https://simonlamb.codes/2017/02/27/net332-introduction-to-authentication-on-azure-active-directory/