Как авторизовать пользователя в группе 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]
приписывать.