gpt4 book ai didi

azure - 使用电子邮件搜索现有用户时,AAD 请求 https ://graph. windows.net 方法 GET 因为请求正文格式错误

转载 作者:行者123 更新时间:2023-12-02 23:11:56 27 4
gpt4 key购买 nike

我已经在使用 B2C 自定义策略来让员工使用外部 IdP 登录,现在我想使用我组织的 Azure 企业 AD 应用作为 IdP。所有员工均已使用外部 IdP 进行注册,但外部 IdP 订阅即将到期,因此我需要将他们移至组织的 Azure AD IdP。

当注册用户使用相同电子邮件 ID 使用 Azure 企业 AD 应用登录时,它应该根据电子邮件查找现有用户,并将现有用户的 objectId 与新的 Azure IdP 关联。它不应为新 IdP 的同一电子邮件用户创建新的 ObjectId。

就我而言,它正在为不同的策略创建新的 objectId,并且我不希望为不同的 IdP 创建新的 objectId,因为这样它会由于新的对象 Id 而在数据库中复制用户,相反我想要相同的对象 Id,你可以吗请提供如何实现这一目标的信息?

我关注了this更新我的政策时 - 链接用户旅程

 <TechnicalProfile Id="AAD-UserReadUsingEmailId-Link">
<Metadata>
<Item Key="Operation">Read</Item>
<Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmailFromADAccount" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" Required="true" />
</InputClaims>
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="displayName" PartnerClaimType="displayName" />
<PersistedClaim ClaimTypeReferenceId="objectId" />
<PersistedClaim ClaimTypeReferenceId="otherMails" />

<PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
</PersistedClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<!-- Optional claims -->
<OutputClaim ClaimTypeReferenceId="userPrincipalName" />
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="otherMails" />
</OutputClaims>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

但是当我使用电子邮件搜索时,我在应用程序洞察日志中收到以下错误:

"Statebag": {
"PROT": {
"c": "2021-07-13T08:10:25.3600788Z",
"k": "PROT",
"v": "AAD Request to https://graph.windows.net/494db189-1a11-4de4-a4d0-7ba7003b4fbd/users?api-version=1.6-integrationOnly&%24filter=logonIdentifiers%2fany(x%3ax%2fvalue+eq+%27Prashant.Kumar%40gmail.com%27) using method GET as request body is malformed.\r\nResponse: \n{\"odata.metadata\":\"https://graph.windows.net/494db189-1a11-4de4-a4d0-7ba7003b4fbd/$metadata#directoryObjects\",\"value\":[]}\r\n",
"p": false
}

为什么它给出格式错误的请求,我在策略文件中做错了什么吗?有什么建议吗?

最佳答案

我在尝试设置帐户链接时遇到了同样的错误。并发现我忘记注册扩展属性“haspassword”。

检查先决条件:https://github.com/azure-ad-b2c/samples/blob/master/policies/auto-account-linking/readme.md#prerequisites

先决条件包含如何定义自定义属性的链接:https://learn.microsoft.com/en-us/azure/active-directory-b2c/user-flow-custom-attributes?pivots=b2c-custom-policy#modify-your-custom-policy-to-add-the-applicationobjectid

简而言之:

  1. 在 AD B2C 租户中创建新的自定义属性
  2. 您的 AD B2C 租户有内置应用“b2c-extensions-app”(您将在应用注册中看到它) - 在“AAD-Common”中使用此应用的“应用程序(客户端)ID”和“对象 ID” ' 技术简介。
<!-- 
<ClaimsProviders> -->
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-Common">
<Metadata>
<!--Insert b2c-extensions-app application ID here, for example: 11111111-1111-1111-1111-111111111111-->
<Item Key="ClientId"></Item>
<!--Insert b2c-extensions-app application ObjectId here, for example: 22222222-2222-2222-2222-222222222222-->
<Item Key="ApplicationObjectId"></Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders> -->

关于azure - 使用电子邮件搜索现有用户时,AAD 请求 https ://graph. windows.net 方法 GET 因为请求正文格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68359491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com