Azure AAD 应用程序 ID 在整个 Azure 中是否唯一?

Is Azure AAD application ID unique in whole Azure?

我知道 AAD 应用程序 ID 在一个目录(租户)中是唯一的。它是一个指南,显然在全世界应该是独一无二的,但碰撞可能是。问题是:Azure 在生成 AAD 应用程序 ID 时是否验证它在所有其他目录中是否唯一?

如果你看 official document for application property you would know application id

The unique identifier for the application that is assigned to an application by Azure AD. Not nullable. Read-only

如何唯一生成 Azure 应用程序 ID:

应用程序 ID (GUID) 分解如下:

  1. 60 位时间戳,
  2. 48 位计算机标识符,
  3. 14 位唯一标识符,并且
  4. 六位固定

一共128位。 该算法的目标是使用时间和位置的组合(相对论极客的“space-time 坐标”)作为唯一键。

但是,例如,有可能从同一台机器快速连续生成两个 GUID,它们在时间上非常接近以至于时间戳相同。这就是 uniquifier 的用武之地。

当时间似乎停滞不前(如果快速连续地发出两个 GUID 请求)或倒退(如果系统时钟设置为比原来早的新时间),则唯一标识符递增这样从“第二次五点钟”生成的 GUID 就不会与“第一次五点钟”生成的 GUID 发生冲突。

一旦您了解了它的工作原理,就会明白您不能只丢弃 GUID 的一部分,因为所有部分(好吧,固定部分除外)一起工作以建立唯一性。这就是所有的工作原理。

注:甚至有时网络地址也考虑为GUID.