Я пытаюсь разработать приложение, в котором любой пользователь из любого арендатора может войти в систему, чтобы использовать мое приложение. Для этого я зарегистрировал URL своего приложения для своего клиента Azure в качестве приложения для нескольких клиентов (из панели свойств в Azure).
. Вот мой стартовый код owin
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: учетная запись пользователя« xxx@outlook.com »от провайдера идентификации« live.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' в конечную точку, любой пользователь из любого арендатора сможет войти в приложение, и когда они войдут в систему, мы сможем получить подробную информацию о пользователе-арендаторе. В чем причина сообщения об ошибке? и верно ли мое предположение ??