我正在寻找一种方式,为天青AD B2C无头的方式来验证通过的用户名/密码的用户。 Azure的AD B2C是伟大的,但我们觉得对重定向可以登录客户中引起混乱(有时甚至被一些浏览器阻止)。 同时,我们也希望在客户体验UX完全控制。
我已经研究ADAL和图形API,但没有发现任何东西。
吉娜
我正在寻找一种方式,为天青AD B2C无头的方式来验证通过的用户名/密码的用户。 Azure的AD B2C是伟大的,但我们觉得对重定向可以登录客户中引起混乱(有时甚至被一些浏览器阻止)。 同时,我们也希望在客户体验UX完全控制。
我已经研究ADAL和图形API,但没有发现任何东西。
吉娜
它是目前不可能没有交互式用户当前运行Azure的B2C。 虽然我相信它会在某个时候抵达,目前,你不能创建基于B2C后端应用程序。
按照Azure的Active Directory的B2C预览:限制和约束
守护进程/服务器端应用
包含长时间运行的进程或没有用户的情况下,其操作的应用程序也需要一种方式来访问受保护的资源,如Web的API。 这些应用程序可以验证并获得使用OAuth 2.0用户端凭证流使用应用程序的标识(而不是消费者的委托身份)令牌。 这种流动是不是在Azure的AD B2C预览尚未公布- 这是说,应用程序可以发生一个互动的消费者登录流程后,只得到令牌。
如前所述在这里 ,你可以使用Azure的AD应用程序的客户机凭证流的服务帐户。 这是不是最佳的,但它的工作原理。
注意 :确保您的B2C租客下创建Azure的AD应用程序。
代码段从C#获得访问令牌
using (var httpClient = new HttpClient())
{
httpClient.BaseAddress = new Uri("https://login.microsoftonline.com");
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("grant_type", "client_credentials")
, new KeyValuePair<string, string>("client_id", "[service account app id e.g. 10d635e5-7615-472f-8200-a81d5c87c0ca")
, new KeyValuePair<string, string>("client_secret", "[client secret defined in the service account e.g. 5L2ZJOBK8GI1wRSgGFooHcBkAOUOj65lQd9DgJxQOrw=]")
, new KeyValuePair<string, string>("scope", "[App ID URI of the web api azure ad app]/.default e.g. https://my-b2c-tenant.onmicrosoft.com/my-azure-ad-ap/.default")
});
var requestResult = await httpClient.PostAsync("/[your b2c tenant].onmicrosoft.com/oauth2/v2.0/token", content);
var contentResult = await requestResult.Content.ReadAsStringAsync();
var json = JObject.Parse(contentResult);
var accessToken = (string)json["access_token"];
}
App ID URI
你可能会想定义一些自定义要求(一个或多个)保护Web API。 请参见“应用程序许可”在这里 。
修改在Web API Azure的AD应用程序的应用程序清单
{ "appRoles": [{ "allowedMemberTypes": [ "Application" ], "displayName": "Some display nane", "id": "[create a new guid]", "isEnabled": true, "description": "Allow the application to _____ as itself.", "value": "some-claim" } ] }
授予服务帐户天青AD应用权限定义的自定义应用程序的权限(多个)
授予服务帐户会回来的权限roles
要求:
{
"roles": [
"some-claim"
]
}
请给予好评的用户语音反馈产品,使它更容易些:)
如果你想要的是无头的认证,你为什么不干脆单独使用Azure的广告? 它有一个API。 如果你打算创建和管理所有的UI自己,为什么你会想要或需要AD B2C?
Azure的AD B2C不能提供无头的认证,但是结合定制旅程
虚荣域和定制的造型及其用户能够永远不会离开你的网站
你所寻找的是在蔚蓝的AD B2C OWIN的资源所有者密码凭据 。 你可以参考https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/13817784-add-support-for-resource-owner-password-credential并给予好评 ,为了落实这项功能
仍然处于预览(如2018年1月),但可能是你在找什么,如果你正在使用Azure的功能。 看看微软图表绑定Azure的功能