Сброс и добавление секретов клиента для субъектов-служб в Azure Active Directory с помощью Azure CLI не отражается на портале.
Это либо ошибка, либо есть другое место, где я могу получить доступ к этим записям. Вот сценарий:
Я создаю новую регистрацию приложения с помощью CLI:
az ad sp create-for-rbac --name sp-name --role Contributor --years 2 --scope /subscriptions/xxx-xxx-xxx -o json
Теперь я вижу регистрацию этого приложения вместе с секретом, отраженным на портале Azure. Проверка доступа с предоставленными учетными данными работает должным образом.
Вот где все становится странно...
Я добавляю новый секрет клиента к этому субъекту-службе с помощью флага --append и даю ему пользовательское отображаемое имя вместе с другим временем истечения срока действия:
az ad sp credential reset --id xxx-xxx-xxx --end-date 2023-12-31 --display-name test-name --append
Я получаю запись для этого нового секрета клиента вместе с паролем для использования. Я тестирую доступ, используя этот пароль, и он работает. Так что он существует. Я перехожу на портал Azure > Active Directory > Регистрация приложений > sp-name > Сертификаты и секреты > Секреты клиента , и все, что я вижу, — это исходный секрет клиента, созданный с отображаемым именем rbac.
Подумав, что может быть проблема с кэшированием, я прождал более 12 часов и до сих пор не вижу этого нового секрета клиента нигде на этом SP. Но я могу использовать это, и это работает!
Я также попытался сбросить существующий секрет клиента (без флага добавления), вызвав:
az ad sp credential reset --id xxx-xxx-xxx --end-date 2023-12-31 --display-name rbac
И я получаю обратно новый пароль, который работает. Но на портале по-прежнему отображается подсказка пароля для старого пароля, а данные об истечении срока действия не обновляются! Снова я дал ему 12+ часов и до сих пор нет обновления.
Что еще странно, И оригинальный, и новый пароль РАБОТАЮТ! Что делать, если мне нужно сделать сброс из-за утечки?
Я делал это несколько раз с точно такими же результатами. Пробовал сбросить существующие секреты клиента, а также добавить новые. В обоих случаях данные на портале никогда не отражают новую или обновленную информацию о секретах клиента, созданных с помощью интерфейса командной строки.
Не имеет смысла, что на портале не будет записи об этих секретах. Особенно когда нам может понадобиться найти их спустя годы. Может ли кто-нибудь просветить меня, почему это так?
Я также могу представить это как ошибку. Обновлю, если получу ответ об этом преследовании.
ОБНОВЛЕНО
Используя CLI, я могу вернуть правильную информацию:
az ad sp credential list --id xxx-xxx-xxx
Имеются как новые, так и сброшенные секреты клиента, и они отражают правильные подсказки пароля, а также истечение срока действия. Так что, возможно, это ошибка портала.
Но это все еще не объясняет, почему исходный пароль все еще работает более 12 часов спустя. Он отображается на портале, но не в интерфейсе командной строки.
ОБНОВЛЕНИЕ 2
Я подавал отзывы/отчеты как для портала Azure (для пользовательского интерфейса, который не обновляется), так и для AAD (для возможности использовать старые пароли после сброса).
Вот ссылки на обе эти публикации. Я не смог найти подходящую систему сообщений об ошибках, поэтому похоже, что это больше похоже на «запросы функций». Если кто-то может проголосовать за них и / или предоставить дополнительные комментарии, возможно, мы сможем увидеть это у Microsoft:
Если у кого-то есть лучшее место, чтобы опубликовать это, дайте мне знать
1 ответ
Вы создаете секреты субъекта-службы. На портале Azure отображаются секреты приложений. Это объекты одного типа и служат одной цели, но хранятся в разных местах. Приложение в основном представляет собой модель данных, а субъект-служба — это объект, который проходит проверку подлинности и авторизацию. Последний представляет приложение в любом данном арендаторе.
Если вы хотите обновить секреты приложений Azure AD, вы можете использовать модуль AzureAD PowerShell , API MS Graph или один из его SDK .