Api windows active directory

Иллюстрированный самоучитель по Microsoft Windows 2000

Интерфейсы API в Active Directory

Имеется множество каталогов сетевых ресурсов, например, LDAP-каталоги, Active Directory, Banyan StreetTalk, Microsoft Windows NT Directory Service, Novell Directory Service, и каталогов конкретных приложений, таких как Lotus Notes, cc:Mail или Microsoft Exchange. Все эти службы каталогов имеют свои интерфейсы программирования, что усложняет как администрирование каталогов (поскольку управление каждым каталогом выполняется отдельно), так и создание корпоративных приложений, обращающихся к используемым в организации каталогам.

Решение проблемы компания Microsoft видит в применении Active Directory Service Interface (ADSI) – набора СОМ-интерфейсов программирования, при помощи которого пользователи и независимые поставщики программного обеспечения (ISV) могут применять единый хорошо проработанный интерфейс для регистрации в различных службах каталогов, доступа к ним и управления этими службами.

Одним из наиболее распространенных и открытых интерфейсов доступа к базам данных является Open Data Base Connectivity (ODBC). Этот интерфейс поддерживается практически всеми реляционными базами данных. ADSI можно рассматривать как «ODBC для служб каталогов». ADSI позволяет создавать механизмы (называемые поставщиками ADSI, ADSI-providers) доступа к информации конкретного типа каталога. Прикладные программы, написанные с использованием ADSI, будут работать с любыми службами каталогов, для которых имеется поставщик ADSI. Так обеспечивается открытое, универсальное решение проблемы использования различных каталогов (рис. 23.6). Windows NT Server 4.0 уже имеет несколько поставщиков ADSI для различных служб каталогов, a Windows 2000 Server имеет поставщика ADSI для Active Directory.


Рис. 23.6. Открытое решение С использованием ADSI

В основе ADSI лежит модель СОМ-объектов, что упрощает написание сценариев доступа к каталогу. Например, администратор может создать сценарий для присвоения значений некоторым элементам Active Directory. Разработчики программных продуктов могут использовать данный API, например, для анализа элементов каталога.

Для низкоуровневого программирования на C/C++ Active Directory также имеет стандартный LDAP API, который определяется как набор вызовов С-функций и описан в RFC 1823. Интерфейсы ADSI являются одним из компонентов Open Directory Service Interfaces (ODSI, Интерфейсы службы открытого каталога), входящих в Windows Open Services Architecture (WOSA, Архитектура открытых служб Windows). Для наглядности основные достоинства ADSI перечислены в табл. 23.1.

Таблица 23.1. Достоинства Active Directory Service Interface (ADSI).

Руководство по Предоставление доступа к веб-API ASP.NET с помощью Azure Active Directory B2C Tutorial: Grant access to an ASP.NET web API using Azure Active Directory B2C

В этом руководстве показано, как вызывать защищенный ресурс веб-API в Azure Active Directory B2C (Azure AD B2C) из веб-приложения ASP.NET. This tutorial shows you how to call a protected web API resource in Azure Active Directory B2C (Azure AD B2C) from an ASP.NET web application.

В этом руководстве описано следующее: In this tutorial, you learn how to:

  • Добавление приложения веб-API Add a web API application
  • Настройка областей для веб-API. Configure scopes for a web API
  • Предоставление разрешения на использование веб-API. Grant permissions to the web API
  • настройка примера для использования приложения; Configure the sample to use the application

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу. If you don’t have an Azure subscription, create a free account before you begin.

Предварительные требования Prerequisites

Добавление приложения веб-API Add a web API application

Ресурсы веб-API необходимо зарегистрировать в клиенте, чтобы они могли принимать запросы защищенных ресурсов от клиентских приложений, которые представляют маркер доступа, и отвечать на них. Web API resources need to be registered in your tenant before they can accept and respond to protected resource requests by client applications that present an access token.

