Эта документация перемещена в архив и не поддерживается.

Образец кода: веб-служба ASP.NET

Опубликовано: Апрель 2011 г.

Обновлено: Июнь 2015 г.

Назначение: Azure

В этом примере показано, как интегрировать службу Microsoft Azure Active Directory Access Control (также называется Access Control Service или ACS) в простую веб-службу. В этом примере ASP.NET используется как узел веб-службы и клиент командной строки. Для веб-службы ASP.NET требуется маркер SWT, выданный Служба управления доступом. Клиент запрашивает маркер у службы Служба управления доступом с именем пользователя и паролем, зарегистрированными в Служба управления доступом. Код для этого примера расположен в каталоге ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) пакета Примеры кода для контроля доступа в Microsoft Azure Active Directory.

Для запуска этого примера вам потребуется:

  1. создать учетную запись на главной странице Azure и создать Пространство имен Access Control.

  2. Visual Studio 2010 (любая версия).

Дополнительные сведения см. в разделе Предварительные требования для ACS (http://go.microsoft.com/fwlink/?LinkId=221065).

Вы можете настроить службу Служба управления доступом для запуска этого примера с помощью портала управления Служба управления доступом или службы управления Служба управления доступом. В этом разделе описываются оба варианта.

  1. Вариант 1. Настройка примера с помощью портала управления Служба управления доступом

  2. Вариант 2. Настройка примера с помощью службы управления Служба управления доступом

  1. Перейдите на портал управления Microsoft Azure, выполните вход и щелкните Active Directory. (Совет по устранению неполадок. Элемент "Active Directory" отсутствует или недоступен)

  2. Чтобы создать пространство имен Access Control, щелкните Создать, Службы приложений, Управление доступом, а затем выберите Быстрое создание. (Или щелкните Пространства имен Access Control перед тем, как щелкнуть Создать.)

  3. Для выполнения управления пространством имен Access Control выберите пространство имен и щелкните Управление. (Или щелкните Пространства имен Access Control, выберите пространство имен, а затем щелкните Управление.)

    Это действие открывает портал управления Access Control Service.

  4. Чтобы зарегистрировать приложение в Служба управления доступом, щелкните Приложения проверяющей стороны, нажмите кнопку Добавить, а затем введите следующие данные в форме:

    • В поле Имя введите ASP.NET Simple Service.

    • В поле Область введите http://localhost:8000/Service/.

    • В поле URL-адрес возврата введите http://localhost:8000/Service/.

    • Выберите SWT из раскрывающегося списка Формат маркера.

    • В поле Ключ подписи токена щелкните Создать, чтобы сформировать ключ подписи токена. Скопируйте этот ключ, он будет использоваться далее при настройке.

    • В поле Дата окончания срока действия введите дату окончания срока действия ключа. После этой даты ключ больше не будет действителен.

    • Оставьте значения по умолчанию в других полях.

  5. Нажмите кнопку Сохранить, а затем щелкните Главная, чтобы вернуться на главную страницу портала управления ACS.

  6. После регистрации проверяющей стороны необходимо создать правила, определяющие утверждения, которые Служба управления доступом будет выдавать вашему приложению. В этом примере мы создадим правило, которое предоставляет всем зарегистрированным именам пользователей и паролям утверждение action со значением reverse. Чтобы создать правило, щелкните Главная для возврата на главную страницу портала управления ACS, щелкните Группы правил, а затем выберите Группа правил по умолчанию для ASP.NET Simple Service. Добавьте новое правило со следующими параметрами:

    • В разделе Отправитель утверждения выберите Служба контроля доступа.

    • В разделе Тип входящего утверждения выберите Любое.

    • В разделе Значение входящего утверждения выберите Любое.

    • В разделе Тип исходящего утверждения щелкните Ввести тип и введите action.

    • В разделе Значение исходящего утверждения щелкните Ввести значение и введите reverse.

  7. В отличие от примеров для веб-сайта этот пример использует учетные данные, которыми управляет служба Служба управления доступом. Последний шаг настройки Служба управления доступом— регистрация имени пользователя и пароля, которые будут использоваться клиентским приложением. Чтобы настроить новое имя пользователя и пароль, щелкните Главная для возврата на главную страницу ACS, выберите Удостоверения службы, нажмите кнопку Добавить и заполните форму. Для этого примера введите имя пользователя acssample, тип учетных данных Пароль и пароль pass@word1.

  8. Нажмите кнопку Сохранить, а затем щелкните Главная, чтобы вернуться на главную страницу портала управления ACS.

Пример решения Visual Studio содержит консольное приложение ConfigureSample, которое использует службу управления Служба управления доступом и общие вспомогательные методы, определенные в общей библиотеке классов. С помощью этого приложения можно настроить службу Пространство имен Access Control для использования с этим примером.

  1. Чтобы настроить пример, откройте файл SamplesConfiguration.cs (acs\Management\ManagementService\Common). Замените заполнители в классе SamplesConfiguration в общей библиотеке классов на данные о вашей службе Пространство имен Access Control. Эти сведения можно найти на портале управления Служба управления доступом.

    Перейдите на портал управления Служба управления доступом. Перейдите на портал управления Microsoft Azure, выполните вход и щелкните Active Directory. (Совет по устранению неполадок. Элемент "Active Directory" отсутствует или недоступен) Для выполнения управления пространством имен Access Control выберите пространство имен и щелкните Управление. (Или щелкните Пространства имен Access Control, выберите пространство имен, а затем щелкните Управление.)

    • ServiceNamespace— введите имя вашей службы Пространство имен Access Control.

    • ManagementServiceIdentityName— введите имя учетной записи службы управления Служба управления доступом. По умолчанию используется значение ManagementClient.

      Чтобы найти имя учетной записи службы управления, на портале управления Служба управления доступом щелкните Служба управления. Имена учетных записей указаны в разделе Учетные записи службы управления.

    • ManagementServiceIdentityKey— введите пароль учетной записи службы управления.

      Чтобы найти пароль учетной записи службы управления, на портале управления Служба управления доступом щелкните Служба управления. Щелкните имя учетной записи службы управления, а затем в разделе Учетные данные щелкните Пароль. Пароль отображается в поле Пароль. Чтобы скопировать пароль, нажмите кнопку Показать пароль.

  2. Запустите приложение ConfigureSample в Visual Studio. Оно настроит службу Служба управления доступом для запуска этого примера.

  3. После завершения работы ConfigureSample оно отображает созданный ключ подписи проверяющей стороны в консоль. Скопируйте его в буфер обмена.

  1. Откройте пример в Visual Studio. Решение состоит из двух проектов: Service и Client.

  2. Если вы этого еще не сделали, введите данные Пространство имен Access Control в файле Common\SamplesConfiguration.cs. Дополнительные сведения см. в описании шага 1 раздела Вариант 2. Настройка с помощью службы управления ACS. Этот файл также используется проектами Service и Client.

  3. Откройте файл web.config в проекте Service. Введите ключ подписи маркера в соответствующих элементах AppSettings. Если вы настроили Служба управления доступом с помощью службы управления, это значение, которое вы скопировали в буфер обмена. Ключ подписи маркера можно получить в области Сертификаты и ключи портала управления. Далее представлен фрагмент кода с этой областью файла web.config проекта Service.

    <appSettings>
        <add key="IssuerSigningKey" value="...update to your signing key..."/>
      </appSettings>
    
    
  4. Откройте файл app.config в проекте Client. Введите имя пользователя и пароль в соответствующих элементах AppSettings. Чтобы получить ранее зарегистрированные имя пользователя и пароль, перейдите в раздел Удостоверения службы портала. Далее представлен фрагмент кода с этой (обновленной соответствующим образом) областью файла app.config проекта Client.

      <appSettings>
        <add key="OAuthUserName" value="acssample" />
        <add key="OAuthPassword" value="pass@word1" />
        <add key="ServiceAddress" value="http://localhost:8000/Service/Default.aspx" />   
      </appSettings>
    
    
  5. Чтобы выполнить пример, запустите службу, а затем клиент. Введите строку, которую требуется обратить, в клиенте. Затем в окне клиентской консоли появится сообщение о том, что получен маркер от Служба управления доступом.

Показ: