Azure Active Directory 应用程序密钥更新

Azure Active Directory Application Key Renewal

在 Azure Active Directory 中配置应用程序时,您可以创建有效期为 1 年或 2 年的密钥。在拥有许多服务和客户的组织中,您如何管理密钥更新?

Azure Active Directory 会在密钥即将过期时通知您吗?有没有办法生成寿命更长甚至无限期的密钥?

不幸的是,截至今天,了解 Azure Active Directory (AAD) 应用程序 key/client 机密何时到期的唯一方法是通过 Azure 旧门户。

此外,正如您在 Azure 旧门户中看到的那样,密钥持续时间只有 2 个选项可用,即 1 年2 年.

希望对您有所帮助!

对于我正在编写的应用程序,我通过手动创建应用程序设法将过期时间设置为 99 年。您还可以使用 AppId 使用新密钥更新现有应用程序。

为此,我使用了本机应用程序;

var app = (Application)await GraphAPI.NativeConnection.Applications.Where(a => a.AppId.Equals(appClientId)).ExecuteSingleAsync();
string clientSecert = Guid.NewGuid().ToString();
DateTime exipre = DateTime.UtcNow.AddYears(99);
PasswordCredential pwc = new PasswordCredential
{
    StartDate = DateTime.UtcNow,
    EndDate = exipre,
    KeyId = Guid.NewGuid(),
    Value = clientSecert
};

app.PasswordCredentials.Add(pwc);
await app.UpdateAsync();

return new AppData { ClientId = appClientId, ClientSecert = clientSecert, ExpireDate = exipre };

GraphAPI.NativeConnection 是通过图 API 用于 Azure 的本机应用程序的单例实例。

编辑,这个单例是我自己实现的

由于您通常会在管理门户的网页中看到新的秘密,因此您需要存储该秘密并将其显示给用户记下。

创建新应用程序时,您还需要 ResourceAccess。这些项目可以在其他应用程序的清单中找到。

2016 年 9 月更新:现在可以从新门户中选择无限到期日期。在幕后,它实际上不是无限的,而是设定了一个非常遥远的未来。

来源:https://stephaneeyskens.wordpress.com/2016/01/14/managing-expiration-of-azure-active-directory-application-client-secrets/