天道酬勤,学无止境

Adding users to Exchange admin role groups via API?

问题

是否可以通过 API 将用户/成员添加到 Exchange 管理员角色组? 等效的 PowerShell cmdlet 是Add-RoleGroupMember ,我希望添加到的特定组是View-only Organization Management

Microsoft Graph 有一个可以添加到目录角色的端点,但是我似乎在租户的 DirectoryRoles 或 DirectoryRoleTemplates 中找不到“仅查看组织管理”组,因此我怀疑 MS Graph 无法访问这些 Exchange 角色团体。 对 Outlook API 的探索也没有以用户/成员函数的形式显示太多。

通过进一步探索添加的额外信息

我运行了这个 PowerShell cmdlet:

Add-RoleGroupMember -identity“仅查看组织管理”-member“user@domain.onmicrosoft.com”

然后跑:

Get-RoleGroupMember -identity "仅查看组织管理"

确认用户实际上已添加到其中。 然后我运行了以下 MS Graph 调用:

获取 https://graph.microsoft.com/v1.0/users/user@domain.onmicrosoft.com/memberOf

它返回了 zip:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
  "value": []
}

所以看起来这个特定的仅查看组织管理角色组无法通过 MS Graph 访问? 是否有任何其他 API 可以让我添加到此角色组?

回答1

因此 https://graph.microsoft.com/v1.0/directoryRoleTemplates 列出了您可以设置的可用的开箱即用“目录”角色。 我将 Directory 放在引号中,因为这些角色确实包括 Exchange、SharePoint 和 Skype 服务管理员(以及其他角色)。 这里要注意的是,从一开始就只有“隐式”用户角色和公司管理员角色可用。 如果您希望其他人出现并使用它们,则需要启用/激活它们。 此处对此进行了描述:https://graph.microsoft.io/en-us/docs/api-reference/v1.0/resources/directoryrole。 激活“Exchange 服务管理员”角色后,您应该能够使用 https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/ 将用户分配给该角色目录role_post_members。

如果您希望使用 Azure AD PowerShell,也可以使用此功能。 您可以在此处找到有关 V2 Azure AD PowerShell 的信息 https://docs.microsoft.com/en-us/powershell/azuread/v2/azureactivedirectory。 在搜索类型“DirectoryRole”中,您将找到所有 DirectoryRole cmdlet。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Adding users to Exchange admin role groups via API?
    Is it possible to add users/members to Exchange admin role groups via an API? The equivalent PowerShell cmdlet would be Add-RoleGroupMember and the specific group I wish to add to is View-only Organization Management. Microsoft Graph has an endpoint to add to directory roles, however I can't seem to find a "View-only Organization Management" group listed in my tenant's DirectoryRoles or DirectoryRoleTemplates, so I suspect MS Graph hasn't got access to these Exchange role groups. Poking around the Outlook API has not revealed much in the form of user/member functions either. Extra info added
  • 在Azure Active Directory B2C中按组授权(Authorize By Group in Azure Active Directory B2C)
    问题 我试图弄清楚如何授权使用Azure Active Directory B2C中的组。 我可以通过用户授权,例如: [Authorize(Users="Bill")] 但是,这不是很有效,我看到的用例很少。 另一种解决方案是通过角色授权。 但是由于某种原因,这似乎不起作用。 例如,如果我给用户提供角色“ Global Admin”,则不起作用,请尝试: [Authorize(Roles="Global Admin")] 有没有一种通过组或角色进行授权的方法? 回答1 这将起作用,但是您必须在身份验证逻辑中编写几行代码才能实现所需的功能。 首先,您必须区分Azure AD(B2C)中的Roles和Groups 。 User Role非常具体,并且仅在Azure AD(B2C)本身内有效。 角色定义用户在Azure AD中具有的权限。 Group (或“ Security Group )定义用户组成员身份,可以向外部应用程序公开。 外部应用程序可以在安全组的顶部对基于角色的访问控制进行建模。 是的,我知道这听起来有点令人困惑,但这就是事实。 因此,第一步是在Azure AD B2C中对Groups进行建模-您必须创建组并将用户手动分配给这些组。 您可以在Azure门户(https://portal.azure.com/)中进行以下操作: 然后,回到您的应用程序
  • The "realmRoles" parameter is ignored when adding a user via the Keycloak API
    I am trying to create a user via the Keycloak API, and I would like to assign a realm-level role to them when they are first added. However, it doesn't seem to work like the documentation says it should. I know that I could simply make a second add-role-to-user API request after the initial create-user one, but: The documentation indicates that I shouldn't need to do this. The second API request could fail, leaving the user in an "incomplete" state. It would make the code I'm writing more complex than it needs to be. To test this in irb, using the keycloak Ruby gem, I first request an access
  • Adding invited (guest) user to teams seems to not work properly
    Hi (ref issue) After setting up the tenant to allow invitation of user from another domain, we are able to invite external users (in set domain) to teams. This works fine when doing it manually, in the GUI. However, when trying to add an invited user threw the windows graph API, something is not working properly. Our procedure to invite a user to a team is as follows: Note we are using application privileges Invite the user to the tenant (with or without welcome mail) https://docs.microsoft.com/en-us/graph/api/invitation-post?view=graph-rest-1.0 Add the invited user to the team https://docs
  • 尝试通过 API 将成员添加到 Google 群组时出现“缺少必填字段:成员”(Getting 'Missing required field: member' when trying to add a member to a google group via API)
    问题 尝试使用 Google 管理目录 API 来读取 google 群组(组织)的成员 - 它工作正常。 当我尝试添加成员时,我得到: { errors: [ { domain: 'global', reason: 'required', message: 'Missing required field: member' } ], code: 400, message: 'Missing required field: member' } 我在谷歌上搜索了错误,发现了这样的问题,这个问题以及其他一些无用的结果。 我检查过,它绝对不是缺少范围或权限。 #!/usr/bin/python import httplib2 import json from oauth2client.client import SignedJwtAssertionCredentials from urllib import urlencode def get_group_members(group): url = 'https://www.googleapis.com/admin/directory/v1/groups/{}/members'.format(group['email']) return call_google_api("GET", url) def add_group_member
  • Keycloak 访问模拟 API(Keycloak access impersonate API)
    问题 我们开始使用 keycloak 3.4.3,我们需要在我们的应用程序中引入一个模拟功能。 我们发现 keycloak 有一个模拟 api,不幸的是它没有返回用户的令牌,而是一个重定向链接,用户可以“选择”他自己的客户端。 我们在这里找到 https://blog.softwaremill.com/who-am-i-keycloak-impersonation-api-bfe7acaf051a 一种(在 Scala 中)检索新令牌的方法(仅适用于 keycloak 3.4+): private def exchangeToken(token: String, userId: String): Future[TokenResponse] = { import io.circe.generic.auto._ sttp .post(uri"${config.authServerUrl}/realms/${config.realm}/protocol/openid-connect/token") .body( "grant_type" -> "urn:ietf:params:oauth:grant-type:token-exchange", "client_id" -> config.clientId, "requested_subject" -> userId, "subject
  • 将受邀(来宾)用户添加到团队似乎无法正常工作(Adding invited (guest) user to teams seems to not work properly)
    问题 嗨(参考问题) 在设置租户以允许从另一个域邀请用户后,我们可以邀请外部用户(在设置域中)加入团队。 在 GUI 中手动执行此操作时效果很好。 但是,当尝试添加受邀用户时抛出了 windows 图形 API,某些功能无法正常工作。 我们邀请用户加入团队的过程如下: 注意我们使用的是应用程序权限 邀请用户加入租户(有或没有欢迎邮件) https://docs.microsoft.com/en-us/graph/api/invitation-post?view=graph-rest-1.0 将受邀用户添加到团队 https://docs.microsoft.com/en-us/graph/api/group-post-members?view=graph-rest-1.0 这两个调用都成功完成并且不返回任何错误消息。 在所有管理 GUI(AAD、Teams、Exchange)中,用户被邀请并被添加到组中。 但是有问题的用户没有收到他/她已被添加到团队的欢迎邮件。 如果用户(假设我们在步骤 1 中发送了欢迎邮件)尝试访问 http://teams.microsoft.com,则用户会收到通知,告知他/她没有权限和/或看不到团队。 有小费吗? API权限 编辑:经过一些调查,通过监控网络流量。 似乎缺少的电话,要正确地邀请到团队是: POST https://api.teams
  • Azure REST API:如何获取 SQL Server 用户/管理员(Azure REST API: How to get SQL Server users/admin)
    问题 在 Azure 门户中,导航到 SQL Server 时,我可以查看/编辑它的用户和 AD 管理员。 有没有办法通过 API 获取/列出 SQL Server 的所有用户和管理员? 通过 Azure API 参考我找不到任何这样的 API。 编辑:通过 SQL 用户我的意思是通过以下方式设置的用户:通过 AD Admin 我的意思是通过以下方式设置的用户: 回答1 用户:通过 powershell 或通过 REST - 请参阅“列出特定范围内的角色分配” AD 管理员:通过 powershell - 请参阅“使用 PowerShell 为 Azure SQL Server 配置 Azure AD 管理员”。 似乎有一个参考表明有意通过 REST API 公开它,但文档中似乎缺少它。 让我看看我们能做些什么。 编辑:列出特定 SQL 服务器的所有角色分配的 powershell 命令将是: Get-AzureRmRoleAssignment -ResourceGroupName <your resource group name> -ResourceType Microsoft.Sql/servers -ResourceName <your server name> -IncludeClassicAdministrators 使用 REST 命令可以使用类似的方法。
  • User.IsInRole("fake group") results in "The trust relationship between the primary domain and the trusted domain failed"
    I have an MVC 3 app, using Windows Authentication with Claims using WIF 4.5. Access to the application is controlled (currently) via membership in an AD group: <deny users="?" /> <allow roles="domain\somegroup" /> <deny users="*" /> In addition to the AD groups, we have custom roles that need to be added. (This app is being converted from Forms to Windows authentication) To support these custom roles (until they are managed in AD), we are adding them as ClaimTypes.GroupSid claims to the user, so that existing code utilizing [Authorize("ADMIN")] and User.IsInRole("ADMIN") continues to function
  • 在 wso2 APIM 中以编程方式添加范围(adding scopes programmatically in wso2 APIM)
    问题 我可以在 WSO2 APIM 中以编程方式创建作用域吗? 我有一个要求,用户可以通过 UI 创建新角色并将一些权限与新角色关联。用户不会使用 WSO2 Web 界面; 相反,他将使用内部 Web 应用程序为此,我必须以编程方式创建范围并将 API 与其关联。 还手动将范围映射到角色。 如何以编程方式通过 WSO2 APIM 创建范围? 以编程方式使用范围可能进行的所有操作是什么? 如果不可能,我如何通过 WSO2 处理此类要求? 回答1 您可以为此使用发布者 REST API。 首先,您需要获取 API 的 swagger 定义。 curl -k -H "Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8" https://127.0.0.1:9443/api/am/publisher/v0.10/apis/890a4f4d-09eb-4877-a323-57f6ce2ed79b/swagger 你会得到的招摇会是这样的。 { "swagger":"2.0", "paths":{ "/menu":{ "get":{ "x-auth-type":"Application & Application User", "x-throttling-tier":"Unlimited", "description"
  • kubernetes-RBAC、dashboard-12
    资源请求属性 Kubernetes是基于http或https协议工作的(restful风格),因此其对应的操作请求,无非就是增删改查(get、put、delete),因此在每一个Kubernetes的相关请求当中,通常这个请求会包含类似以下的信息; 理论来源 user: 用户名称; group: 用户所属的组; extra: 额外属性; Resource: 指定使用哪个Kind资源; Subresource: 额外资源的子资源; API: 也就是我们的Kubernetes标准资源属于哪一个API群组下面的那个API; Namespace: 名称空间; Request path: 相对于我们API来讲,就是请求的URL路径; HTTP request verb:HTTP请求方法,GET、DELETE...; API request verb:向Kubernetes API的请求方法,比如get、list、create、update、patch、watch、proxy、redirect、delete以及deletecollection; 授权插件 Node:节点认证,根据Pod对象调度的结果为Node进行授权,Node会自动授权Pod的相关定义的访问权限;ABAC:基于属性的访问控制,RBAC之前的算法,1.6之前的版本使用;RBAC:Role-based AC, 基于角色的访问控制
  • ambari hive创建udf失败问题解决
    问题描述: Amabri 2.7.4 hive 3.1.0 hive Authorization用了默认 ,试过sqlstdauth也报错 hive执行添加udf命令报错 Error: Error while compiling statement:FAILED: HiveAccessControlException Permission denied: Principal [name=root,type=USER] does not have following privileges for operation ...... > add jar /opt/hiveudf-1.0-SNAPSHOT.jar; Error: Error while processing statement: Failed to retrieve roles for root: Metastore Authorization api invocation for remote metastore is disabled in this configuration. Run commands via jdbc/odbc clients via HiveServer2 that is using embedded metastore. (state=,code=1) 可能add jar包成功 但是
  • WSO2 Identity Server-如何将现有角色分配给WSO2 IS用户?(WSO2 Identity Server - How to assign an existing role to a WSO2 IS user?)
    问题 我正在使用WSO2 Identity Server 4.1.0。 我的要求是将现有角色分配给在WSO2默认身份存储中创建的用户。 我尝试了以下方法: 创建一个分配了角色的用户: curl -v -k --user admin:admin --data "{"schemas":[],"name":{"familyName":"FN_atest2","givenName":"LN_atest2"},"userName":"atest2","password":"perf","groups":[{"value":"c83dc72c-15c2-40f2-bddd-4acb086b9e17","display":"Employee"}]}" --header "Content-Type:application/json" `https://localhost:9443/wso2/scim/Users` 创建用户后更新用户: curl -v -k --user admin:admin -X PUT --data "{"schemas":[],"name":{"familyName":"FN_atest2","givenName":"LN_atest2"},"userName":"atest2","password":"perf","groups":[{"value":"c83dc72c
  • grails spring 安全角色和组(grails spring security role and group)
    问题 我已将我的 spring 安全配置为与组一起工作。 我使用这个 scipt 创建域类: grails s2-quickstart com.yourapp User Role --groupClassName=RoleGroup 我假设一个用户可以有很多组,其中一个组可以有很多角色 这是 User 类中生成的方法的样子: Set<RoleGroup> getAuthorities() { UserRoleGroup.findAllByUser(this).collect { it.roleGroup } } 但是现在我看到脚本还创建了一个名为 UserRole 的类,它是用户和角色之间的关联。 那么一个用户也可以直接拥有许多角色吗? 我试过了,它保存在数据库中。 我修改了这样的方法: def getAuthorities() { def authorities = UserRoleGroup.findAllByUser(this).collect { it.roleGroup } authorities.addAll(UserRole.findAllByUser(this).collect { it.role }) return authorities } 现在,当我在 User <--> Role 关联中的数据库中创建一个条目时。 我不能再登录了。 我收到 spring
  • 多站点中的 ASP.NET 身份用户和角色 [关闭](ASP.NET Identity User and Roles in Multisite [closed])
    问题 关闭。 这个问题需要更加集中。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑这篇文章来关注一个问题。 4年前关闭。 改进这个问题 我正在尝试在 ASP.NET MVC 应用程序中创建权限系统。 我一直在学习最新的 Identity 框架——这是我的要求: 每组功能的一组分层角色。 因此,例如,可能有以下角色: 继承读者编辑经理行政人员对于每个模块(例如事件、页面等),每个用户都将拥有这些角色之一。 用户可以是安全组的成员。 每个安全组都可以直接分配一个角色,然后该组中的所有用户(尚未明确分配该权限)将继承该角色。 多租户站点:每个用户都有一组他们所属的站点。 在每个站点的上下文中,他们拥有一组可由站点管理员分配的完整权限。 通过扩展 ASP.NET Identity,我有可能完成所有这些吗? 或者我应该从头开始构建一些自定义的东西? 回答1 10,000 次实施您自己的身份验证系统中有 9,999 次是错误的做法。 任何事情都比这更容易,而正确地做事情却是一件看似困难的事情。 ASP.NET Identity 实际上是非常可定制的,因为它是专门为此目的而创建的。 您可能需要做很多事情来完全引导您的自定义需求,但几乎可以肯定的是,使用 ASP.NET Identity 会更快、更安全。 更新 UserManager的构造函数采用IUserStore的实现。
  • 使用Postman访问OAuth 2.0 Google API(Using Postman to access OAuth 2.0 Google APIs)
    问题 我正在尝试使用Postman Chrome应用访问Proximity Google API。 我已经按照邮递员和Google开发人员网站上的教程进行操作,但仍然收到401错误消息。 我在做什么? 第1步-启用接近API: 为了使用Proximity API,必须首先在Google Dev控制台中启用它。 使用本教程,我为我的项目启用了对Proximity API的支持 第2步-获取凭据: 根据本教程,我需要获取客户端ID和密码。 这就是我感到困惑的地方。 凭据->添加凭据-> OAuth2.0客户端ID->选择Chrome应用单选按钮(因为我使用的是Postman)->输入Postman的Chrome Web商店URL的最后一部分[fhbjgbiflinjbdggehcddcbbddddop]->点​​击创建按钮这些步骤将只生成一个客户ID,而不是一个秘密。.我做错什么了吗? 从Google Dev控制台,可以下载一个具有客户端ID,身份验证URI和令牌URI的JSON文件。 我下载了此文件,但是如果我使用的是Postman,则无济于事。 我猜这个JSON文件可以包含在JS应用程序中。 第3步-使用Postman测试API 我得到什么? 而且,一旦我点击了调试网址,就会看到以下屏幕 回答1 邮递员将查询模拟Web应用程序的Google API 生成一个OAuth 2.0令牌:
  • Kubernetes进阶篇 —— 访问控制
    Kubernetes访问控制 kubernetes API 访问控制 Authentication(认证) 认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再进行其它方式的认证。通常启用 X509 Client Certs 和 Service Accout Tokens 两种认证方式Kubernetes集群有两类用户:由Kubernetes管理的Service Accounts (服务账户)和(Users Accounts) 普通账户。k8s中账号的概念不是我们理解的账号,它并不真的存在,它只是形式上存在 Authorization(授权) 必须经过认证阶段,才到授权请求,根据所有授权策略匹配请求资源属性,决定允许或拒绝请求。授权方式现共有6种,AlwaysDeny、AlwaysAllow、ABAC、RBAC、Webhook、Node。默认集群强制开启RBAC Admission Control(准入控制) 用于拦截请求的一种方式,运行在认证、授权之后,是权限认证链上的最后一环,对请求API资源对象进行修改和校验 访问k8s的API Server的客户端主要分为两类 kubectl:用户家目录中的 .kube/config 里面保存了客户端访问 API Server 的密钥相关信息,这样当用kubectl访问k8s时,它就会自动读取该配置文件,向API
  • 更新 Office365 个人联系人(Update Office365 personal Contacts)
    问题 上下文: 我们公司有12名协调员。 每个协调员管理一堆个人联系人。 Coordinator1 管理着 409 个个人联系人。 Coordinator2 管理着 216 个个人联系人。 等等... 我们有一个夜间任务,用于填充保存个人联系信息的 SQL Server TABLE 。 TABLE的数据被提取到 12 个不同的CSV files ,这些CSV files依次发送给每个协调器。 协调有责任导入该CSV file ,以保持他个人的联系人名单上最新的(是的,那些个人联系人每天都在变化)为他的观点。 对于大多数这些协调员来说,整个 CSV 文件的导入有点太多了,目标是自动执行此操作或具有同步 Outlook 个人联系人的功能,以便这些协调员不必执行这项日常手动任务。 我试过的: 我创建了一个 C# 控制台应用程序,并添加了 ADAL 和 Microsoft Graph 客户端库 NuGet 包。 我已经在 Azure 中正确注册了我的应用程序并获得了Client Id和Client Secret 。 我已经设置了适当的Application and Delegated permissions 。 我能够运行应用程序、获取token并调用 Microsoft Graph 客户端。 问题: 在撰写本文时,我的问题是 Microsoft Graph 不支持创建Contact
  • K8s存储------(五)访问控制(认证、授权(RBAC)、准入控制)
    K8s--------访问控制 1 kubernetes API 访问控制2 私有仓库的认证2.1 创建serviceaccount2.2 添加secrets到serviceaccount中2.3 绑定serviceaccount和pod 3 创建UserAccount4 RBAC-基于角色的访问控制4.1 RBAC的基本概念4.2 RBAC的工作原理4.3 实验示例 5 服务账户的自动化 1 kubernetes API 访问控制 (1)Authentication(认证) 认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再进行其它方式的认证。通常启用X509 Client Certs和Service Accout Tokens两种认证方式Kubernetes集群有两类用户:由Kubernetes管理的Service Accounts (服务账户)和(Users Accounts)普通账户。k8s中账号的概念不是我们理解的账号,它并不真的存在,它只是形式上存在 (2)Authorization(授权) 必须经过认证阶段,才到授权请求,根据所有授权策略匹配请求资源属性,决定允许或拒绝请求。授权方式现共有6种,AlwaysDeny、AlwaysAllow、ABAC、RBAC、Webhook、Node。默认集群强制开启RBAC (3)Admission
  • ASP.NET MVC4 安全、身份验证和授权(ASP.NET MVC4 Security, Authentication, and Authorization)
    问题