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

Образец кода: проверка подлинности с помощью сертификата OAuth 2.0

Опубликовано: Май 2011 г.

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

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

В этом примере показано, как пройти проверку подлинности в Microsoft Azure Active Directory Access Control (также называется Access Control Service или ACS) с помощью протокола OAuth 2.0, предоставляя токен SAML, подписанный сертификатом X.509. Этот сертификат соответствует удостоверению ServiceIdentity, настроенному в Служба управления доступом, а Служба управления доступом выдает токен SWT с утверждением nameidentifier ServiceIdentity. Этот токен SWT используется для проверки подлинности при доступе к ресурсу, защищенному OAuth 2.0. Этот пример соответствует черновой 13 версии протокола OAuth 2.0. Код для этого примера находится в каталоге OAuth2 (C#\OAuth2) пакета Примеры кода для контроля доступа в 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. Чтобы зарегистрировать приложение в Служба управления доступом, щелкните Приложения проверяющей стороны, нажмите кнопку Добавить и введите следующие данные в форме:

    • В поле Имя введите OAuth2 RP

    • В поле Область введите https://oauth2relyingparty/.

    • В поле Формат токена выберите SWT.

    • Нажмите кнопку Создать, чтобы сформировать новый ключ.

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

  5. Нажмите кнопку Сохранить.

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

    Чтобы создать правило, щелкните Группы правил и Группа правил по умолчанию для OAuth2 RP. Используйте следующие параметры, чтобы добавить новое правило:

    • В разделе Издатель утверждения выберите Access Control Service.

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

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

    • В разделе Тип выходного утверждения выберите Сквозной тип входного утверждения.

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

  7. Этот пример использует учетные данные, которыми управляет служба Служба управления доступом.

    Чтобы настроить новый клиентский сертификат для клиентского приложения, щелкните Удостоверения службы, нажмите кнопку Добавить, а затем введите имя. Добавьте тип учетных данных Сертификат X.509 и перейдите к файлу ACS2ClientCertificate.cer в папке Certificates этого примера. Нажмите кнопку Сохранить.

  8. После настройки Служба управления доступом откройте Visual Studio.

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

  1. Добавьте в библиотеку классов Common сведения о своем Пространство имен Access Control. Откройте файл SamplesConfiguration.cs и введите следующие данные:

    • ServiceNamespace— имя Пространство имен Access Control.

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

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

    • AcsHostUrl— имя узла Служба управления доступом.

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

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

  1. Откройте пример в Visual Studio. Помимо ConfigureSample и Common, решение состоит из двух проектов: ProtectedResourceWebApp и Client.

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

  3. Откройте файл web.config в проекте ProtectedResourceWebApp.

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

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Для запуска примера запустите ProtectedResourceWebApp. Откроется браузер, но текстовое поле будет пустым, так как браузер не прошел проверку подлинности.

  6. Запустите приложение Client. В окне консоли появится HTML. Это значит, что пользователь прошел проверку подлинности. При этом отображаются утверждения от Служба управления доступом.

Показ: