Azure 客户端密钥到期时发出警报

Azure 客户端密钥到期时发出警报,azure,azure-active-directory,Azure,Azure Active Directory,我有许多在Azure AD租户中注册的应用程序,其中许多应用程序的客户端密钥已颁发1或2年。是否有办法在到期前获取警报,因为过期的密钥将导致中断。此时,没有现成的机制在客户端机密过期时发出警报 您可以在Azure广告反馈条目中对此提问进行投票: 或者,您可以通过轮询图来构建自己的警报机制(当前是Azure AD图,最终是Microsoft Graph once/servicePrincipals位于/v1.0/中) 查询并筛选PasswordCredentials.EndDate和KeyCred

我有许多在Azure AD租户中注册的应用程序,其中许多应用程序的客户端密钥已颁发1或2年。是否有办法在到期前获取警报,因为过期的密钥将导致中断。

此时,没有现成的机制在客户端机密过期时发出警报

您可以在Azure广告反馈条目中对此提问进行投票:

或者,您可以通过轮询图来构建自己的警报机制(当前是Azure AD图,最终是Microsoft Graph once/servicePrincipals位于/v1.0/中)

查询并筛选PasswordCredentials.EndDate和KeyCredentials.EndDate。


您需要在客户端进行筛选,因为Graph还不支持对这些值进行筛选。

我们还可以查询
应用程序以获取密钥的结束日期。下面是一个通过Azure Graph客户端使用客户端凭据流的代码示例,供您参考。请确保您已向应用程序授予使用客户端凭据流的
Directory.Read.All
此API的权限

var graphResourceId = "https://graph.windows.net";
var appId= "";
var appObjectId = "";
var secret = "";
var clientCredential = new ClientCredential(appId,secret);
var tenantId = "xxx.onmicrosoft.com";
AuthenticationContext authContext = new AuthenticationContext($"https://login.microsoftonline.com/{tenantId}");
var accessToken = authContext.AcquireTokenAsync(graphResourceId, clientCredential).Result.AccessToken;

Uri servicePointUri = new Uri(graphResourceId);
Uri serviceRoot = new Uri(servicePointUri, tenantId);

ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(serviceRoot, async () => await Task.FromResult(accessToken));

var app = activeDirectoryClient.Applications.GetByObjectId(appObjectId).ExecuteAsync().Result;

foreach (var passwordCredential in app.PasswordCredentials)
{
    Console.WriteLine($"KeyID:{passwordCredential.KeyId}\r\nEndDate:{passwordCredential.EndDate}\r\n");
}

相关反馈项目:谢谢,你有样本代码吗?此外,这可以通过应用程序身份验证流中的无头流程来完成吗?