我可以使用 API 生成 Azure AD 客户端凭据机密吗?

Can I generate Azure AD Client Credentials Secrets using an API?

我想使用我的 Azure AD 应用注册来创建多个客户端机密。我被困在两个问题上,并且找不到关于这些问题的任何文档:

  1. 是否有 API(图表或任何其他)可用于自动生成和删除客户端机密?
  2. 单个应用程序中可以有多少个客户端密钥有限制吗?

Is there an API (Graph, or any other) which I can use to automate
generation and deletion of the Client Credentials Secrets?

您可以通过调用 Add Password api, or delete the client secret by calling remove Password api.

来生成客户端密码

请注意 api 中的 {id}Object ID

Is there a limit on how many Client Secrets there can be within a single app?

看你的应用是否支持个人账号登录。如果您的应用支持个人账号登录,您最多只能创建两个client secret。

如果您的应用程序仅支持工作帐户登录,则创建的客户端密码数量没有限制。

您可以通过查看应用程序的清单了解或修改应用程序支持的帐户类型。它是清单中的 signInAudience 属性。

您可以使用以下示例代码生成应用程序凭据:

var graphClient = new GraphServiceClient( authProvider );

var passwordCredential = new PasswordCredential
{
    DisplayName = "Password name"
};

await graphClient.Applications["{application-id}"]
    .AddPassword(passwordCredential)
    .Request()
    .PostAsync();

API Reference