我正在 Azure AD B2C 上创建自定义策略以进行注册,因此我需要在用户注册时检查域是否已注册,我正在尝试使用 Azure 功能来执行此操作,但我不知道如何操作为了在此函数中进行身份验证,我不希望将此 azure 函数保持匿名,因为任何人都可以访问并知道公司是否在我的应用程序上注册
有什么想法或有用的文档吗?谢谢!
最佳答案
要了解如何保护 Azure 功能,请参阅 Microsoft docs here 。滚动到页面中的授权级别标题。
- 根据您的情况,您可以将
function
设置为授权级别。您将能够从 azure 门户复制 azure 功能的功能 key 。 - 使用复制的策略 key 值在 Azure AD B2C 中创建策略 key (策略 key 引用 here )。
- 使用策略 key 从自定义策略调用端点。
<TechnicalProfile Id="RestApi-DummyAzureFunctionCall">
<DisplayName>DummyAzureFunctionCall</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">{Settings:FunctionsAppUrl}/api/company?name={companyName}</Item>
<Item Key="AuthenticationType">ApiKeyHeader</Item>
<Item Key="SendClaimsIn">Url</Item>
<Item Key="AllowInsecureAuthInProduction">true</Item>
</Metadata>
<CryptographicKeys>
<Key Id="x-functions-key" StorageReferenceId="{Settings:FunctionsAppApiKeyName}" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="comapanyName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isRegistered" />
</OutputClaims>
</TechnicalProfile>
- 将
{Settings:FunctionsAppApiKeyName}
替换为 Azure AD B2C 中的策略 key 名称。
关于c# - 在 API 上以 AD B2C 匿名身份进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74366007/