簡體   English   中英

如何判斷 Azure AD 客戶端密碼何時過期?

[英]How can I tell when a Azure AD client secret expires?

我在 Azure AD Tenant 中注冊了很多應用程序,其中許多應用程序都擁有 1 年或 2 年的客戶端密鑰。 有沒有辦法在過期之前獲得警報,因為過期的密鑰會導致中斷。

我們還可以查詢application以獲取密鑰的結束日期。 以下是通過 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");
}

目前,還沒有用於在客戶端機密到期時發出警報的開箱即用機制

您可以在 Azure AD 反饋條目中投票支持此問題: 密鑰即將到期時需要電子郵件警報選項

或者,您可以通過輪詢 Graph (當前是 Azure AD Graph,最終是 Microsoft Graph,一旦 /servicePrincipals 位於 /v1.0/ 中)來構建自己的警報機制

查詢/servicePrincipals並過濾PasswordCredentials.EndDateKeyCredentials.EndDate

您需要在客戶端進行過濾,因為 Graph 尚不支持對這些值進行過濾。

我創建了一個“簡單的”單行 Azure Powershell 命令來顯示所有已經或將在未來 30 天內到期的委托人。 將其用作 email(如 Send-MailMessage)或其他警報工具的數據饋送可能相當簡單。

Get-AzureADApplication -All:$true | Select-Object AppId, displayName -ExpandProperty PasswordCredentials | Where-Object EndDate -lt (Get-Date).AddDays(30) | Sort-Object EndDate | Format-Table AppId, DisplayName, EndDate

注意:如果您在一個委托人上有多個秘密,每個秘密都會在 output 中顯示為自己的一行。如果您想查看所有委托人及其秘密過期時間,只需刪除中間的 Where-Object 子句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM