Как заставить сменить пароль после первого входа - PullRequest
3 голосов
/ 23 апреля 2019

У меня есть клиент Azure Active Directory B2C.У меня также есть небольшой сервис, который создает новых пользователей в клиенте B2C из другой системы.Таким образом, я могу синхронизировать обе системы.Когда пользователь был добавлен в B2C и регистрируется в первый раз, я хочу, чтобы пользователь был вынужден изменить пароль.Но что бы я ни делал, пользователь может просто войти в систему и продолжить, не меняя пароль ..

Чтобы добавить пользователя в B2C, я использую пакет Microsoft Graph 1.14.Я отправляю информацию о пользователе как JSON в конечную точку https://graph.windows.net/{tenantId}/users?api-version=1.6

Страница входа - это настраиваемая страница Azure в политиках потока пользователей.Существует также политика изменения пароля, если необходимо.

Это я пробовал:

  • При добавлении пользователя я устанавливаю профиль пароля.Добавление свойства «ForceChangePasswordNextLogin» и установка его в true не работает.

  • Кто-то предложил добавить свойство «ForceChangePasswordNextSignIn», но B2C не знает это свойство.

  • Пытался исправить это в полисе;не работает.

  • Используется Google и StackOverflow;не очень удача.

Это пользователь, которого я публикую в Microsoft Graph:

var user = new GraphUserModel
{
    City = "Amsterdam",
    CustomField= "999999",
    Department = "TestPassword",
    DisplayName = "TestPassword",
    OtherMails = new[] { "myemail@something.nl" },
    PostalCode = "1234 AB",
    StreetAddress = "Hoofdweg 6",
    Surname = "TestPassword",
    TelephoneNumber = "0123456789",
    ChainCode = null,
    MailNickname = "999999",
    UserPrincipalName = "999999@{tenantNameHere}",
    SignInNames = new List<SignInNames>
    {
        new SignInNames
        {
            Type = "userName",
            Value = "999999"
        }
    },
    AccountEnabled = true,
    CreationType = "LocalAccount",
    PasswordProfile = new PasswordProfile
    {
        Password = "SomeRandomPassword"
    },
    PasswordPolicies = "DisablePasswordExpiration"
};

Пользователи создаются правильно, но при первом входе в системуЯ хотел бы видеть страницу, где они вынуждены сменить пароль.

1 Ответ

1 голос
/ 23 апреля 2019

С помощью политики регистрации / входа мне пришлось реализовать это вручную, помечая пользователей в БД, если они изменили пароль, и затем перенаправляя на смену пароля, если они не изменили пароль.

Мне также не удалось найти решение «из коробки». Я обнаружил, что forceChangePasswordNextLogin работает только с политикой входа.

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