首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure OAuth2代码流-没有组在访问令牌中声明(也没有“hasgroup”)

Azure OAuth2代码流-没有组在访问令牌中声明(也没有“hasgroup”)
EN

Stack Overflow用户
提问于 2020-01-09 08:19:01
回答 1查看 955关注 0票数 0

我正在使用OAuth2代码流,并试图将用户的组返回到我的访问令牌中。我读到的每一篇文章都说,我应该看到一个团体的主张,或者是一个群体的主张,但我都没有看到。

我修改了我的客户端应用程序的App注册清单中的以下字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [
            {
                "name": "groups",
                "source": null,
                "essential": false,
                "additionalProperties": [
                    "dns_domain_and_sam_account_name"
                ]
            }
        ],
        "saml2Token": []
    },

下面是我的登录重定向url (login.microsoftonline.com)查询字符串的一个例子.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client_id=<clientId>
&response_type=code
&redirect_uri=<redirectUri>
&response_mode=query
&scope=<appScope>%20offline_access
&state=67890

下面是一个使用(login.microsoftonline.com/{tenantId}/oauth2/v2.0/token)请求令牌的查询字符串示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client_id=<clientId>
&scope=<uriEncodedScopes>%20offline_access
&redirect_uri=<uriEncodedRedirectUri>
&code=<authCode>
&client_secret=<uriEncodedClientSecret>
&grant_type=authorization_code

一切都很好,但我不知道如何在我的标记中得到组的信息。

更新

我在两个urls中都将%20 20openid添加到我的作用域,现在我得到了一个id_token,但是我仍然没有看到“group”或“hasgroup”这两个标记。

更新

我只是将相同的清单更改(groupMembership,optionalClaims)添加到我的API注册中(而不是我的客户端)--公开范围的API,我没有看到任何变化。访问令牌和Id令牌根本没有对组的引用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-09 22:04:11

根据我的测试,它应该能用。您只需在App注册中配置groupMembershipClaimsoptionalClaims,请参阅下面的原因

您可以参考下面的测试示例,我尝试使用工作帐户或个人帐户,两者都是工作。

请求授权代码( api://3e013fde-xxxxxxa422f3/User.Test是我的API权限):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?
client_id=xxxxxxxxxxxxxxx
&response_type=code
&redirect_uri=https://localhost
&response_mode=query
&scope=openid offline_access api://3e013fde-xxxxxxa422f3/User.Test
&state=12345

请求令牌:

https://jwt.io/中解码令牌,将包含groups声明。

注:

我的客户端应用程序和API都是今天创建的,我想在old App Registration(it is not existing in the portal currently)app registration portal(it has been moved to the new App Registrations)new App Registration(the应用程序注册in portal currently)中创建的应用程序可能有一些不同。

从这个文档

在我的测试中还有一件奇怪的事情,当我创建一个新的API应用程序注册时,只需设置"groupMembershipClaims": "SecurityGroup"而不设置optionalClaims,清单将如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [],
        "saml2Token": []
    }

然后Access token将不包括groupsID tokengroups

如果我用你的设置它,Access token就会拥有groups

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [
            {
                "name": "groups",
                "source": null,
                "essential": false,
                "additionalProperties": [
                    "dns_domain_and_sam_account_name"
                ]
            }
        ],
        "saml2Token": []
    }

但当我把它设置为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"groupMembershipClaims": "SecurityGroup",
"optionalClaims": {
        "idToken": [],
        "accessToken": [],
        "saml2Token": []
    }

Access token仍然拥有groups

从门户- Token configuration (preview)和这个doc-Configure group claims for applications with Azure Active Directory (Public Preview),这个特性应该在预览中,它可能是一个错误(我不确定)。

因此,最后,我建议您使用两个新的应用程序来尝试.。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59668164

