You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Graph API添加的App Registration密钥未在Azure门户显示

问题:通过Graph API生成的应用注册密钥在Azure门户不可见

我有一个Azure Function,通过Graph API在Azure AD中重新生成各类应用注册(App Registration)的密钥。调用的接口如下:

POST https://graph.microsoft.com/v1.0/servicePrincipals(appId='{someAppId}')/addPassword
{
  "passwordCredential": {
    "displayName": "Password friendly name"    
  }
}

接口返回200 OK:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.passwordCredential",
    "customKeyIdentifier": null,
    "displayName": "Password friendly name",
    "endDateTime": "2026-01-30T10:16:31.9513536Z",
    "hint": "XCE",
    "keyId": "{redacted}",
    "secretText": "{redacted}",
    "startDateTime": "2024-01-30T10:16:31.9513536Z"
}

新生成的密钥可正常使用,但在Azure门户的密钥列表中无法看到该密钥。这是一个已知问题,但我未找到解决方案。

更新:C#编程实现代码示例

若要通过C#编程实现该功能,可参考以下代码:

var applications = await GetAppRegistrationsAsync(log, filterCriteria, graphServiceClient);
 
foreach (var application in applications)
{
    var requestBody = new AddPasswordPostRequestBody
    {
        PasswordCredential = new PasswordCredential
        {
            DisplayName = "Secret Name",
            //StartDateTime = DateTimeOffset.UtcNow,
            //EndDateTime = DateTimeOffset.UtcNow.AddYears(1) // Set expiration as needed
        }
    };

    var resultApp = await graphServiceClient.Applications[$"{application.Id}"].AddPassword.PostAsync(requestBody);
}
private static async Task<IEnumerable<Application>> GetAppRegistrationsAsync(ILogger log, string filterCriteria, GraphServiceClient graphServiceClient)
{
    try
    {
        var applications = await graphServiceClient
            .Applications
            .GetAsync(requestConfiguration =>
            {
                requestConfiguration.QueryParameters.Filter = filterCriteria;
            });

        // var servicePrincipals = await _graphServiceClient.ServicePrincipals.GetAsync( x => x.QueryParameters.Filter );
        return applications is { Value: { } } ? applications.Value : Enumerable.Empty<Application>();
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
        throw;
    }
}

内容的提问来源于stack exchange,提问作者tonycdp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:13:17