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) 分解如下:
- 60 位时间戳,
- 48 位计算机标识符,
- 14 位唯一标识符,并且
- 六位固定
一共128位。
该算法的目标是使用时间和位置的组合(相对论极客的“space-time 坐标”)作为唯一键。
但是,例如,有可能从同一台机器快速连续生成两个 GUID,它们在时间上非常接近以至于时间戳相同。这就是 uniquifier 的用武之地。
当时间似乎停滞不前(如果快速连续地发出两个 GUID 请求)或倒退(如果系统时钟设置为比原来早的新时间),则唯一标识符递增这样从“第二次五点钟”生成的 GUID 就不会与“第一次五点钟”生成的 GUID 发生冲突。
一旦您了解了它的工作原理,就会明白您不能只丢弃 GUID 的一部分,因为所有部分(好吧,固定部分除外)一起工作以建立唯一性。这就是所有的工作原理。
注:甚至有时网络地址也考虑为GUID
.
我知道 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) 分解如下:
- 60 位时间戳,
- 48 位计算机标识符,
- 14 位唯一标识符,并且
- 六位固定
一共128位。 该算法的目标是使用时间和位置的组合(相对论极客的“space-time 坐标”)作为唯一键。
但是,例如,有可能从同一台机器快速连续生成两个 GUID,它们在时间上非常接近以至于时间戳相同。这就是 uniquifier 的用武之地。
当时间似乎停滞不前(如果快速连续地发出两个 GUID 请求)或倒退(如果系统时钟设置为比原来早的新时间),则唯一标识符递增这样从“第二次五点钟”生成的 GUID 就不会与“第一次五点钟”生成的 GUID 发生冲突。
一旦您了解了它的工作原理,就会明白您不能只丢弃 GUID 的一部分,因为所有部分(好吧,固定部分除外)一起工作以建立唯一性。这就是所有的工作原理。
注:甚至有时网络地址也考虑为GUID
.