Azure 登录时未获得oid响应?

Azure 登录时未获得oid响应?,azure,oauth-2.0,azure-active-directory,azure-ad-b2c,Azure,Oauth 2.0,Azure Active Directory,Azure Ad B2c,我正在使用以下URL尝试登录我的azure ad b2c帐户: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?p=B2C_1_B2CSignIn&client_id={client_id}&nonce=defaultNonce&redirect_uri={redirect_uri}&scope=openid offline_access&response_type=code

我正在使用以下URL尝试登录我的azure ad b2c帐户:

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?p=B2C_1_B2CSignIn&client_id={client_id}&nonce=defaultNonce&redirect_uri={redirect_uri}&scope=openid offline_access&response_type=code+id_token&prompt=login

当我运行它时,我在响应中得到一个id_标记,当我将其转换为json文件时,我注意到没有oid值。这是一个新的azure ad b2c目录,我有一个旧的目录,它在响应中为我提供了oid,因此我必须在某处缺少设置,但无法找到它。

添加内置策略时,必须在“选择应用程序声明”面板中选择“用户的对象ID”声明

默认情况下,登录用户的对象标识符作为身份令牌中的
sub
(主题)和
oid
(对象标识符)声明发出,如下所示:

{
  "exp": 1520933155,
  "nbf": 1520929555,
  "ver": "1.0",
  "iss": "https://login.microsoftonline.com/{tenantId}/v2.0/",
  "sub": "{userObjectId}",
  "aud": "{applicationClientId}",
  "nonce": "defaultNonce",
  "iat": 1520929555,
  "auth_time": 1520929555,
  "oid": "{userObjectId}",
  "tfp": "{policyName}"
}

添加内置策略时,必须在“选择应用程序声明”面板中选择“用户对象ID”声明

默认情况下,登录用户的对象标识符作为身份令牌中的
sub
(主题)和
oid
(对象标识符)声明发出,如下所示:

{
  "exp": 1520933155,
  "nbf": 1520929555,
  "ver": "1.0",
  "iss": "https://login.microsoftonline.com/{tenantId}/v2.0/",
  "sub": "{userObjectId}",
  "aud": "{applicationClientId}",
  "nonce": "defaultNonce",
  "iat": 1520929555,
  "auth_time": 1520929555,
  "oid": "{userObjectId}",
  "tfp": "{policyName}"
}

在内置策略的“应用程序声明”设置中,您是否选择了“用户的对象ID”声明?@chrispadget很好,我添加了用户的对象ID,但令人惊讶的是,这并没有解决问题……啊,奇怪的是,它刚刚开始工作(根据您的第一个建议),不确定为什么需要一段时间才能成为传播问题?无论哪种方式,都可以将其作为答案发布,我会将其标记为正确答案:)策略会被缓存,因此在您观察最新设置之前可能需要几分钟。在内置策略的“应用程序声明”设置中,您是否选择了“用户的对象ID”声明?@chrispadget good catch,我添加了用户的对象id,但令人惊讶的是,这并没有解决这个问题……奇怪的是,它刚刚开始工作(根据您的第一个建议),不知道为什么需要一段时间才能解决传播问题?无论哪种方式,请随意将其作为答案发布,我会将其标记为正确答案:)策略会被缓存,因此在您观察最新设置之前可能需要几分钟。