Чтобы зарегистрировать приложение в клиенте Azure AD B2C, можно использовать новый унифицированный интерфейс регистрации приложений или устаревший интерфейс приложений (прежняя версия) . To register an application in your Azure AD B2C tenant, you can use our new unified App registrations experience or our legacy Applications (Legacy) experience. См. дополнительные сведения о новом интерфейсе. Learn more about the new experience.

  • Регистрация приложений App registrations
  • Приложения (прежние версии) Applications (Legacy)
  1. Войдите на портал Azure. Sign in to the Azure portal.
  2. Выберите фильтр Каталог и подписка в верхнем меню, а затем выберите каталог, содержащий клиент Azure AD B2C. Select the Directory + subscription filter in the top menu, and then select the directory that contains your Azure AD B2C tenant.
  3. В меню слева выберите Azure AD B2C. In the left menu, select Azure AD B2C. Либо щелкните Все службы, а затем найдите и выберите Azure AD B2C Or, select All services and search for and select Azure AD B2C.
  4. Щелкните Регистрация приложений и выберите Новая регистрация. Select App registrations, and then select New registration.
  5. Введите имя приложения. Enter a Name for the application. Например, webapi1. For example, webapi1.
  6. В разделе URL-перенаправления выберите Интернет, а затем введите конечную точку, куда Azure AD B2C будет возвращать все маркеры, запрашиваемые вашим приложением. Under Redirect URI, select Web, and then enter an endpoint where Azure AD B2C should return any tokens that your application requests. В этом руководстве пример выполняется локально и ожидает передачи данных по адресу https://localhost:44332 . In this tutorial, the sample runs locally and listens at https://localhost:44332 .
  7. Выберите Зарегистрировать. Select Register.
  8. Запишите значение параметра Идентификатор приложения (клиент) . Оно вам потребуется в дальнейшем. Record the Application (client) ID for use in a later step.
  1. Войдите на портал Azure. Sign in to the Azure portal.
  2. Убедитесь, что используете каталог с клиентом Azure AD B2C, выбрав фильтр Каталог и подписка в меню вверху и каталог с вашим клиентом. Make sure you’re using the directory that contains your Azure AD B2C tenant by selecting the Directory + subscription filter in the top menu and choosing the directory that contains your tenant.
  3. Выберите Все службы в левом верхнем углу окна портала Azure, а затем найдите и выберите Azure AD B2C. Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
  4. Щелкните Applications (Legacy) (Приложения (Прежние версии)), а затем выберите Добавить. Select Applications (Legacy), and then select Add.
  5. Введите имя приложения. Enter a name for the application. Например, webapi1. For example, webapi1.
  6. Для поля Включить веб-приложение или веб-интерфейс API выберите Да. For Include web app/ web API, select Yes.
  7. Для URL-адреса ответа введите конечные точки, куда Azure AD B2C возвращает все маркеры, запрашиваемые вашим приложением. For Reply URL, enter an endpoint where Azure AD B2C should return any tokens that your application requests. В этом руководстве пример выполняется локально и ожидает передачи данных по адресу https://localhost:44332 . In this tutorial, the sample runs locally and listens at https://localhost:44332 .
  8. Для поля URI идентификатора приложения выберите идентификатор, используемый для веб-API. For App ID URI, enter the identifier used for your web API. Полный URI код с доменом создается автоматически. The full identifier URI including the domain is generated for you. Например, https://contosotenant.onmicrosoft.com/api . For example, https://contosotenant.onmicrosoft.com/api .
  9. Нажмите кнопку Создать. Click Create.
  10. На странице свойств запишите идентификатор приложения, который будет использоваться при настройке веб-приложения. On the properties page, record the application ID that you’ll use when you configure the web application.
Читайте также:  Milk the cow для windows

Настройка областей Configure scopes

Области предоставляют способ контроля доступа к защищенным ресурсам. Scopes provide a way to govern access to protected resources. Области используются веб-API для реализации управления доступом на уровне области. Scopes are used by the web API to implement scope-based access control. Например, пользователи веб-API могут иметь доступ на чтение и запись или доступ только на чтение. For example, users of the web API could have both read and write access, or users of the web API might have only read access. В этом руководстве также можно использовать области для определения разрешений на чтение и запись для веб-API. In this tutorial, you use scopes to define read and write permissions for the web API.

  • Регистрация приложений App registrations
  • Приложения (прежние версии) Applications (Legacy)
  1. Щелкните Регистрация приложений. Select App registrations.
  2. Выберите приложение webapi1, чтобы открыть его страницу Обзор. Select the webapi1 application to open its Overview page.
  3. В разделе Управление выберите Предоставление API. Under Manage, select Expose an API.
  4. Рядом с полем URI идентификатора приложения щелкните ссылку Задать. Next to Application ID URI, select the Set link.
  5. Замените значение по умолчанию (GUID) значением api , а затем выберите Сохранить. Replace the default value (a GUID) with api , and then select Save. Отобразится полный универсальный код ресурса (URI). Он должен быть в формате https://your-tenant-name.onmicrosoft.com/api . The full URI is shown, and should be in the format https://your-tenant-name.onmicrosoft.com/api . Когда веб-приложение запрашивает маркер доступа для API, оно должно добавить этот универсальный код ресурса (URI) в качестве префикса для каждой области, определяемой для API. When your web application requests an access token for the API, it should add this URI as the prefix for each scope that you define for the API.
  6. В разделе Области, определенные этим API выберите Добавление области. Under Scopes defined by this API, select Add a scope.
  7. Введите следующие значения, чтобы создать область, определяющую доступ для чтения к API, а затем выберите Добавить область. Enter the following values to create a scope that defines read access to the API, then select Add scope:
    1. Имя области: demo.read Scope name: demo.read
    2. Отображаемое имя согласия администратора: Read access to demo API Admin consent display name: Read access to demo API
    3. Описание согласия администратора: Allows read access to the demo API Admin consent description: Allows read access to the demo API
  8. Выберите Добавление области, введите приведенные ниже значения, чтобы добавить область, определяющую доступ для записи к API, а затем выберите Добавить область. Select Add a scope, enter the following values to add a scope that defines write access to the API, and then select Add scope:
    1. Имя области: demo.write Scope name: demo.write
    2. Отображаемое имя согласия администратора: Write access to demo API Admin consent display name: Write access to demo API
    3. Описание согласия администратора: Allows write access to the demo API Admin consent description: Allows write access to the demo API
  1. Выберите Приложения (прежние версии) . Select Applications (Legacy).
  2. Выберите приложение webapi1, чтобы открыть страницу его свойств. Select the webapi1 application to open its Properties page.
  3. Выберите Опубликованные области. Select Published scopes. Опубликованные области можно использовать для предоставления клиентскому приложению определенных разрешений на доступ к веб-API. Published scopes can be used to grant a client application certain permissions to the web API.
  4. Для параметра Область введите demo.read , а для параметра Описание — Read access to the web API . For SCOPE, enter demo.read , and for DESCRIPTION, enter Read access to the web API .
  5. Для параметра Область введите demo.write , а для параметра Описание — Write access to the web API . For SCOPE, enter demo.write , and for DESCRIPTION, enter Write access to the web API .
  6. Щелкните Сохранить. Select Save.
