我正在尝试在 Azure 上设置 Mediawiki。并且需要具有客户端凭据流的 OAuth 支持,以便客户端应用程序可以从 Azure AD 请求访问令牌,然后客户端使用请求的访问令牌调用 Mediawiki API 以访问 wiki 资源。
我想知道为了进行这样的设置,我可以遵循哪些步骤。
目前我正在考虑使用 Azure Web App 创建 Mediawiki 并在 AAD 中为此应用程序打开 Express Auth 模式。不确定我是否仍需要在 Mediawiki 中配置任何内容以验证访问令牌或所需的任何扩展。
我还看到一些教程创建 VM 而不是 Azure Web App。但我找不到任何适用于 Mediawiki 的客户凭证教程。
[下面更新部分]
如果我没有,我想进一步澄清我的问题。我想配置 Azure AD(它是一个身份平台)以启用客户端凭据。因此,我的客户端应用程序可以从 Azure AD 获取访问令牌,然后客户端应用程序可以使用此令牌直接向 Medaiwki API 查询数据。
例子:
步骤 1:客户端使用客户端凭据向 Azure AD 端点发送发布请求
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 步中的访问令牌查询 Medaiwiki API 数据
GET:
https://myMediawiki.com/api.php?action=query&meta=siteinfo&siprop=namespaces&format=json
Headers:
Authorization: Bearer <Access_Token>
我想知道如何配置这样的 Mediawiki。为了在 Mediawiki 获取访问令牌。
我知道有一些 OAuth 扩展。但这些扩展似乎充当了一个完整的授权服务器。就我而言,我希望 AAD 充当授权服务器,并且 AAD 将在步骤 1 中创建具有 client_id 和 Client_secret 的授权客户端应用程序。
一些参考资料: