【发布时间】:2020-01-08 08:18:05
【问题描述】:
在 Azure 中生成 Client Secret 时,是否可以自己给它一个值?还是 Azure 必须自己生成密钥并复制它?
我问这个的原因是因为我正在管理一个使用最近过期的特定客户端密码的平台,但是要更新客户端密码值,我需要进行完全重新部署,并且它'由于多种原因,最好等到 2 月初。
【问题讨论】:
标签: azure azure-active-directory secret-key
在 Azure 中生成 Client Secret 时,是否可以自己给它一个值?还是 Azure 必须自己生成密钥并复制它?
我问这个的原因是因为我正在管理一个使用最近过期的特定客户端密码的平台,但是要更新客户端密码值,我需要进行完全重新部署,并且它'由于多种原因,最好等到 2 月初。
【问题讨论】:
标签: azure azure-active-directory secret-key
其实可以的。只需要使用Azure CLI az ad app credential reset,确保你已经安装了Azure CLI。
我的测试样本:
如果您想创建新的客户端密码,只需使用--append 参数即可。
az ad app credential reset --id "<application id or object id>" --password "Password12345678!"
创建secret后,我们尝试使用它登录,它工作正常。
az login --service-principal --username '<application id>' --password 'Password12345678!' --tenant '<tenant id>'
【讨论】:
很遗憾,你不能。至少在您使用 Azure 门户时不会。如果您这样做,该秘密将由平台自动生成。
保存客户端密码后,会显示客户端密码的值。复制此值,因为您以后无法检索密钥。您提供带有应用程序 ID 的键值以作为应用程序登录。将键值存储在应用程序可以检索的位置。
取自Create a new application secret。
此外,在其他文档中,客户端密码被描述为:
您在应用注册门户中为您的应用生成的客户端密码。
或提及
[...] 您可以获取客户端 ID(应用程序 ID)并生成客户端密钥(密钥)值。
根据您的需要,您可以考虑使用certificates 或Managed identities for Azure Resources。
编辑:
但是,您可以使用 Azure CLI,例如 this answer 中指定的 Joy。
【讨论】: