我能够使用 ActiveDirectoryClient 从 Azure Active Directory 获取所有用户。
有没有办法只从 ASP.NET MVC 中的 azure AD 获取启用的用户,或者在检索所有用户后,将它们过滤为启用或禁用?
c# asp.net-mvc azure azure-active-directory azure-ad-graph-api
我正在构建一个SaaS应用程序,该应用程序将使用Azure AD对用户进行身份验证.假设我在同意提示期间要求用户获得1个授权许可,并且用户接受它.
稍后我的应用程序发展并需要获得更多委派权限.在这种情况下,如何使用同意页面重新提示用户?我只想在权限发生变化时才这样做一次.
我是否需要在我的应用中跟踪每个用户同意的权限,然后确定prompt=admin_consent在重定向到auth页面时添加查询参数?
我试图找到一些信息,服务主体创建另一个 AAD 应用程序/服务主体需要哪些应用程序权限,但没有找到最小权限设置。
目前,我为 SP 分配了一些目录角色,例如 Directory Writers,这可能太多了?
有人知道SP 创建另一个 SP 需要哪个应用程序权限吗?还是 SP 需要目录角色?
我正在尝试编写一个脚本,使用Graph API将用户分配到Azure AD应用程序(servicePrincipal).我正在我的沙盒中对此进行测试,我已经定义了应用程序并为其分配了用户.但是,当我查询时servicePrincipal,我在响应中的任何地方都看不到用户.
问题:
根据文档,不应该有appRoleAssignment?
文档说这个字段是只读的,那么你应该如何分配用户?
我是一位经验丰富的Java开发人员(4-5年),但是对Azure AD及其功能不熟悉,因此我对潜在的基本问题表示歉意。我一直在努力寻找任何有关Java中涉及此主题的Microsoft文档或Stack Overflow问题(绝大多数使用C#),据我了解,C#比Java具有更多的Azure AD库,因此C#中的解决方案不一定是Java中的解决方案。 Java。
我正在尝试基于一个场景来完成身份验证POC,在该场景中,我想利用现有Azure Azure AD系统来充实用户,以此作为身份验证点。我的Java应用程序将收集用户的用户名和密码(我理解这是不建议使用的,但不理想,但出于传统原因),然后使用Microsoft adal4j库调用Azure终结点,我可以成功返回JWC访问权限令牌(除了刷新和ID令牌外)。
这是我现有的检索JWC访问令牌的代码段。
private static AuthenticationResult getAccessTokenFromUserCredentials(String username, String password, String
AUTHORITY, String CLIENT_ID) throws Exception {
AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext(AUTHORITY, false, service);
Future<AuthenticationResult> future = context.acquireToken(
"https://graph.windows.net", CLIENT_ID, username, password,
null);
result = future.get();
} finally {
service.shutdown();
}
if (result == null) {
System.out.println("ex)");
}
return result;
}
public void azureAuthenticate(String authority, String clientID, …Run Code Online (Sandbox Code Playgroud) java active-directory azure azure-active-directory azure-ad-graph-api
我创建了一个Azure AD B2C租户,并使用username作为登录方法配置了本地帐户.我创建了一个注册策略,并通过Azure AD B2C注册屏幕进行了注册.在注册屏幕中,我输入了一个电子邮件地址,Azure AD B2C发送了一封电子邮件进行验证.注册成功后,我试图通过Graph API获取已注册用户的详细信息.
用于检索用户详细信息的图谱API URL:
https://graph.windows.net/<tenantid>/users?api-version=1.6
Run Code Online (Sandbox Code Playgroud)
我能够获得新用户的所有其他信息,如用户名,名字,姓氏等......除了用户在电子邮件验证期间输入的电子邮件地址.
如果有任何方法或配置可通过图谱API获取电子邮件地址,请通知我.
我们希望在azure ad b2c目录中查询用户,并以编程方式为所有类型的用户提取登录电子邮件.我们理解为:
使用azure广告图表资源管理器运行api调用时:
https://graph.windows.net/myorganization/users?api-version=1.6
Run Code Online (Sandbox Code Playgroud)
我们可以看到所有这些用户.(数据有点消毒)
示例标准用户
{
"odata.type": "Microsoft.DirectoryServices.User",
"objectType": "User",
"objectId": "8b7c468b-fec4-4ff2-b448-64f99f3fa9ff",
"deletionTimestamp": null,
"accountEnabled": true,
"assignedLicenses": [],
"assignedPlans": [],
"city": null,
"companyName": null,
"country": null,
"creationType": null,
"department": null,
"dirSyncEnabled": null,
"displayName": "Global User",
"employeeId": null,
"facsimileTelephoneNumber": null,
"givenName": null,
"immutableId": null,
"isCompromised": null,
"jobTitle": null,
"lastDirSyncTime": null,
"mail": null,
"mailNickname": "global.user",
"mobile": null,
"onPremisesDistinguishedName": null,
"onPremisesSecurityIdentifier": null,
"otherMails": [],
"passwordPolicies": null,
"passwordProfile": null,
"physicalDeliveryOfficeName": null,
"postalCode": null,
"preferredLanguage": null,
"provisionedPlans": [],
"provisioningErrors": …Run Code Online (Sandbox Code Playgroud) 此处显示的代码是我尝试在 ASP.NET Core 2.0 中针对我的 Azure AD 租户执行身份验证。
有趣的部分是我收到身份验证代码后的下一组目标。
我想将经过身份验证的用户的 AD 组放入声明中,并将它们传递给我的基于策略的授权注册。
为了实现这一点,我交换了访问令牌的授权代码。
获得访问令牌后,我使用 Microsoft Graph SDK 来检索经过身份验证的用户的 AD 组。
问题 1:我见过访问令牌存储在缓存中的示例IDistributedCache。为什么这很重要,不执行此步骤有什么风险,究竟是AdalDistributedTokenCache什么?
例如
var cache = new AdalDistributedTokenCache(distributedCache, userId);
var authContext = new AuthenticationContext(ctx.Options.Authority, cache);
Run Code Online (Sandbox Code Playgroud)
我发现访问令牌总是通过
string accessToken = await HttpContext.GetTokenAsync("access_token");
Run Code Online (Sandbox Code Playgroud)
问题 2:检索组后,如果我将这些作为声明添加到 Principal 中,那么我是否可以使用它们来驱动此处所述的授权策略?
问题 3:访问令牌和 id 令牌以及我添加的声明最终会出现在 cookie 中吗?
问题 4:如何强制 Azure AD 将 AD 角色作为声明返回(而不是组,因为我可以通过 Graph 获取这些角色)而不必更改某种清单?
完整代码
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme …Run Code Online (Sandbox Code Playgroud) asp.net-identity azure-active-directory openid-connect azure-ad-graph-api asp.net-core
你能帮我在Azure AD B2C中使用node js client创建一个用户吗?
在该请求中,我需要填充"signInNames"和我在B2c中为我的应用程序创建的自定义用户属性.
如果您共享样本请求,我们非常感谢.
我正在通过以下示例:
https://azure.microsoft.com/resources/samples/active-directory-dotnet-webapp-groupclaims/
若要运行该示例,我需要对Microsoft Graph具有Directory.Read.All权限:
为您的应用程序配置权限。在这种情况下,在“设置”菜单中,选择“所需权限”部分,然后单击“添加”,然后选择“ API”,然后在文本框中键入Microsoft Graph。然后,单击“选择权限”,然后选择 Directory.Read.All。
Directory.Read.All需要Azure AD管理员同意。
我的Azure AD应用程序没有Web用户界面。
如何让我们的Azure AD管理员在不花费太多时间的情况下提供同意?
我们的Azure AD管理员是繁忙且昂贵的资源。需要花费很多时间来预定他的时间,我希望我能在参与他之前进行同意过程。