2016-04-26 3 views
0

Я взял образец кода из GIT для многопользователя. https://github.com/OfficeDev/O365-WebApp-MultiTenantADAL Ошибка аутентификации Multi-Tenant

В https://manage.windowsazure.com/ i включен MULTI-TENANT к YES. Но когда я пытался войти в систему с другой организацией, я получаю ошибку следующим образом.

счет пользователя [email protected] 'от поставщика идентичности «https://sts.windows.net/xxxxxxxxxxxxxxxxxxxxxxxxxxx/» не существует в арендатора «Мой Test App» и не может получить доступ к приложению «xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx» в этом арендатора. Сначала учетная запись должна быть добавлена ​​в качестве внешнего пользователя. Выполните вход и войдите снова с другой учетной записью пользователя Azure Active Directory.

Как я могу решить это?

+0

Какую ссылку вы используете для входа? –

+0

Вы имеете в виду запрос api или мой URL-адрес веб-приложения? – user3463733

+0

да, но я вижу, что Джеффри дает вам ответ :) –

ответ

0

Наконец я нашел решение моей проблемы. Из этого URL https://github.com/dream-365/OfficeDev-Samples/blob/master/samples/Office365DevQuickStart/AspNetMvc-MultiTenant/

Я скопировал следующие файлы в моем проекте

TokenCacheDBContext.cs

SqlDBTokenCache.cs

ServiceConstants.cs

App_Start/Startup.auth.cs

Я запустил проект и получил одну ошибку для Office365AssertedFailedException. Для этого я создал еще один файл класса, как

Office365AssertedFailedException.cs

Я перестраивать код еще раз и получил успех. Теперь я могу войти в систему с несколькими арендаторами.

+0

Рад узнать, что вы можете использовать мой пример кода, чтобы исправить эту проблему, я переписал TokenCache в этом примере. –

0

Проверьте, что у вас есть права на "https://login.windows.net/common".

Если ваш URL власть "https://login.windows.net/ {tenant_id}", вы получите сообщение об ошибке следующим образом: enter image description here

Чтобы устранить эту проблему, в Startup.Auth.cs, конфиг URL-адрес органа, как "https://login.windows.net/common ».

var authority = string.Format("{0}/{1}", ServiceConstants.AzureADEndPoint, "common"); 

    var options = new OpenIdConnectAuthenticationOptions { 
     ClientId = OAuthSettings.ClientId, 
     Authority = authority, 
     TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters { 
      ValidateIssuer = false 
     } 
    }; 

sample Startup.Auth.cs

+0

Я получаю новую ошибку на странице входа как IOException: не удается получить документ с: https://api.office.com/discovery/v1.0/me/ common/.well-known/openid-configuration – user3463733

+0

Я попытался разрешить эту ошибку, но получил еще одну ошибку ... »Приложение с идентификатором xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx не было найдено в каталоге enukesoftware.onmicrosoft. com " – user3463733

+0

Повторное получение исключения IO ... IOException: невозможно получить документ из: api.office.com/discovery/v1.0/me/common/.well-known/... – user3463733

Смежные вопросы