Настраиваемое время жизни токена в Azure Active Directory.

Мне не удалось назначить TokenLifetimePolicy политику приложений Azure AD из PowerShell. У меня была ошибка BadRequest : Message: Open navigation properties are not supported on OpenTypes.Property name: 'policies

Я пытаюсь реализовать срок действия токена из Настраиваемое время жизни токена в Azure Active Directory

Смотрите снимок экрана ниже, любые полезные ссылки и решения по командлету AzureAD Add-AzureADApplicationPolicy приветствуются.

введите здесь описание изображения


person Julius Depulla    schedule 26.05.2017    source источник
comment
Зачем скриншот, если текст лучше читается и, наверное, экономит место? кроме того команда обрезана. Поскольку это ваша команда может быть неправильной.   -  person Seth    schedule 26.05.2017
comment
Я бы дважды проверил правильность идентификатора объекта, который вы используете в команде. Для приложения перейдите на портал Azure, а для политики можно использовать Get-AzureADPolicy.   -  person Daniel Dobalian    schedule 26.05.2017
comment
@Seth Как ваши комментарии ответили на этот вопрос. Думал, что мы публикуем здесь только вопросы или ответы. Картинка стоит тысячи слов, и команда принимает только два аргумента, Id и RefObjectId, которые были переданы.   -  person Julius Depulla    schedule 28.05.2017
comment
Комментарий предназначен не для ответа на вопрос, а для получения дополнительной информации и разъяснений. Кроме того, мы имеем дело с кодом. Если бы на вашем снимке экрана был виден сбой пользовательского интерфейса или что-то подобное, я бы понял, что вы бы опубликовали его. Но ваш вопрос касается кода, и, кроме того, он неполный. Конечно, в данном случае это может быть нормально, но обычно рекомендуется включать код в текст и в целом. Ваш ответ также показывает это. Какая польза от этого, если бы его отключили?   -  person Seth    schedule 29.05.2017


Ответы (3)


Я заставил его работать, используя только командлет New-AzureADPolicy и установив -IsOrganizationDefault $true, а не $false. Эффект занимает некоторое время, прежде чем вы его увидите. Так что подождите примерно от 30 минут до часа (точно не знаю, сколько). После этого ваша новая политика будет создана и применена. Также помните, что это PowerShell, поэтому в командлете не должно быть пробелов.

Пример:

New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"AccessTokenLifetime":"02:00:00","MaxInactiveTime":"02:00:00","MaxAgeSessionSingleFactor":"02:00:00"}}') -DisplayName "PolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"

Многострочная версия:

New-AzureADPolicy -Definition @(
    '
        {
            "TokenLifetimePolicy":
                {
                    "Version": 1,
                    "AccessTokenLifetime": "02:00:00",
                    "MaxInactiveTime": "02:00:00",
                    "MaxAgeSessionSingleFactor": "02:00:00"
                }
        }
    '
    ) -DisplayName "PolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"

Microsoft может решить проблему с IsOrganizationDefault $true. Подробнее об этом читайте в вопросе: Azure AD Configurable Token Сроки службы не применяются.

person Julius Depulla    schedule 28.05.2017

Я тестирую это совсем немного для своих клиентов. Время от времени я сталкиваюсь с подобными проблемами из-за отсутствия последней версии PowerShell.

get-module

Последняя на данный момент версия 2.0.0.114 для AzureADPreview (V2) Инструкции скачать здесь

Как указал Сет, возникла проблема с -IsOrganizationDefault $true.

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

Также -

Есть разница между:

Add-AzureADApplicationPolicy

и

Add-AzureADServicePrincipalPolicy

Один для объекта приложения, а другой для ServicePrincipal. Если вы применяете его, скажем, приложение на основе SAML, вам следует применить его к ServicePrincpal.

Примечание. Существуют разные ObjectID для объекта приложения и объекта servicePrincipal. Не путайте их. В качестве эксперимента запустите две команды cmd для своего приложения:

Get-AzureADServicePrincipal -SearchString <name of app>
Get-AzureADApplication -SearchString <name of app>

Если вы захватите неправильный ObjectID - не пойдет, когда вы перейдете к применению политики

Последовательность для этих политик следующая: ServicePrincipal -> Application -> Tenant (organization).

person Chad Hasbrook    schedule 31.05.2017

Было ли приложение создано на портале B2C?

При положительном ответе ожидается такое поведение: Microsoft имеет 2 конечные точки авторизации, V1 и V2.

Портал B2C создает приложения V2. Параметр времени жизни токена из powershell, вероятно, работает только с приложениями V1.

На лезвии b2c есть настройки, чтобы изменить это.

Другой вариант — создать приложение из блейда Azure Active Directory (в отличие от блейда b2c). Затем вы можете установить время жизни токена с помощью powershell.

person Lingeshwaran Palaniappan    schedule 26.05.2017