как настроить поток учетных данных клиента Azure AD с помощью Mediawiki

#azure-active-directory #azure-web-app-service #mediawiki #mediawiki-extensions #mediawiki-installation

#azure-active-directory #azure-web-app-service #mediawiki #mediawiki-расширения #mediawiki-установка

Вопрос:

Я пытаюсь настроить Mediawiki на Azure. И необходимо иметь поддержку OAuth с потоком учетных данных клиента, чтобы клиентское приложение могло запрашивать токен доступа из Azure AD, а затем клиент использует запрошенный токен доступа для вызова API Mediawiki для доступа к ресурсам wiki.

Мне интересно, каким шагам я могу следовать, чтобы иметь такую настройку.

В настоящее время я думаю использовать Azure Web App для создания Mediawiki и включить режим экспресс-аутентификации в AAD для этого приложения. Не уверен, нужно ли мне еще что-либо настраивать в Mediawiki для проверки токена доступа или любого необходимого расширения.

Я также видел несколько руководств по созданию виртуальной машины вместо веб-приложения Azure. Но я не могу найти никаких руководств по учетным данным клиента для Mediawiki.

[Раздел обновления ниже]

Я хотел бы немного уточнить свой вопрос на случай, если я этого не сделал. Я хотел бы настроить Azure AD (которая является платформой идентификации) для включения учетных данных клиента. Таким образом, мое клиентское приложение может получить токен доступа из Azure AD, а затем клиентское приложение может использовать этот токен для запроса данных непосредственно в API Medaiwki.

Пример:

Шаг 1. Клиент отправляет post-запрос в конечную точку Azure AD с помощью клиентских crendentials

 POST:
https://login.microsoftonline.com/xxxxxx_an_AAD_tenantID_xxxxxxxxxxxx/oauth2/token
 
Headers:
Content-Type: multipart/form-data;
 
Body:
{
    client_id=<New App Registration Client ID>,
    client_secret=<New App Registration Client Secret>,
    grant_type=client_credentials
}
 
Response:
{    
    "token_type": "Bearer",    
    "expires_in": "xxx",    
    "ext_expires_in": "xxx",    
    "expires_on": "xxx",    
    "not_before": "xxxx,    
    "resource": "xxx",    
    "access_token": <Access_Token>
}
 

Шаг 2. использование токена доступа из шага 1 для запроса данных API Medaiwiki

 GET:
https://myMediawiki.com/api.php?action=queryamp;meta=siteinfoamp;siprop=namespacesamp;format=json
 
Headers:
Authorization: Bearer <Access_Token>
 

Мне интересно, как настроить такой Mediawiki. Для того, чтобы получить токен доступа в Mediawiki.

Я понимаю, что есть некоторые расширения OAuth. Но эти расширения, похоже, действуют как единый сервер авторизации. В моем случае я хотел бы, чтобы AAD действовал как сервер авторизации, а AAD создаст авторизованное клиентское приложение с client_id и Client_secret на шаге 1.

Некоторые ссылки:

Комментарии:

1. mediawiki.org/wiki/Extension:OAuth2_Client возможно, это то, что вы ищете.

2. спасибо @ Tgr, но я не вижу никакой документации / примера конфигурации для поддержки потока учетных данных клиента, который должен предоставлять приложению доступ к mediawiki api. Клиентское приложение получает токен доступа из Azure AD, и приложение использует его для доступа к API Medaiwiki.

3. Итак, вы хотите, чтобы MediaWiki был сервером OAuth, а Azure — клиентом OAuth? В этом случае ознакомьтесь mediawiki.org/wiki/Extension:OAuth

4. Привет @Tgr, я бы сказал, что не совсем на ваш вопрос выше. Я хотел бы настроить Azure AD (которая является платформой идентификации) для получения токена доступа для клиентского приложения. Затем используйте токен доступа для прямого вызова Mediawiki API для доступа к данным. (пожалуйста, смотрите раздел «Мои обновления» в моем исходном вопросе) спасибо

5. Итак, как бы вы назначили идентификаторы клиентов пользователям MediaWiki?