Azure 登录时未获得oid响应?
我正在使用以下URL尝试登录我的azure ad b2c帐户: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
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,但令人惊讶的是,这并没有解决这个问题……奇怪的是,它刚刚开始工作(根据您的第一个建议),不知道为什么需要一段时间才能解决传播问题?无论哪种方式,请随意将其作为答案发布,我会将其标记为正确答案:)策略会被缓存,因此在您观察最新设置之前可能需要几分钟。