Как авторизовать пользователя в группе AD в Microsoft Graph

Я хочу авторизовать ПОЛЬЗОВАТЕЛЯ для группы AD через Microsft Graph. Только члены группы AD могут получить доступ к API. Какой запрос Microsoft Graph (API URL) требуется для этой авторизации? Или есть другие варианты?

Цените, если вы предлагаете ЛУЧШИЕ ПРАКТИКИ для этого.

Заранее спасибо за ваше предложение и помощь.

С наилучшими пожеланиями, Деб

1 ответ

Если API использует ASP.NET, вы можете использовать встроенную функциональность OpenID Connect и использовать обычные [Authorize] атрибуты тех контроллеров API или методов, которые вы хотите защитить.

Есть исчерпывающий образец.

В этом примере используется обычная аутентификация OpenID Connect и используются утверждения токена JWT для получения членства в группе пользователя. В случае, если группы не могут содержаться в токене JWT, токен будет содержать ссылку, по которой вы можете получить их. Это обрабатывается в файле примера ClaimHelper.cs.

Чтобы получить групповые утверждения в токене JWT, не забудьте выполнить шаг 3 в процедурах настройки примера, поскольку по умолчанию их там нет.

Вы даже можете поместить идентификаторы группового объекта из AAD в "Роли" ASP.NET, чтобы вы могли использовать [Authorize] атрибут как [Authorize(Roles="217ea9e4-0350-4a2d-b805-d71317fa0245")] где GUID - это object ID группы, членство в которой требуется.

Чтобы выполнить последнюю часть, вам нужно сначала добавить групповые заявки в манифест (шаг 3, указанный выше), а затем добавить TokenValidationParameters к OpenIdConnectAuthenticationOptions где вы определяете, какой тип заявки будет определять роли (в Startup.Auth.cs):

  new OpenIdConnectAuthenticationOptions
  {
      // add this:
      TokenValidationParameters = new TokenValidationParameters()
      {
          RoleClaimType = "groups"
      },
      // end added code
      ClientId = ConfigHelper.ClientId,

Последнее, вероятно, не лучшая практика, так как вам нужен идентификатор группы группы в [Authorize] приписывать.

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