2017-02-21 44 views
0

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

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

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

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

ответ

0

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

Существует comprehensive sample.

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

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

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

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

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

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

+0

Спасибо. Теперь я застрял там, где я упоминаю RoleCliamType = "group", не нашел код в StartUp.Auth.cs. –

+0

Образец StartUp.Auth.cs не имеет RoleClaimType –

+0

Я добавил свойство '' TokenValidationParameters'' в '' OpenIdConnectAuthenticationOptions'' в фрагменте, так что это более понятно. – RasmusW