启用多租户Azure AD登录tom asp.net网络表单应用程序

时间:2019-03-20 16:57:05

标签: asp.net vb.net azure azure-active-directory multi-tenant

我正在尝试开发一个应用程序,任何租户的任何用户都可以在其中登录以使用我的应用程序。为此,我将应用程序URL注册为多租户应用程序到Azure租户(从Azure的属性窗格)。

。这是我的个人启动代码

 Public Sub Configuration(app As IAppBuilder)
        If ConfigurationManager.AppSettings("applicationtype") = "MultiDB" Then
            JwtSecurityTokenHandler.DefaultMapInboundClaims = False
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)
            app.UseCookieAuthentication(New CookieAuthenticationOptions())
            app.UseOpenIdConnectAuthentication(New OpenIdConnectAuthenticationOptions() With
                {
                    .ClientId = ConfigurationManager.AppSettings("ida:ClientId"),
                    .Authority = ConfigurationManager.AppSettings("ida:AADInstance"),
                    .RedirectUri = ConfigurationManager.AppSettings("ida:RedirectUrl"),
                    .PostLogoutRedirectUri = ConfigurationManager.AppSettings("ida:LogoutUrl"),
                    .TokenValidationParameters = New Microsoft.IdentityModel.Tokens.TokenValidationParameters With
                    {
                        .ValidateIssuer = False,' i disabled issuer validation for the multi-tenant application
                        .NameClaimType = "upn",
                        .RoleClaimType = "roles"
                    },
                    .Notifications = New OpenIdConnectAuthenticationNotifications() With
                    {
                    .AuthenticationFailed = Function(context)
                                                context.HandleResponse()
                                                context.Response.Redirect("Error.aspx" + context.Exception.Message)
                                                Return System.Threading.Tasks.Task.FromResult(0)
                                            End Function
                    }
                })
        End If
    End Sub

但是,如果我尝试使用其他租户的用户身份登录,则会收到错误消息 “ AADSTS50020:来自身份提供商“ live.com”的用户帐户“ xxx@outlook.com” 租户“默认目录”中不存在,并且无法访问该应用程序 该租户中的'59e67663-4689-xxxx-axxx-xxxxxxxxxx'(示例应用)。该帐户需要添加  作为租户中的外部用户。注销并使用其他Azure Active Directory用户帐户再次登录。”

<add key="ida:AADInstance" value="https://login.windows.net/common" />
    <add key="ida:ClientId" value="xxxx" />
    <add key="ida:TenantId" value="xxxxxxxxx" />
    <add key="ida:PostLogoutRedirectUri" value="https://localhost:44322/" />
    <add key="ida:RedirectUrl" value="https://localhost:44316/Login.aspx"/>
    <add key="ida:LogoutUrl" value="https://localhost:44316/Logout.aspx"/>

但是我的假设是,如果我在端点中输入“ common”,则任何租户中的任何用户都可以登录到应用程序,并且当他们登录时,我们可以获取该用户租户的详细信息。错误消息的原因是什么?我的假设是正确的吗?

0 个答案:

没有答案