Как добавить пользовательские утверждения для пользователей Azure AD

Я разрабатываю веб-приложение, которое использует Microsoft Azure AD (Entra) в качестве сервера идентификации для единого входа. Итак, у меня есть пользователи, определенные в Azure AD.

Теперь я хочу добавить дополнительные свойства или претензии для каждого пользователя, т.е. Я хочу добавить эти два утверждения каждому пользователю: утверждение (свойство) Имя = ВнешнийServiceUserId требование (свойство) Имя = ВнешнийServicePassword

Тогда я смогу добавить эту информацию на портал Azure для каждого пользователя и получить ее в своем приложении с помощью API Microsoft Graph.

ИЕ. допустим, у меня есть два пользователя (Пользователь1, Пользователь2): Поэтому я хочу иметь возможность добавить:

User1.ExternalServiceUserId = "someUserId"
User1.ExternalServicePAssword= "somePassword"

User2.ExternalServiceUserId = "someUserId2"
User2.ExternalServicePAssword= "somePassword2"

И я хочу добавить эти свойства и их значения через портал Azure.

Как это сделать?

AFAIK невозможно добавить пользовательские утверждения через портал Azure. Вместо этого используйте PowerShell, создайте утверждения и назначьте их пользователю. Проверьте эту ветку SO stackoverflow.com/questions/76393221/…

Rukmini 24.07.2024 07:56
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
1
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обратите внимание: AFAIK не позволяет создавать или назначать пользовательские утверждения пользователю через портал Azure.

Вы можете создавать расширения для приложения с помощью Microsoft Graph API или PowerShell:

POST https://graph.microsoft.com/v1.0/applications/appObjID/extensionProperties
Content-type: application/json

{
    "name": "ExternalServiceUserId",
    "dataType": "String",
    "targetObjects": [
        "User"
    ]
}

Присвойте значение пользователю:

PATCH https://graph.microsoft.com/v1.0/users/UPN
Content-type: application/json

{
  "extension_XXX_ExternalServiceUserId": "333333"
}

Сделайте то же самое с ExternalServicePAssword и назначьте пользователю:

PATCH https://graph.microsoft.com/v1.0/users/UPN
Content-type: application/json

{
  "extension_XXX_ExternalServicePAssword": "XXX"
}

Сделайте то же самое с другим пользователем и присвойте значения пользователю User2.

Теперь настройте дополнительные утверждения в приложении:

Для примера я сгенерировал токен доступа через Postman:

Grant type: Authorization code 

Callback URL: https://oauth.pstmn.io/v1/callback
Auth URL:  https://login.microsoftonline.com/TenantId/oauth2/v2.0/authorize
Token URL : https://login.microsoftonline.com/TenantId/oauth2/v2.0/token
Client ID : ClientId
Client Secret : ClientSecret
Scope: api://ClientID/Claims.Read

Когда я декодировал токен доступа, я могу успешно получить пользовательские утверждения:

  • Обязательно сгенерируйте токен доступа для API в качестве области, а не для API Microsoft Graph.
  • Пользовательские утверждения отображаются, когда токен создается областью API.

Вот и все. Спасибо

Luka 25.07.2024 09:44

Другие вопросы по теме

Похожие вопросы

Azure: пакета под названием «dynlm» не существует
Пока включено иерархическое пространство имен, невозможно загрузить большой двоичный объект с метаданными hdi_isfolder
Можете ли вы создать «Потоки пользователей» в Azure с помощью учетной записи с оплатой по мере использования?
Пользовательское утверждение Entra внешнего идентификатора в токене идентификатора клиента, а не в ClaimsPrincipal пользователя веб-API ASP.NET Core
SchemaColumnConvertNotSupportedException: столбец: [Col_Name], физический тип: INT64, логический тип: строка
Невозможно прочитать большие двоичные объекты через BlobContainerClient для больших двоичных объектов с пустыми префиксами папок
Создать секрет Azure Keyvault, не раскрывая значения
Как создать функцию Azure, которая развертывает мой сценарий бицепса из учетной записи хранения Azure
Как найти идентификатор DriveItem, учитывая только URL-адрес документа?
Индекс поиска Azure через консольное приложение .NET Core перезаписывает старый документ