复制
相关文章
照片怎样编辑文字_微信编辑文字显示全文
jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件。(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该文字就会出现在一个编辑框中,用户对文字进行修改完成后点击提交按钮,新的文本将发送到服务器上,然后表单消失,显示最新编辑的文本。),你可以通过这个演示页面来亲自体验下。
全栈程序员站长
2022/09/16
5.6K0
JS一些插件收集
2017-10-30更新 Blueimp jquery相册插件 http://blueimp.github.io/Gallery/ bootstrap-markdown bootstrap的markdown插件 http://www.codingdrama.com/bootstrap-markdown/ bootstrap-tagsinput bootstrap的标签添加与删除插件 http://bootstrap-tagsinput.github.io/bootstrap-tagsinput/exa
治电小白菜
2020/08/25
10.3K0
完善lazyload懒加载图片渐显特效
作者:matrix 被围观: 3,367 次 发布时间:2013-09-03 分类:Wordpress 兼容并蓄 | 无评论 »
HHTjim 部落格
2022/09/26
6590
完善lazyload懒加载图片渐显特效
强烈推荐:240多个jQuery插件
概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不
hbbliyong
2018/03/05
2K0
强烈推荐:240多个jQuery插件
一款无需写任何代码,即可一键生成前后端代码的开源工具
JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发。JeecgBoot 采用开发模式:Online Coding 模式-> 代码生成器模式-> 手工 MERGE 智能开发,帮助解决 Java 项目 70% 的重复工作,让开发更多关注业务逻辑。
测试开发社区
2020/10/29
1.6K1
Python 强化训练:第九篇
主题 数据处理 csv文件 json文件 xml: xpath excel 1. CSV: 逗号分隔值,其文件以纯文本形式存储表格数据(数字和文本)。 模块:csv 方法:csv.reader(), csv.writer(), csv.Dictreader(), csv.writerow(), csv.writerows() import csv headers = ['Symbol', 'Price', 'Date', 'Time', 'Change', 'Volume'] rows = [('AA',
谢伟
2018/06/06
4580
jQuery 复制表单 Bug 及修复
当 jQuery 复制表单时,会漏复制 textarea 和 select 的值。更详细的描述见 http://bugs.jquery.com/ticket/3016
前端GoGoGo
2018/08/27
4000
GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!
项目地址:https://github.com/zhangdaiscott/jeecg-boot
Java架构师必看
2021/04/14
2K0
GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!
OceanBase 数据库大赛:一次插入多条数据(草稿)
https://jgithub.com/hnwyllmm/miniob_test/issues/1
早起的鸟儿有虫吃
2021/11/18
1.5K0
OceanBase 数据库大赛:一次插入多条数据(草稿)
网罗收集10046的各种Case,方便trace信息的收集 | Oracle官方博客转载
原文链接:https://blogs.oracle.com/database4cn/10046casetrace
SQLplusDB
2020/08/13
5450
Velocity魔法堂系列一:入门示例
一、前言                             Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力。而且Velocity被移植到不同的平台上,如.Net的NVelocity和js的Velocity.js,虽然各平台在使用和实现上略有差别,但大部分语法和引擎核心的实现是一致的,因此学习成本降低不少哦。   最好的学习资源——官网:http://velocity.apache.org/
^_^肥仔John
2018/01/18
1.1K0
GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!
JeecgBoot 是一款基于代码生成器的低代码开发平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!
乔戈里
2021/03/09
2K0
GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!
原 js页面传值参数打包类
代码:   var PageState = { MakeParams: function (valueState) { var params ={}; var controlState={}; //获取控件中的值 var inputs = document.getElementsByClassName("controlKeep").getElementsByTagName("input"); var selects =
魂祭心
2018/05/17
2.4K0
C编程辅导:ECE222 Vectors And Matrices
In this lab, each student is to write a program that allows the user to manipulate the entries in vector, or in a matrix. The program should keep track of one vector of variable length, and one matrix of exactly 4x4 size. The program should enter a loop, displaying a set of options (given below). Once the user selects an option, the program should display the vector (or matrix, as appropriate) before and after the operation chosen by the user. For example, if the user selects “reverse vector” and the current vector is [-3 0 2 5] then the program should display:
拓端
2022/10/25
2280
SpringMVC接收JSON数组
注意,这里可以直接用@RequestBody注解, 当请求体中是一段json数据时,@RequestBody会解析该json字符串并将其注入指定的自定义类型中。(会自动注入成javabean,太方便了) 通过@RequestBody的方式可以接收以json数据传输的对象,但前提是请求的Content-Type必须为application/json
别团等shy哥发育
2023/02/25
1.5K0
SpringMVC接收JSON数组
Python Xpath解析 数据提取 基本使用
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历,XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
EXI-小洲
2022/12/13
2.2K0
Python Xpath解析 数据提取 基本使用
修改selectToUISlider实现历史影像的对比与显示
2014年12月7日,星期日,天气,晴,是个好日子,闲来无事,将selectToUISlider与Arcgis for JS结合起来,做了一个类似于历史影像对比的东西,共享出来给大家,希望对大家有所帮助。
牛老师讲GIS
2018/10/23
6570
修改selectToUISlider实现历史影像的对比与显示
不确定行数的多行文本垂直水平居中的css
ul li { position:relative; display: table; width:3rem; height:3rem; background:url('image/defaultBg.jpg') 0 0/100% 100% no-repeat; float:left; margin-bottom:0.2rem; text-al
蓓蕾心晴
2018/04/12
1.4K0
前端两三问
点击A的时候获取当前选中数据的所属子项,然后拿该子项中已选的去和全部比对得出未选的,然后拿未选的去blist进行比对,如果blist中出现未选的则将其删除。
执行上下文
2022/07/26
4730
前端两三问
GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!
JeecgBoot 是一款基于代码生成器的低代码开发平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!关于Java项目整理了100+Java项目视频+源码+笔记,地址:100+Java项目视频+源码+笔记
程序员追风
2021/02/20
1.3K0
GitHub 近两万 Star,无需编码,可一键生成前后端代码,这个开源项目有点强!

相似问题

jeditable:使用Selects时获取错误

12

PHP JQuery和Jeditable

22

LINQ和连接selects

10

Rails和jeditable (jquery)

56

jeditable和rails 3

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文