客户密钥到期警报

时间:2017-05-19 17:05:36

标签: azure azure-active-directory

我在Azure AD租户中注册了许多应用程序,其中许多应用程序的客户密钥已发布1年或2年。有没有办法在到期前获得警报,因为过期的密钥会导致中断。

2 个答案:

答案 0 :(得分:1)

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

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");
}

答案 1 :(得分:0)

目前,当客户机密即将到期时,没有开箱即用的警报机制

您可以在Azure AD反馈条目中投票赞成此问题:Need email alert option when keys are about to expire

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

查询/servicePrincipals并过滤PasswordCredentials.EndDate和KeyCredentials.EndDate。

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