Один арендатор для нескольких арендаторов - PullRequest
0 голосов
/ 19 октября 2018

У меня есть сайт MVC 5 с одним арендатором.Я использую одного арендатора, но некоторые пользователи входят на мой веб-сайт с другим арендатором.

У меня есть эта ошибка: AADSTS50020: Учетная запись пользователя.

МОЖЕТЕ ли вы мне помочь, пожалуйста?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Спасибо за ваш ответ.

Как мне изменить мой код:

  public partial class Startup
{
    private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
    private static string appKey = ConfigurationManager.AppSettings["ida:ClientSecret"];
    private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];
    private static string tenantId = ConfigurationManager.AppSettings["ida:TenantId"];
    private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];

    public static readonly string Authority = aadInstance + tenantId;

    // This is the resource ID of the AAD Graph API.  We'll need this to request a token to call the Graph API.
    string graphResourceId = "https://graph.windows.net";

    public void ConfigureAuth(IAppBuilder app)
    {
        ApplicationDbContext db = new ApplicationDbContext();

        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions
            {
                ClientId = clientId,
                Authority = Authority,
                PostLogoutRedirectUri = postLogoutRedirectUri,

                Notifications = new OpenIdConnectAuthenticationNotifications()
                {

                   AuthorizationCodeReceived = (context) => 
                   {
                       var code = context.Code;
                       ClientCredential credential = new ClientCredential(clientId, appKey);
                       string signedInUserID = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value;
                       AuthenticationContext authContext = new AuthenticationContext(Authority, new ADALTokenCache(signedInUserID));
                       AuthenticationResult result = authContext.AcquireTokenByAuthorizationCode(
                       code, new Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, graphResourceId);

                       return Task.FromResult(0);
                   }
                }
            });
    }
}

Спасибо

0 голосов
/ 25 октября 2018

У меня есть эта ошибка: AADSTS50020: Учетная запись пользователя.

Если вы не обновите свой веб-сайт до мультитенантного, другие пользователи-арендаторы захотят войти на ваш веб-сайт,это вызовет ту же ошибку.

Я создаю веб-сайт с несколькими арендаторами, но у меня ошибка 400.

Для мультитенанта вам необходимо изменить свойконечная точка вашего арендатора (например, https://login.microsoftonline.com/contoso.onmicrosoft.com) должна быть common (например, https://login.microsoftonline.com/common).Таким образом, запрос на вход в систему может быть отправлен в конечную точку, которая объединяет всех клиентов Azure AD.

Подробнее см. Здесь: .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...