0

我在 Azure 上安装了 MySql Server,并配置了 Azure Directory Admin。

例子

MySql Servername:mysqlserver和MySql AD Admin Account:( admin@organistionname.com.au本组织域账户)

可以在 MySql Server 的 User Accounts 下看到上面的帐户。

我为 phpMyadmin 建立了 Azure Web App,并配置为指向上面的 MySql db。

当使用上述 Active Directory 管理员帐户登录 phpMyAdmin 正在针对 AD 进行验证时,但出现错误

 mysqli::real_connect(): (HY000/9013): An error occurred while validating the access token. Please acquire a new token and retry.

我需要获取需要传递给 MySql 服务器的广告令牌。

如何在 Azure Web App 中实现这一点?

4

2 回答 2

3

本文档应该可以帮助您:https ://docs.microsoft.com/en-gb/azure/mysql/howto-configure-sign-in-azure-ad-authentication#connecting-to-azure-database-for-mysql-使用天蓝色广告

您需要在代码中为您的用户获取访问令牌,以针对资源:https://ossrdbms-aad.database.windows.net或针对范围(如果使用 v2)https://ossrdbms-aad.database.windows.net/.default:。

使用 AAD 获取访问令牌完全是另一个主题,具体方式取决于您的应用程序。这个答案可能对此有所帮助:https ://stackoverflow.com/a/33512913/1658906

于 2020-02-05T06:18:05.160 回答
0

我有相同的设置(除了在 AKS 的容器中运行的 phpmyadmin)。

我相信 phpmyadmin 无法在启用 azure ad 的情况下连接到 mysql(至少使用 AD 用户/组),因为令牌(密码)需要以明文形式发送,并且 phpmyadmin 在发送之前对其进行哈希处理。

我认为这就是我在验证访问令牌时收到错误的原因。请获取新令牌并重试。错误。

这也是为什么在文档中,他们在示例cli 命令上设置了--enable-cleartext-plugin标志。mysql

同样在文档中,他们声明使用 myqsl cli 和 mysqladmin进行了测试。

出于这个原因,我目前正计划放弃 phpmyadmin 转而使用 azure bastion 和运行 mysqlworkbench 的 VM。

于 2020-10-07T23:14:59.820 回答