Читайте также:  Как удалить файлы с автозагрузки windows 10

Предоставить разрешения Grant permissions

Чтобы вызвать защищенный веб-API из приложения, необходимо предоставить приложению разрешения на доступ к API. To call a protected web API from an application, you need to grant your application permissions to the API. Как часть предварительного требования, вы создали веб-приложение webapp1 в Azure AD B2C. In the prerequisite tutorial, you created a web application in Azure AD B2C named webapp1. Используйте это приложение для вызова веб-API. You use this application to call the web API.

  • Регистрация приложений App registrations
  • Приложения (прежние версии) Applications (Legacy)
  1. Щелкните Регистрация приложений, а затем выберите веб-приложение, которое должно иметь доступ к API. Select App registrations, and then select the web application that should have access to the API. Например, webapp1. For example, webapp1.
  2. В разделе Управление выберите Разрешения API. Under Manage, select API permissions.
  3. В разделе Настроенные разрешения выберите Добавить разрешение. Under Configured permissions, select Add a permission.
  4. Выберите вкладку Мои API. Select the My APIs tab.
  5. Выберите API, к которому должен быть предоставлен доступ веб-приложению. Select the API to which the web application should be granted access. Например, webapi1. For example, webapi1.
  6. В разделе Разрешение разверните узел Демонстрация, а затем выберите определенные ранее области. Under Permission, expand demo, and then select the scopes that you defined earlier. Например, demo.read и demo.write. For example, demo.read and demo.write.
  7. Выберите Добавить разрешения. Select Add permissions.
  8. Выберите Предоставить согласие администратора для (имя арендатора) . Select Grant admin consent for (your tenant name).
  9. Когда вам будет предложено, выберите учетную запись администратора, с которой выполнен вход, или выполните вход с учетной записью в арендаторе Azure AD B2C, которой назначена по крайней мере роль Администратор облачных приложений. If you’re prompted to select an account, select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that’s been assigned at least the Cloud application administrator role.
  10. Выберите Да. Select Yes.
  11. Нажмите Обновить и убедитесь, что надпись «Предоставлено для. » отображается в разделе Состояние для обеих областей. Select Refresh, and then verify that «Granted for . » appears under Status for both scopes.
  1. Щелкните Приложения (прежние версии) , а затем выберите веб-приложение, которое должно иметь доступ к API. Select Applications (Legacy), and then select the web application that should have access to the API. Например, webapp1. For example, webapp1.
  2. Щелкните Доступ через API, а затем выберите Добавить. Select API access, and then select Add.
  3. В раскрывающемся списке Выбрать API выберите API, к которому должен быть предоставлен доступ веб-приложению. In the Select API dropdown, select the API to which web application should be granted access. Например, webapi1. For example, webapi1.
  4. В раскрывающемся списке Выбрать области выберите области, определенные ранее. In the Select Scopes dropdown, select the scopes that you defined earlier. Например, demo.read и demo.write. For example, demo.read and demo.write.
  5. Щелкните ОК. Select OK.

Приложение зарегистрировано для вызова защищенного веб-API. Your application is registered to call the protected web API. Пользователь выполняет аутентификацию в Azure AD B2C для использования приложения. A user authenticates with Azure AD B2C to use the application. Приложение получает предоставление авторизации из Azure AD B2C для доступа к защищенному веб-API. The application obtains an authorization grant from Azure AD B2C to access the protected web API.

Читайте также:  Windows thin pc sp1 x64

Настройка примера Configure the sample

Теперь, когда веб-API зарегистрирован и определены области, необходимо настроить веб-API для использования клиента Azure AD B2C. Now that the web API is registered and you have scopes defined, you configure the web API to use your Azure AD B2C tenant. В этом руководстве настройте пример веб-API. In this tutorial, you configure a sample web API. Пример веб-API включен в проект, который вы скачали при работе с предыдущей статьей. The sample web API is included in the project you downloaded in the prerequisite tutorial.

Пример решения состоит из двух проектов. There are two projects in the sample solution:

  • TaskWebApp — создание и изменение списка задач. TaskWebApp — Create and edit a task list. Пример использует поток пользователя регистрации или входа для регистрации пользователей или входа в систему. The sample uses the sign-up or sign-in user flow to sign up or sign in users.
  • TaskService — это веб-API, поддерживающий функции создания, чтения, обновления и удаления списка задач. TaskService — Supports the create, read, update, and delete task list functionality. API защищен с помощью Azure AD B2C и вызывается TaskWebApp. The API is protected by Azure AD B2C and called by TaskWebApp.

Настройка веб-приложения Configure the web application

Откройте решение B2C-WebAPI-DotNet в Visual Studio. Open the B2C-WebAPI-DotNet solution in Visual Studio.

В проекте TaskWebApp откройте файл Web.config. In the TaskWebApp project, open Web.config.

Для запуска API-интерфейса в локальной среде используйте параметр localhost для api:TaskServiceUrl. To run the API locally, use the localhost setting for api:TaskServiceUrl. Измените файл Web.config следующим образом: Change the Web.config as follows:

Настройте URI API-интерфейса. Configure the URI of the API. Это URI, который веб-приложение использует для выполнения запроса API. This is the URI the web application uses to make the API request. Кроме того, настройте запрошенные разрешения. Also, configure the requested permissions.

Настройка веб-API Configure the web API

В проекте TaskService откройте файл Web.config. In the TaskService project, open Web.config.

Настройте API-интерфейс для использования клиента. Configure the API to use your tenant.

Определите в качестве идентификатора клиента идентификатор зарегистрированного приложения веб-API — webapi1. Set the client ID to the Application ID of your registered web API application, webapi1.

Измените параметр потока пользователя, указав имя потока регистрации и входа пользователя — B2C_1_signupsignin1. Update the user flow setting with the name of your sign-up and sign-in user flow, B2C_1_signupsignin1.

Настройте параметр области в соответствии с тем, что вы создали на портале. Configure the scopes setting to match those you created in the portal.

Запуск примера Run the sample

Необходимо выполнить оба проекта: TaskWebApp и TaskService. You need to run both the TaskWebApp and TaskService projects.

В обозревателе решений щелкните решение правой кнопкой мыши и выберите Set StartUp Projects. (Назначить запускаемые проекты. ). In Solution Explorer, right-click on the solution and select Set StartUp Projects. .

Выберите Несколько запускаемых проектов. Select Multiple startup projects.

Установите Запуск в качестве действия для обоих проектов. Change the Action for both projects to Start.

Нажмите кнопку ОК, чтобы сохранить конфигурацию. Click OK to save the configuration.

Нажмите клавишу F5 для запуска приложений. Press F5 to run both applications. Каждое приложение открывается в отдельной вкладке браузера. Each application opens in its own browser window.

  • https://localhost:44316/ — это веб-приложение. https://localhost:44316/ is the web application.
  • https://localhost:44332/ — это веб-API. https://localhost:44332/ is the web API.

В веб-приложении выберите команды регистрации или входа в систему, чтобы войти в веб-приложение. In the web application, select sign-up / sign-in to sign in to the web application. Используйте учетную запись, созданную ранее. Use the account that you previously created.

После входа щелкните Список задач и создайте элемент списка задач. After you sign in, select To-do list and create a to-do list item.

При создании элемента списка задач веб-приложение выполняет запрос к веб-API, чтобы создать элемент списка задач. When you create a to-do list item, the web application makes a request to the web API to generate the to-do list item. Защищенное веб-приложение вызывает веб-API, защищенный с помощью Azure AD B2C. Your protected web application is calling the web API protected by Azure AD B2C.

Дальнейшие действия Next steps

В этом руководстве вы узнали, как выполнять следующие задачи: In this tutorial, you learned how to:

Оцените статью