Аутентификация Azure AD в API-интерфейсе dotnet core 2 и приложении-демоне - PullRequest
0 голосов
/ 06 мая 2018

Я изо всех сил пытаюсь определить наилучший маршрут для аутентификации, используя Azure Active Directory для моего основного веб-API dotnet core.

Вот ситуация:

  • Приложение, созданное в Azure Active Directory, для которого веб-API аутентифицирует пользователей. С ним связано несколько ролей приложения.
  • Демонстрационное приложение, которое должно пройти аутентификацию в Web API.

Как лучше всего решить проблему аутентификации? Трудно найти четкую документацию о том, как на самом деле решить эту проблему.

Спасибо за ваш совет и помощь!

1 Ответ

0 голосов
/ 06 мая 2018

Ваше приложение-демон должно будет использовать разрешения приложения (роли приложения с типом члена = Приложение) для вызова API. Вы можете увидеть, как определить их здесь: https://joonasw.net/view/defining-permissions-and-roles-in-aad.

Например, вот так выглядит манифест:

{
  "appRoles": [
  {
    "allowedMemberTypes": [
      "Application"
    ],
    "displayName": "Read all todo items",
    "id": "f8d39977-e31e-460b-b92c-9bef51d14f98",
    "isEnabled": true,
    "description": "Allow the application to read all todo items as itself.",
    "value": "Todo.Read.All"
  }
  ]
}

Затем вы назначаете разрешение приложению вашему приложению-демону.

После этого достаточно просто выполнить аутентификацию с использованием учетных данных клиента из приложения-демона. Например, в ADAL.NET вы получите токен с ClientCredential + URI ресурса API. Вы можете найти URI из регистрации приложения вашего API (блейд свойств, URI идентификатора приложения).

Затем можно присоединить полученный токен доступа к HTTP-запросам, и API может найти из утверждения appid, кто является вызывающим приложением, и из утверждения roles, какие разрешения приложения они имеют.

...