获取自定义策略
问题描述:
喜在Azure AD B2C应用的客户端ID自定义策略被称为与B2C应用获取自定义策略
我如何可以访问此策略中的客户端ID,我认为这将被硬编码到CLIENT_ID要求,但我不认为这是
它才会返回默认为AUD要求,但我又没有看到,在定制策略
感谢
答
好了一点工作的周围,但我试图用一个标准的UserJourneyContextProvider技术简介,这没有工作
因此要获得客户端ID作为要求我做了以下
创建编制步骤
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange
Id="ClientIdFromOIDC-JC"
TechnicalProfileReferenceId="Get-ClientID-FromOIDC"/>
</ClaimsExchanges>
</OrchestrationStep>
然后创建一个RESTful技术简介这将调用一个函数应用程序传递OIDC与{OIDC:客户端ID}
<TechnicalProfile Id="Get-ClientID-FromOIDC">
<DisplayName>Get-ClientID-FromOIDC</DisplayName>
<Protocol Name="Proprietary"
Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="AuthenticationType">None</Item>
<Item Key="ServiceUrl">--FUNCTION APP URL--</Item>
<Item Key="SendClaimsIn">QueryString</Item>
</Metadata>
<InputClaims>
<InputClaim
ClaimTypeReferenceId="client_id"
PartnerClaimType="client_id"
DefaultValue="{OIDC:ClientId}" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="client_id" />
</OutputClaims>
</TechnicalProfile>
然后最后创建一个函数应用程序,它接受查询字符串中的客户端ID,并以正确的格式返回它,以便B2C识别使用System.Net的
; using System.Net.Http.Formatting;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
// parse query parameter
string client_id = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "client_id", true) == 0)
.Value;
return req.CreateResponse<ResponseContent>(
HttpStatusCode.OK, new ResponseContent
{
version = "1.0.0",
status = (int) HttpStatusCode.OK,
client_id = client_id
},
new JsonMediaTypeFormatter(), "application/json");
}
class ResponseContent {
public string version;
public int status;
public string client_id;
}
现在,您将得到B2C应用CLIENT_ID作为索赔袋索赔,所以你可以做你现在想要做什么用
哎看起来你可以使用{OIDC:客户端Id}抢要求到输入索赔,需要调查更多,如果我可以坚持这个说法 任何人都知道其他{存在变量}或我可以找到一个完整列表 – user1197563